diff -urp rpm-4.12.0.1/installplatform r/installplatform
--- rpm-4.12.0.1/installplatform 2014-06-30 10:47:13.954503637 +0200
+++ r/installplatform 2015-07-14 09:34:15.917109096 +0200
@@ -114,6 +114,30 @@ for ARCH in noarch `grep ^arch_canon $RP
CANONARCH=aarch64
CANONCOLOR=3
;;
+ mips)
+ ISANAME=mips
+ ISABITS=32
+ CANONARCH=mips
+ CANONCOLOR=0
+ ;;
+ mipsel)
+ ISANAME=mips
+ ISABITS=32
+ CANONARCH=mipsel
+ CANONCOLOR=0
+ ;;
+ mips64)
+ ISANAME=mips
+ ISABITS=64
+ CANONARCH=mips64
+ CANONCOLOR=3
+ ;;
+ mips64el)
+ ISANAME=mips
+ ISABITS=64
+ CANONARCH=mips64el
+ CANONCOLOR=3
+ ;;
m68k)
ISANAME=m68k
ISABITS=32
diff -urp rpm-4.12.0.1/lib/rpmrc.c r/lib/rpmrc.c
--- rpm-4.12.0.1/lib/rpmrc.c 2014-07-03 17:11:48.572096075 +0200
+++ r/lib/rpmrc.c 2015-07-14 09:34:15.918109105 +0200
@@ -1053,10 +1053,22 @@ static void defaultMachine(rpmrcCtx ctx,
# if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL)
/* little endian */
- strcpy(un.machine, "mipsel");
+# if defined(__LP64__) || defined(_LP64)
+ /* 64-bit */
+ strcpy(un.machine, "mips64el");
+# else
+ /* 32-bit */
+ strcpy(un.machine, "mipsel");
+# endif
# elif defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB)
/* big endian */
- strcpy(un.machine, "mips");
+# if defined(__LP64__) || defined(_LP64)
+ /* 64-bit */
+ strcpy(un.machine, "mips64");
+# else
+ /* 32-bit */
+ strcpy(un.machine, "mips");
+# endif
# endif
# if defined(__hpux) && defined(_SC_CPU_VERSION)
diff -urp rpm-4.12.0.1/macros.in r/macros.in
--- rpm-4.12.0.1/macros.in 2015-07-14 09:33:34.422697268 +0200
+++ r/macros.in 2015-07-14 09:34:15.918109105 +0200
@@ -1011,6 +1011,10 @@ done \
%arm armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
#------------------------------------------------------------------------------
+# arch macro for all supported MIPS processors
+%mips mips mipsel mips64 mips64el
+
+#------------------------------------------------------------------------------
# arch macro for all supported Sparc processors
%sparc sparc sparcv8 sparcv9 sparcv9v sparc64 sparc64v
diff -urp rpm-4.12.0.1/rpmrc.in r/rpmrc.in
--- rpm-4.12.0.1/rpmrc.in 2015-07-14 09:33:34.413697179 +0200
+++ r/rpmrc.in 2015-07-14 09:34:47.557423122 +0200
@@ -59,6 +59,8 @@ optflags: hppa2.0 -O2 -g -mpa-risc-1-0
optflags: mips -O2 -g
optflags: mipsel -O2 -g
+optflags: mips64 -O2 -g
+optflags: mips64el -O2 -g
optflags: armv3l -O2 -g -march=armv3
optflags: armv4b -O2 -g -march=armv4
@@ -114,6 +116,11 @@ archcolor: armv5tejl 1
archcolor: armv6l 1
archcolor: armv7l 1
+archcolor: mips 1
+archcolor: mipsel 1
+archcolor: mips64 2
+archcolor: mips64el 2
+
archcolor: m68k 1
archcolor: m68kmint 1
@@ -167,6 +174,7 @@ arch_canon: sparcv9: sparcv9 3
arch_canon: sparcv9v: sparcv9v 3
# This is really a place holder for MIPS.
arch_canon: mips: mips 4
+arch_canon: mipsel: mipsel 4
arch_canon: ppc: ppc 5
arch_canon: ppc8260: ppc8260 5
@@ -180,7 +188,8 @@ arch_canon: IP: sgi 7
arch_canon: rs6000: rs6000 8
arch_canon: ia64: ia64 9
-arch_canon: mipsel: mipsel 11
+arch_canon: mips64: mips64 11
+arch_canon: mips64el: mips64el 11
arch_canon: armv3l: armv3l 12
arch_canon: armv4b: armv4b 12
@@ -309,6 +318,11 @@ buildarchtranslate: armv7l: armv7l
buildarchtranslate: armv7hl: armv7hl
buildarchtranslate: armv7hnl: armv7hnl
+buildarchtranslate: mips: mips
+buildarchtranslate: mipsel: mipsel
+buildarchtranslate: mips64: mips64
+buildarchtranslate: mips64el: mips64el
+
buildarchtranslate: m68k: m68k
buildarchtranslate: atarist: m68kmint
@@ -387,6 +401,8 @@ arch_compat: sparc: noarch
arch_compat: mips: noarch
arch_compat: mipsel: noarch
+arch_compat: mips64: mips
+arch_compat: mips64el: mipsel
arch_compat: hppa2.0: hppa1.2
arch_compat: hppa1.2: hppa1.1
@@ -508,6 +524,8 @@ buildarch_compat: ppc64p7: ppc64
buildarch_compat: mips: noarch
buildarch_compat: mipsel: noarch
+buildarch_compat: mips64: noarch
+buildarch_compat: mips64el: noarch
buildarch_compat: armv4b: noarch
buildarch_compat: armv7l: armv6l