Florian Festi eb9046
diff -urp rpm-4.13.0-rc1/installplatform r/installplatform
Florian Festi eb9046
--- rpm-4.13.0-rc1/installplatform	2015-08-26 15:52:41.856044288 +0200
Florian Festi eb9046
+++ r/installplatform	2015-11-24 21:53:09.146590589 +0100
Florian Festi eb9046
@@ -138,6 +138,30 @@ for ARCH in noarch `grep ^arch_canon $RP
Florian Festi eb9046
 	CANONARCH=mips64el
Florian Festi eb9046
 	CANONCOLOR=3
Florian Festi eb9046
 	;;
Florian Festi eb9046
+    mipsr6)
Florian Festi eb9046
+	ISANAME=mipsr6
Florian Festi eb9046
+	ISABITS=32
Florian Festi eb9046
+	CANONARCH=mipsr6
Florian Festi eb9046
+	CANONCOLOR=0
Florian Festi eb9046
+	;;
Florian Festi eb9046
+    mipsr6el)
Florian Festi eb9046
+	ISANAME=mipsr6
Florian Festi eb9046
+	ISABITS=32
Florian Festi eb9046
+	CANONARCH=mipsr6el
Florian Festi eb9046
+	CANONCOLOR=0
Florian Festi eb9046
+	;;
Florian Festi eb9046
+    mips64r6)
Florian Festi eb9046
+	ISANAME=mipsr6
Florian Festi eb9046
+	ISABITS=64
Florian Festi eb9046
+	CANONARCH=mips64r6
Florian Festi eb9046
+	CANONCOLOR=3
Florian Festi eb9046
+	;;
Florian Festi eb9046
+    mips64r6el)
Florian Festi eb9046
+	ISANAME=mipsr6
Florian Festi eb9046
+	ISABITS=64
Florian Festi eb9046
+	CANONARCH=mips64r6el
Florian Festi eb9046
+	CANONCOLOR=3
Florian Festi eb9046
+	;;
Florian Festi eb9046
     m68k)
Florian Festi eb9046
 	ISANAME=m68k
Florian Festi eb9046
 	ISABITS=32
Florian Festi eb9046
diff -urp rpm-4.13.0-rc1/lib/rpmrc.c r/lib/rpmrc.c
Florian Festi eb9046
--- rpm-4.13.0-rc1/lib/rpmrc.c	2015-08-28 15:14:50.593500511 +0200
Florian Festi eb9046
+++ r/lib/rpmrc.c	2015-11-24 21:37:41.966760327 +0100
Florian Festi eb9046
@@ -1057,21 +1057,45 @@ static void defaultMachine(rpmrcCtx ctx,
Florian Festi eb9046
 
Florian Festi eb9046
 #	if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL)
Florian Festi eb9046
 	    /* little endian */
Florian Festi eb9046
-#		if defined(__LP64__) || defined(_LP64)
Florian Festi eb9046
+#		if defined(__mips64)
Florian Festi eb9046
 		    /* 64-bit */
Florian Festi eb9046
-		    strcpy(un.machine, "mips64el");
Florian Festi eb9046
+#			if !defined(__mips_isa_rev) || __mips_isa_rev < 6
Florian Festi eb9046
+			    /* r1-r5 */
Florian Festi eb9046
+			    strcpy(un.machine, "mips64el");
Florian Festi eb9046
+#			else
Florian Festi eb9046
+			    /* r6 */
Florian Festi eb9046
+			    strcpy(un.machine, "mips64r6el");
Florian Festi eb9046
+#			endif
Florian Festi eb9046
 #		else
Florian Festi eb9046
 		    /* 32-bit */
Florian Festi eb9046
-		    strcpy(un.machine, "mipsel");
Florian Festi eb9046
+#			if !defined(__mips_isa_rev) || __mips_isa_rev < 6
Florian Festi eb9046
+			    /* r1-r5 */
Florian Festi eb9046
+			    strcpy(un.machine, "mipsel");
Florian Festi eb9046
+#			else
Florian Festi eb9046
+			    /* r6 */
Florian Festi eb9046
+			    strcpy(un.machine, "mipsr6el");
Florian Festi eb9046
+#			endif
Florian Festi eb9046
 #		endif
Florian Festi eb9046
 #	elif defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB)
Florian Festi eb9046
 	   /* big endian */
Florian Festi eb9046
-#		if defined(__LP64__) || defined(_LP64)
Florian Festi eb9046
+#		if defined(__mips64)
Florian Festi eb9046
 		    /* 64-bit */
Florian Festi eb9046
-		    strcpy(un.machine, "mips64");
Florian Festi eb9046
+#			if !defined(__mips_isa_rev) || __mips_isa_rev < 6
Florian Festi eb9046
+			    /* r1-r5 */
Florian Festi eb9046
+			    strcpy(un.machine, "mips64");
Florian Festi eb9046
+#			else
Florian Festi eb9046
+			    /* r6 */
Florian Festi eb9046
+			    strcpy(un.machine, "mips64r6");
Florian Festi eb9046
+#			endif
Florian Festi eb9046
 #		else
Florian Festi eb9046
 		    /* 32-bit */
Florian Festi eb9046
-		    strcpy(un.machine, "mips");
Florian Festi eb9046
+#			if !defined(__mips_isa_rev) || __mips_isa_rev < 6
Florian Festi eb9046
+			    /* r1-r5 */
Florian Festi eb9046
+			    strcpy(un.machine, "mips");
Florian Festi eb9046
+#			else
Florian Festi eb9046
+			    /* r6 */
Florian Festi eb9046
+			    strcpy(un.machine, "mipsr6");
Florian Festi eb9046
+#			endif
Florian Festi eb9046
 #		endif
Florian Festi eb9046
 #	endif
Florian Festi eb9046
 
Florian Festi eb9046
diff -urp rpm-4.13.0-rc1/macros.in r/macros.in
Florian Festi eb9046
--- rpm-4.13.0-rc1/macros.in	2015-11-24 19:44:16.862367540 +0100
Florian Festi eb9046
+++ r/macros.in	2015-11-24 19:54:11.208427621 +0100
Florian Festi eb9046
@@ -1025,8 +1025,24 @@ done \
Florian Festi eb9046
 %arm	armv3l armv4b armv4l armv4tl armv5tel armv5tejl armv6l armv6hl armv7l armv7hl armv7hnl
Florian Festi eb9046
 
Florian Festi eb9046
 #------------------------------------------------------------------------------
Florian Festi eb9046
+# arch macro for 32-bit MIPS processors
Florian Festi eb9046
+%mips32	mips mipsel mipsr6 mipsr6el
Florian Festi eb9046
+
Florian Festi eb9046
+#------------------------------------------------------------------------------
Florian Festi eb9046
+# arch macro for 64-bit MIPS processors
Florian Festi eb9046
+%mips64	mips64 mips64el mips64r6 mips64r6el
Florian Festi eb9046
+
Florian Festi eb9046
+#------------------------------------------------------------------------------
Florian Festi eb9046
+# arch macro for big endian MIPS processors
Florian Festi eb9046
+%mipseb	mips mipsr6 mips64 mips64r6
Florian Festi eb9046
+
Florian Festi eb9046
+#------------------------------------------------------------------------------
Florian Festi eb9046
+# arch macro for little endian MIPS processors
Florian Festi eb9046
+%mipsel	mipsel mipsr6el mips64el mips64r6el
Florian Festi eb9046
+
Florian Festi eb9046
+#------------------------------------------------------------------------------
Florian Festi eb9046
 # arch macro for all supported MIPS processors
Florian Festi eb9046
-%mips	mips mipsel mips64 mips64el
Florian Festi eb9046
+%mips	%{mips32} %{mips64}
Florian Festi eb9046
 
Florian Festi eb9046
 #------------------------------------------------------------------------------
Florian Festi eb9046
 # arch macro for all supported Sparc processors
Florian Festi eb9046
diff -urp rpm-4.13.0-rc1/rpmrc.in r/rpmrc.in
Florian Festi eb9046
--- rpm-4.13.0-rc1/rpmrc.in	2015-11-24 19:44:16.858367519 +0100
Florian Festi eb9046
+++ r/rpmrc.in	2015-11-24 19:50:36.544322671 +0100
Florian Festi eb9046
@@ -62,6 +62,11 @@ optflags: mipsel -O2 -g
Florian Festi eb9046
 optflags: mips64 -O2 -g
Florian Festi eb9046
 optflags: mips64el -O2 -g
Florian Festi eb9046
 
Florian Festi eb9046
+optflags: mipsr6 -O2 -g
Florian Festi eb9046
+optflags: mipsr6el -O2 -g
Florian Festi eb9046
+optflags: mips64r6 -O2 -g
Florian Festi eb9046
+optflags: mips64r6el -O2 -g
Florian Festi eb9046
+
Florian Festi eb9046
 optflags: armv3l -O2 -g -march=armv3
Florian Festi eb9046
 optflags: armv4b -O2 -g -march=armv4
Florian Festi eb9046
 optflags: armv4l -O2 -g -march=armv4
Florian Festi eb9046
@@ -121,6 +126,11 @@ archcolor: mipsel 1
Florian Festi eb9046
 archcolor: mips64 2
Florian Festi eb9046
 archcolor: mips64el 2
Florian Festi eb9046
 
Florian Festi eb9046
+archcolor: mipsr6 1
Florian Festi eb9046
+archcolor: mipsr6el 1
Florian Festi eb9046
+archcolor: mips64r6 2
Florian Festi eb9046
+archcolor: mips64r6el 2
Florian Festi eb9046
+
Florian Festi eb9046
 archcolor: m68k 1
Florian Festi eb9046
 
Florian Festi eb9046
 archcolor: m68kmint 1
Florian Festi eb9046
@@ -228,6 +238,11 @@ arch_canon:	sh4a: sh4a	17
Florian Festi eb9046
 arch_canon:	xtensa: xtensa	18
Florian Festi eb9046
 arch_canon:	aarch64: aarch64 19
Florian Festi eb9046
 
Florian Festi eb9046
+arch_canon:	mipsr6: mipsr6	20
Florian Festi eb9046
+arch_canon:	mipsr6el: mipsr6el	20
Florian Festi eb9046
+arch_canon:	mips64r6: mips64r6	21
Florian Festi eb9046
+arch_canon:	mips64r6el: mips64r6el	21
Florian Festi eb9046
+
Florian Festi eb9046
 #############################################################
Florian Festi eb9046
 # Canonical OS names and numbers
Florian Festi eb9046
 
Florian Festi eb9046
@@ -323,6 +338,11 @@ buildarchtranslate: mipsel: mipsel
Florian Festi eb9046
 buildarchtranslate: mips64: mips64
Florian Festi eb9046
 buildarchtranslate: mips64el: mips64el
Florian Festi eb9046
 
Florian Festi eb9046
+buildarchtranslate: mipsr6: mipsr6
Florian Festi eb9046
+buildarchtranslate: mipsr6el: mipsr6el
Florian Festi eb9046
+buildarchtranslate: mips64r6: mips64r6
Florian Festi eb9046
+buildarchtranslate: mips64r6el: mips64r6el
Florian Festi eb9046
+
Florian Festi eb9046
 buildarchtranslate: m68k: m68k
Florian Festi eb9046
 
Florian Festi eb9046
 buildarchtranslate: atarist: m68kmint
Florian Festi eb9046
@@ -404,6 +424,11 @@ arch_compat: mipsel: noarch
Florian Festi eb9046
 arch_compat: mips64: mips
Florian Festi eb9046
 arch_compat: mips64el: mipsel
Florian Festi eb9046
 
Florian Festi eb9046
+arch_compat: mipsr6: noarch
Florian Festi eb9046
+arch_compat: mipsr6el: noarch
Florian Festi eb9046
+arch_compat: mips64r6: mipsr6
Florian Festi eb9046
+arch_compat: mips64r6el: mipsr6el
Florian Festi eb9046
+
Florian Festi eb9046
 arch_compat: hppa2.0: hppa1.2
Florian Festi eb9046
 arch_compat: hppa1.2: hppa1.1
Florian Festi eb9046
 arch_compat: hppa1.1: hppa1.0
Florian Festi eb9046
@@ -527,6 +552,11 @@ buildarch_compat: mipsel: noarch
Florian Festi eb9046
 buildarch_compat: mips64: noarch
Florian Festi eb9046
 buildarch_compat: mips64el: noarch
Florian Festi eb9046
 
Florian Festi eb9046
+buildarch_compat: mipsr6: noarch
Florian Festi eb9046
+buildarch_compat: mipsr6el: noarch
Florian Festi eb9046
+buildarch_compat: mips64r6: noarch
Florian Festi eb9046
+buildarch_compat: mips64r6el: noarch
Florian Festi eb9046
+
Florian Festi eb9046
 buildarch_compat: armv4b: noarch
Florian Festi eb9046
 buildarch_compat: armv7l: armv6l
Florian Festi eb9046
 buildarch_compat: armv6l: armv5tejl