[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#824995: gcc-6: add MIPS r6 support and bump mipsn32(el) ISA to r2



Package: src:gcc-6
Version: 6.1.1-4

Hi, this is the patch for gcc-5, which add MIPS r6 support, include
    mipsr6/mipsr6el/mipsn32r6/mipsn32r6el/mips64r6/mips64r6el

In this patch, I also bump ISA to r2 from mips3 for mipsn32(el).

-- 
YunQiang Su
diff --git a/debian/control b/debian/control
index 5b96485..433aefa 100644
--- a/debian/control
+++ b/debian/control
@@ -5,8 +5,8 @@ Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
 Uploaders: Matthias Klose <doko@debian.org>
 Standards-Version: 3.9.8
 Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14), 
-  g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32] <!cross>, g++-5 [arm64] <!cross>, 
-  libc6.1-dev (>= 2.13-5) [alpha ia64] | libc0.3-dev (>= 2.13-5) [hurd-i386] | libc0.1-dev (>= 2.13-5) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-5), libc6-dev (>= 2.13-31) [armel armhf], libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el], libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386], libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, 
+  g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32] <!cross>, g++-5 [arm64] <!cross>, 
+  libc6.1-dev (>= 2.13-5) [alpha ia64] | libc0.3-dev (>= 2.13-5) [hurd-i386] | libc0.1-dev (>= 2.13-5) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-5), libc6-dev (>= 2.13-31) [armel armhf], libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el], libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386], libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, 
   kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], 
   m4, libtool, autoconf2.64, 
   libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], 
@@ -141,7 +141,7 @@ Description: GCC support library (debug symbols)
  Debug symbols for the GCC support library.
 
 Package: lib64gcc-6-dev
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: libdevel
 Priority: optional
 Recommends: ${dep:libcdev}
@@ -176,7 +176,7 @@ Description: GCC support library (debug symbols)
  Debug symbols for the GCC support library.
 
 Package: lib32gcc-6-dev
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Recommends: ${dep:libcdev}
@@ -211,7 +211,7 @@ Description: GCC support library (debug symbols)
  Debug symbols for the GCC support library.
 
 Package: libn32gcc-6-dev
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Recommends: ${dep:libcdev}
@@ -288,7 +288,7 @@ Description: GNU C compiler
  This is the GNU C compiler, a fairly portable optimizing compiler for C.
 
 Package: gcc-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), gcc-6 (= ${gcc:Version}), ${dep:libcbiarchdev}, ${dep:libgccbiarchdev}, ${shlibs:Depends}, ${misc:Depends}
@@ -367,7 +367,7 @@ Description: GNU C++ compiler
  This is the GNU C++ compiler, a fairly portable optimizing compiler for C++.
 
 Package: g++-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), g++-6 (= ${gcc:Version}), gcc-6-multilib (= ${gcc:Version}), ${dep:libcxxbiarchdev}, ${shlibs:Depends}, ${misc:Depends}
@@ -404,7 +404,7 @@ Description: GCC OpenMP (GOMP) support library (debug symbols)
 
 Package: lib32gomp1
 Section: libs
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Conflicts: ${confl:lib32}
@@ -711,7 +711,7 @@ Description: AddressSanitizer -- a fast memory error detector (32bit)
  use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs.
 
 Package: lib32asan3-dbg
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib32asan3 (= ${gcc:Version}), ${misc:Depends}
@@ -721,7 +721,7 @@ Description: AddressSanitizer -- a fast memory error detector (32 bit debug symb
 
 Package: lib64asan3
 Section: libs
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Description: AddressSanitizer -- a fast memory error detector (64bit)
@@ -729,7 +729,7 @@ Description: AddressSanitizer -- a fast memory error detector (64bit)
  use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs.
 
 Package: lib64asan3-dbg
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib64asan3 (= ${gcc:Version}), ${misc:Depends}
@@ -1112,7 +1112,7 @@ Description: Intel memory protection extensions (debug symbols)
 
 Package: lib32mpx2
 Section: libs
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Conflicts: ${confl:lib32}
@@ -1124,7 +1124,7 @@ Description: Intel memory protection extensions (32bit)
  intentions are usurped at runtime due to buffer overflow.
 
 Package: lib32mpx2-dbg
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib32mpx2 (= ${gcc:Version}), ${misc:Depends}
@@ -1136,7 +1136,7 @@ Description: Intel memory protection extensions (32 bit debug symbols)
 
 Package: lib64mpx2
 Section: libs
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Replaces: lib64mpx0 (<< 6-20160120-1)
@@ -1147,7 +1147,7 @@ Description: Intel memory protection extensions (64bit)
  intentions are usurped at runtime due to buffer overflow.
 
 Package: lib64mpx2-dbg
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib64mpx2 (= ${gcc:Version}), ${misc:Depends}
@@ -1329,7 +1329,7 @@ Description: GNU Objective-C++ compiler
  gcc backend to generate optimized code.
 
 Package: gobjc++-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), gobjc++-6 (= ${gcc:Version}), g++-6-multilib (= ${gcc:Version}), gobjc-6-multilib (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1352,7 +1352,7 @@ Description: GNU Objective-C compiler
  gcc backend to generate optimized code.
 
 Package: gobjc-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), gobjc-6 (= ${gcc:Version}), gcc-6-multilib (= ${gcc:Version}), ${dep:libobjcbiarchdev}, ${shlibs:Depends}, ${misc:Depends}
@@ -1374,7 +1374,7 @@ Description: Runtime library for GNU Objective-C applications (development files
  GNU ObjC applications.
 
 Package: lib64objc-6-dev
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib64gcc-6-dev (= ${gcc:Version}), lib64objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1383,7 +1383,7 @@ Description: Runtime library for GNU Objective-C applications (64bit development
  GNU ObjC applications.
 
 Package: lib32objc-6-dev
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib32gcc-6-dev (= ${gcc:Version}), lib32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1392,7 +1392,7 @@ Description: Runtime library for GNU Objective-C applications (32bit development
  GNU ObjC applications.
 
 Package: libn32objc-6-dev
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), libn32gcc-6-dev (= ${gcc:Version}), libn32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1507,7 +1507,7 @@ Description: GNU Fortran compiler
  gcc backend to generate optimized code.
 
 Package: gfortran-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), gfortran-6 (= ${gcc:Version}), gcc-6-multilib (= ${gcc:Version}), ${dep:libgfortranbiarchdev}, ${shlibs:Depends}, ${misc:Depends}
@@ -1529,7 +1529,7 @@ Description: Runtime library for GNU Fortran applications (development files)
  GNU Fortran applications.
 
 Package: lib64gfortran-6-dev
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib64gcc-6-dev (= ${gcc:Version}), lib64gfortran3 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1538,7 +1538,7 @@ Description: Runtime library for GNU Fortran applications (64bit development fil
  GNU Fortran applications.
 
 Package: lib32gfortran-6-dev
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib32gcc-6-dev (= ${gcc:Version}), lib32gfortran3 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1547,7 +1547,7 @@ Description: Runtime library for GNU Fortran applications (32bit development fil
  GNU Fortran applications.
 
 Package: libn32gfortran-6-dev
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), libn32gcc-6-dev (= ${gcc:Version}), libn32gfortran3 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends}
@@ -1673,7 +1673,7 @@ Description: GNU Go compiler
  by the gcc compiler. It uses the gcc backend to generate optimized code.
 
 Package: gccgo-6-multilib
-Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32
+Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc ppc64 s390 s390x sparc sparc64 x32
 Section: devel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), gccgo-6 (= ${gcc:Version}), gcc-6-multilib (= ${gcc:Version}), ${dep:libgobiarch}, ${shlibs:Depends}, ${misc:Depends}
@@ -1712,7 +1712,7 @@ Description: Runtime library for GNU Go applications (debug symbols)
 
 Package: lib64go9
 Section: libs
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Replaces: lib64go3, lib64go8
@@ -1722,7 +1722,7 @@ Description: Runtime library for GNU Go applications (64bit)
 
 Package: lib64go9-dbg
 Section: debug
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib64go9 (= ${gcc:Version}), ${misc:Depends}
 Description: Runtime library for GNU Go applications (64bit debug symbols)
@@ -1732,7 +1732,7 @@ Description: Runtime library for GNU Go applications (64bit debug symbols)
 
 Package: lib32go9
 Section: libs
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Conflicts: ${confl:lib32}
@@ -1743,7 +1743,7 @@ Description: Runtime library for GNU Go applications (32bit)
 
 Package: lib32go9-dbg
 Section: debug
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib32go9 (= ${gcc:Version}), ${misc:Depends}
 Description: Runtime library for GNU Go applications (32 bit debug symbols)
@@ -1753,7 +1753,7 @@ Description: Runtime library for GNU Go applications (32 bit debug symbols)
 
 Package: libn32go9
 Section: libs
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends}
 Replaces: libn32go3, libn32go8
@@ -1763,7 +1763,7 @@ Description: Runtime library for GNU Go applications (n32)
 
 Package: libn32go9-dbg
 Section: debug
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), libn32go9 (= ${gcc:Version}), ${misc:Depends}
 Description: Runtime library for GNU Go applications (n32 debug symbols)
@@ -2061,7 +2061,7 @@ Description: GNU Standard C++ Library v3 (debugging files)
  debugging symbols.
 
 Package: lib32stdc++-6-dev
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib32gcc-6-dev (= ${gcc:Version}),
@@ -2075,7 +2075,7 @@ Description: GNU Standard C++ Library v3 (development files)
  in g++-3.0.
 
 Package: lib32stdc++6-6-dbg
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib32stdc++6 (>= ${gcc:Version}),
@@ -2091,7 +2091,7 @@ Description: GNU Standard C++ Library v3 (debugging files)
  debugging symbols.
 
 Package: lib64stdc++-6-dev
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib64gcc-6-dev (= ${gcc:Version}),
@@ -2105,7 +2105,7 @@ Description: GNU Standard C++ Library v3 (development files)
  in g++-3.0.
 
 Package: lib64stdc++6-6-dbg
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), lib64stdc++6 (>= ${gcc:Version}),
@@ -2121,7 +2121,7 @@ Description: GNU Standard C++ Library v3 (debugging files)
  debugging symbols.
 
 Package: libn32stdc++-6-dev
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), libn32gcc-6-dev (= ${gcc:Version}),
@@ -2135,7 +2135,7 @@ Description: GNU Standard C++ Library v3 (development files)
  in g++-3.0.
 
 Package: libn32stdc++6-6-dbg
-Architecture: mips mipsel mips64 mips64el
+Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el
 Section: debug
 Priority: extra
 Depends: gcc-6-base (= ${gcc:Version}), libn32stdc++6 (>= ${gcc:Version}),
@@ -2435,7 +2435,7 @@ Description: Phobos D standard library
 # For more information check http://www.dlang.org/phobos/
 
 Package: lib64phobos-6-dev
-Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32
+Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 mipsr6 mipsr6el mipsn32r6 mipsn32r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib64gcc-6-dev (= ${gcc:Version}), lib64z1-dev, ${shlibs:Depends}, ${misc:Depends}
@@ -2445,7 +2445,7 @@ Description: Phobos D standard library (64bit development files)
  For more information check http://www.dlang.org/phobos/
 
 Package: lib32phobos-6-dev
-Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el
+Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
 Section: libdevel
 Priority: optional
 Depends: gcc-6-base (= ${gcc:Version}), lib32gcc-6-dev (= ${gcc:Version}), lib32z1-dev, ${shlibs:Depends}, ${misc:Depends}
diff --git a/debian/patches/gcc-multiarch.diff b/debian/patches/gcc-multiarch.diff
index 7e34ff6..1242b0d 100644
--- a/debian/patches/gcc-multiarch.diff
+++ b/debian/patches/gcc-multiarch.diff
@@ -15,8 +15,6 @@
 	* config/sparc/t-linux64: Set MULTIARCH_DIRNAME.
 	* src/gcc/config/mips/mips.h: (/usr)/lib as default path.
 
-Index: b/src/gcc/config/sh/t-linux
-===================================================================
 --- a/src/gcc/config/sh/t-linux
 +++ b/src/gcc/config/sh/t-linux
 @@ -1,2 +1,5 @@
@@ -25,31 +23,25 @@ Index: b/src/gcc/config/sh/t-linux
 +
 +MULTILIB_OSDIRNAMES = .:sh4-linux-gnu sh4_nofpu-linux-gnu:sh4-linux-gnu
 +MULTIARCH_DIRNAME = $(call if_multiarch,sh4-linux-gnu)
-Index: b/src/gcc/config/sparc/t-linux64
-===================================================================
 --- a/src/gcc/config/sparc/t-linux64
 +++ b/src/gcc/config/sparc/t-linux64
-@@ -27,3 +27,5 @@ MULTILIB_OPTIONS = m64/m32
+@@ -27,3 +27,5 @@
  MULTILIB_DIRNAMES = 64 32
  MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:sparc64-linux-gnu)
  MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:sparc-linux-gnu)
 +
 +MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu)
-Index: b/src/gcc/config/s390/t-linux64
-===================================================================
 --- a/src/gcc/config/s390/t-linux64
 +++ b/src/gcc/config/s390/t-linux64
-@@ -9,3 +9,5 @@ MULTILIB_OPTIONS = m64/m31
+@@ -9,3 +9,5 @@
  MULTILIB_DIRNAMES = 64 32
  MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu)
  MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu)
 +
 +MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu)
-Index: b/src/gcc/config/rs6000/t-linux64
-===================================================================
 --- a/src/gcc/config/rs6000/t-linux64
 +++ b/src/gcc/config/rs6000/t-linux64
-@@ -31,6 +31,8 @@ MULTILIB_EXTRA_OPTS :=
+@@ -31,6 +31,8 @@
  MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
  MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
  
@@ -58,11 +50,9 @@ Index: b/src/gcc/config/rs6000/t-linux64
  rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
  	$(COMPILE) $<
  	$(POSTCOMPILE)
-Index: b/src/gcc/config/i386/t-linux64
-===================================================================
 --- a/src/gcc/config/i386/t-linux64
 +++ b/src/gcc/config/i386/t-linux64
-@@ -36,3 +36,13 @@ MULTILIB_DIRNAMES   = $(patsubst m%, %,
+@@ -36,3 +36,13 @@
  MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
  MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
  MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
@@ -76,8 +66,6 @@ Index: b/src/gcc/config/i386/t-linux64
 +else
 +  MULTIARCH_DIRNAME = $(call if_multiarch,i386-linux-gnu)
 +endif
-Index: b/src/gcc/config/i386/t-kfreebsd
-===================================================================
 --- a/src/gcc/config/i386/t-kfreebsd
 +++ b/src/gcc/config/i386/t-kfreebsd
 @@ -1,5 +1,9 @@
@@ -91,29 +79,57 @@ Index: b/src/gcc/config/i386/t-kfreebsd
  MULTILIB_OSDIRNAMES := $(filter-out mx32=%,$(subst linux,$(KFREEBSD_OS),$(MULTILIB_OSDIRNAMES)))
 +
 +MULTIARCH_DIRNAME := $(subst linux,$(KFREEBSD_OS),$(MULTIARCH_DIRNAME))
-Index: b/src/gcc/config/mips/t-linux64
-===================================================================
 --- a/src/gcc/config/mips/t-linux64
 +++ b/src/gcc/config/mips/t-linux64
-@@ -24,3 +24,13 @@ MULTILIB_OSDIRNAMES = \
- 	../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
- 	../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
- 	../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
+@@ -18,9 +18,22 @@
+ 
+ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+ MULTILIB_DIRNAMES = n32 32 64
++MIPS_R6 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),r6)
++MIPS_32 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),32)
++MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa)
+ MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
+ MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
+ MULTILIB_OSDIRNAMES = \
+-	../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
+-	../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
+-	../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
++	../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
++	../lib$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
++	../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
 +
 +ifneq (,$(findstring abin32,$(target)))
-+MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT))
++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT))
 +else
 +ifneq (,$(findstring abi64,$(target)))
-+MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
 +else
-+MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT))
++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT))
 +endif
 +endif
-Index: b/src/gcc/config.gcc
-===================================================================
 --- a/src/gcc/config.gcc
 +++ b/src/gcc/config.gcc
-@@ -2086,6 +2086,10 @@ mips*-*-linux*)				# Linux MIPS, either
+@@ -2057,6 +2057,7 @@
+ 	case ${target} in
+ 		mipsisa32r6*)
+ 			default_mips_arch=mips32r6
++			enable_mips_multilibs="yes"
+ 			;;
+ 		mipsisa32r2*)
+ 			default_mips_arch=mips32r2
+@@ -2076,6 +2077,11 @@
+ 			target_cpu_default=MASK_SOFT_FLOAT_ABI
+ 			enable_mips_multilibs="yes"
+ 			;;
++		mipsisa64r6*-*-linux*-gnuabi64)
++			default_mips_abi=64
++			default_mips_arch=mips64r6
++			enable_mips_multilibs="yes"
++			;;
+ 		mipsisa64r6*-*-linux*)
+ 			default_mips_abi=n32
+ 			default_mips_arch=mips64r6
+@@ -2086,6 +2092,10 @@
  			default_mips_arch=mips64r2
  			enable_mips_multilibs="yes"
  			;;
@@ -124,7 +140,7 @@ Index: b/src/gcc/config.gcc
  		mips64*-*-linux* | mipsisa64*-*-linux*)
  			default_mips_abi=n32
  			enable_mips_multilibs="yes"
-@@ -4415,7 +4419,7 @@ case ${target} in
+@@ -4415,7 +4425,7 @@
  	i[34567]86-*-darwin* | x86_64-*-darwin*)
  		;;
  	i[34567]86-*-linux* | x86_64-*-linux*)
@@ -133,11 +149,9 @@ Index: b/src/gcc/config.gcc
  		;;
  	i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
  		tmake_file="$tmake_file i386/t-kfreebsd"
-Index: b/src/gcc/config/aarch64/t-aarch64-linux
-===================================================================
 --- a/src/gcc/config/aarch64/t-aarch64-linux
 +++ b/src/gcc/config/aarch64/t-aarch64-linux
-@@ -22,7 +22,7 @@ LIB1ASMSRC   = aarch64/lib1funcs.asm
+@@ -22,7 +22,7 @@
  LIB1ASMFUNCS = _aarch64_sync_cache_range
  
  AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
@@ -148,11 +162,9 @@ Index: b/src/gcc/config/aarch64/t-aarch64-linux
  
 -MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32
 +MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
-Index: b/src/gcc/config/mips/mips.h
-===================================================================
 --- a/src/gcc/config/mips/mips.h
 +++ b/src/gcc/config/mips/mips.h
-@@ -3375,16 +3375,6 @@ struct GTY(())  machine_function {
+@@ -3375,16 +3375,6 @@
  #define PMODE_INSN(NAME, ARGS) \
    (Pmode == SImode ? NAME ## _si ARGS : NAME ## _di ARGS)
  
diff --git a/debian/patches/gcc-multilib-multiarch.diff b/debian/patches/gcc-multilib-multiarch.diff
index 374f923..81b675a 100644
--- a/debian/patches/gcc-multilib-multiarch.diff
+++ b/debian/patches/gcc-multilib-multiarch.diff
@@ -1,7 +1,5 @@
 # DP: Don't auto-detect multilib osdirnames.
 
-Index: b/src/gcc/config/sparc/t-linux64
-===================================================================
 --- a/src/gcc/config/sparc/t-linux64
 +++ b/src/gcc/config/sparc/t-linux64
 @@ -25,7 +25,12 @@
@@ -18,8 +16,6 @@ Index: b/src/gcc/config/sparc/t-linux64
 +endif
  
  MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu)
-Index: b/src/gcc/config/s390/t-linux64
-===================================================================
 --- a/src/gcc/config/s390/t-linux64
 +++ b/src/gcc/config/s390/t-linux64
 @@ -7,7 +7,12 @@
@@ -36,8 +32,6 @@ Index: b/src/gcc/config/s390/t-linux64
 +endif
  
  MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu)
-Index: b/src/gcc/config/rs6000/t-linux64
-===================================================================
 --- a/src/gcc/config/rs6000/t-linux64
 +++ b/src/gcc/config/rs6000/t-linux64
 @@ -28,8 +28,13 @@
@@ -55,8 +49,6 @@ Index: b/src/gcc/config/rs6000/t-linux64
  
  MULTIARCH_DIRNAME = $(call if_multiarch,powerpc$(if $(findstring 64,$(target)),64)-linux-gnu)
  
-Index: b/src/gcc/config/i386/t-linux64
-===================================================================
 --- a/src/gcc/config/i386/t-linux64
 +++ b/src/gcc/config/i386/t-linux64
 @@ -33,9 +33,19 @@
@@ -80,36 +72,32 @@ Index: b/src/gcc/config/i386/t-linux64
  
  ifneq (,$(findstring x86_64,$(target)))
    ifneq (,$(findstring biarchx32.h,$(tm_include_list)))
-Index: b/src/gcc/config/mips/t-linux64
-===================================================================
 --- a/src/gcc/config/mips/t-linux64
 +++ b/src/gcc/config/mips/t-linux64
-@@ -20,10 +20,23 @@ MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi
- MULTILIB_DIRNAMES = n32 32 64
+@@ -23,10 +23,23 @@
+ MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa)
  MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
  MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
 +
 +ifneq (,$(findstring gnuabi64,$(target)))
 +MULTILIB_OSDIRNAMES = \
-+	../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
-+	../libo32$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
-+	../lib$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
++	../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
++	../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
++	../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
 +else ifneq (,$(findstring gnuabin32,$(target)))
 +MULTILIB_OSDIRNAMES = \
-+	../lib$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
-+	../libo32$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
-+	../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
++	../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
++	../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
++	../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
 +else
  MULTILIB_OSDIRNAMES = \
- 	../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
- 	../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
- 	../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
+ 	../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
+ 	../lib$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
+ 	../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
 +endif
  
  ifneq (,$(findstring abin32,$(target)))
- MULTIARCH_DIRNAME = $(call if_multiarch,mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT))
-Index: b/src/gcc/config/rs6000/t-linux
-===================================================================
+ MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT))
 --- a/src/gcc/config/rs6000/t-linux
 +++ b/src/gcc/config/rs6000/t-linux
 @@ -2,7 +2,7 @@
diff --git a/debian/rules.conf b/debian/rules.conf
index e51adcb..28fc774 100644
--- a/debian/rules.conf
+++ b/debian/rules.conf
@@ -307,7 +307,7 @@ ifneq (,$(findstring yes,$(biarch64) $(biarch32) $(biarchn32) $(biarchx32)$(biar
   endif
   endif
   # mips*
-  ifneq (,$(findstring $(DEB_TARGET_ARCH),mips mipsel mipsn32 mipsn32el mips64 mips64el))
+  ifneq (,$(findstring mips,$(DEB_TARGET_ARCH)))
   ifeq ($(biarchn32)$(biarch32),yesyes)
       LIBC_BIARCH_DEV_DEP := libc6-dev-mips32$(LS)$(AQ) (>= $(libc_ver)), libc6-dev-mipsn32$(LS)$(AQ) (>= $(libc_ver))
   endif
@@ -347,7 +347,7 @@ ifneq ($(DEB_CROSS),yes)
   ifeq (,$(filter $(distrelease),lenny etch squeeze dapper hardy jaunty karmic lucid maverick natty oneiric))
     LIBC_BUILD_DEP += , libc6-dev (>= 2.13-31) [armel armhf]
   endif
-  LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el],
+  LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el],
   ifneq (,$(findstring amd64,$(biarchx32archs)))
   LIBC_BIARCH_BUILD_DEP += libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386],
 endif
diff --git a/debian/rules.defs b/debian/rules.defs
index 161a4cb..828e8da 100644
--- a/debian/rules.defs
+++ b/debian/rules.defs
@@ -453,6 +453,12 @@ multiarch_xarch_map = \
 	mipsn32el=mipsel-linux-gnu,mips64el-linux-gnuabi64 \
 	mips64=mips-linux-gnu,mips64-linux-gnuabin32 \
 	mips64el=mipsel-linux-gnu,mips64el-linux-gnuabin32 \
+	mipsr6=mipsisa64r6-linux-gnuabin32,mipsisa64r6-linux-gnuabi64 \
+	mipsr6el=mipsisa64r6el-linux-gnuabin32,mipsisa64r6el-linux-gnuabi64 \
+	mipsn32r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabi64 \
+	mipsn32r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabi64 \
+	mips64r6=mipsisa32r6-linux-gnu,mipsisa64r6-linux-gnuabin32 \
+	mips64r6el=mipsisa32r6el-linux-gnu,mipsisa64r6el-linux-gnuabin32 \
 	x32=x86_64-linux-gnu,i386-linux-gnu \
 	kfreebsd-amd64=i386-kfreebsd-gnu
 xarch_multiarch_names = $(subst $(COMMA),$(SPACE),$(patsubst $(DEB_TARGET_ARCH)=%,%, \
@@ -484,6 +490,18 @@ multilib_multiarch_map = \
 	mips64/n32=mips64-linux-gnuabin32 \
 	mips64el/32=mipsel-linux-gnu \
 	mips64el/n32=mips64el-linux-gnuabin32 \
+	mipsr6/n32=mipsisa64r6-linux-gnuabin32 \
+	mipsr6/64=mipsisa64r6-linux-gnuabi64 \
+	mipsr6el/n32=mipsisa64r6el-linux-gnuabin32 \
+	mipsr6el/64=mipsisa64r6el-linux-gnuabi64 \
+	mipsn32r6/32=mipsisa32r6-linux-gnu \
+	mipsn32r6/64=mipsisa64r6-linux-gnuabi64 \
+	mipsn32r6el/32=mipsisa32r6el-linux-gnu \
+	mipsn32r6el/64=mipsisa64r6el-linux-gnuabi64 \
+	mips64r6/32=mipsisa32r6-linux-gnu \
+	mips64r6/n32=mipsisa64r6-linux-gnuabin32 \
+	mips64r6el/32=mipsisa32r6el-linux-gnu \
+	mips64r6el/n32=mipsisa64r6el-linux-gnuabin32 \
 	x32/32=i386-linux-gnu \
 	x32/64=x86_64-linux-gnu \
 	kfreebsd-amd64/32=i386-kfreebsd-gnu
@@ -806,6 +824,7 @@ ifeq ($(with_java),yes)
   java_cpu_map = armel=arm armhf=arm arm64=aarch64 hppa=parisc \
 	i686=i386 i586=i386 i486=i386 x32=x32 \
 	mipsel=mips mips64=mips mips64el=mips mipsn32=mips mipsn32el=mips \
+	mipsr6=mips mipsr6el=mips mips64r6=mips mips64r6el=mips mipsn32r6=mips mipsn32r6el=mips \
 	powerpc=ppc ppc64el=ppc64le sh4=sh x32=x32
   java_cpu = $(patsubst $(DEB_TARGET_ARCH_CPU)=%,%, \
                          $(filter $(DEB_TARGET_ARCH_CPU)=%,$(java_cpu_map)))
@@ -977,6 +996,7 @@ ifeq ($(with_d),yes)
 
   libphobos_no_cpus := alpha avr arm64 hppa ia64 m68k \
 	mips mipsel mips64 mips64el mipsn32 mipsn32el \
+	mipsr6 mipsr6el mips64r6 mips64r6el mipsn32r6 mipsn32r6el \
 	powerpc powerpcspe ppc64 s390 s390x sh4 sparc sparc64
   libphobos_no_systems := gnu kfreebsd-gnu
   ifneq (,$(filter $(DEB_TARGET_ARCH_CPU),$(libphobos_no_cpus)))
@@ -1495,8 +1515,9 @@ export debian_extra_langs
 
 # multilib
 biarch_map := i686=x86_64 powerpc=powerpc64 sparc=sparc64 sparc64=sparc s390=s390x s390x=s390 \
-		x86_64=i686 powerpc64=powerpc mips=mips64 mipsel=mips64el \
-		mips64=mips mips64el=mipsel mipsn32=mips mipsn32el=mipsel
+		x86_64=i686 powerpc64=powerpc \
+		mips=mips64 mipsel=mips64el mips64=mips mips64el=mipsel mipsn32=mips mipsn32el=mipsel \
+		mipsr6=mips64r6 mipsr6el=mips64r6el mips64r6=mipsr6 mips64r6el=mipsr6el mipsn32r6=mipsr6 mipsn32r6el=mipsr6el
 ifneq (,$(filter $(derivative),Ubuntu))
   ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid))
     biarch_map := $(subst i686=,i486=,$(biarch_map))
@@ -1643,9 +1664,9 @@ define gen_biarch
     export TARGET64_MACHINE
   endif
 endef
-biarch32archs := /amd64/ppc64/kfreebsd-amd64/s390x/sparc64/x32/mipsn32/mipsn32el/mips64/mips64el/
-biarch64archs := /i386/powerpc/sparc/s390/mips/mipsel/mipsn32/mipsn32el/x32/
-biarchn32archs := /mips/mipsel/mips64/mips64el/
+biarch32archs := /amd64/ppc64/kfreebsd-amd64/s390x/sparc64/x32/mipsn32/mipsn32el/mips64/mips64el/mipsn32r6/mipsn32r6el/mips64r6/mips64r6el/
+biarch64archs := /i386/powerpc/sparc/s390/mips/mipsel/mipsn32/mipsn32el/x32/mipsr6/mipsr6el/mipsn32r6/mipsn32r6el/
+biarchn32archs := /mips/mipsel/mips64/mips64el/mipsr6/mipsr6el/mips64r6/mips64r6el/
 ifeq ($(derivative),Ubuntu)
   ifeq (,$(filter $(distrelease),dapper hardy jaunty karmic lucid maverick natty))
     biarchhfarchs := /armel/
diff --git a/debian/rules2 b/debian/rules2
index 3961aac..9f4ea4a 100644
--- a/debian/rules2
+++ b/debian/rules2
@@ -641,20 +641,20 @@ endif
 #FIXME: howto for mipsn32?
 ifneq (,$(findstring mips64el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
   ifeq ($(multilib),yes)
-    ifeq ($(biarchn32)-$(biarch32),yes-yes)
+    ifeq ($(biarch64)-$(biarch32),yes-yes)
       CONFARGS += --enable-targets=all
-      CONFARGS += --with-arch-64=mips3 --with-tune-64=mips64
-      CONFARGS += --with-arch-32=mips2 --with-tune-32=mips32 --with-fp-32=xx
+      CONFARGS += --with-arch-64=mips64r2
+      CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
     endif
   endif
 endif
 
 ifneq (,$(findstring mips64-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
   ifeq ($(multilib),yes)
-    ifeq ($(biarchn32)-$(biarch32),yes-yes)
+    ifeq ($(biarch64)-$(biarch32),yes-yes)
       CONFARGS += --enable-targets=all
-      CONFARGS += --with-arch-64=mips3 --with-tune-64=mips64
-      CONFARGS += --with-arch-32=mips2 --with-tune-32=mips32 --with-fp-32=xx
+      CONFARGS += --with-arch-64=mips64r2
+      CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
     endif
   endif
 endif
@@ -681,6 +681,71 @@ ifneq (,$(findstring mips64-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
   endif
 endif
 
+ifneq (,$(findstring mipsisa32r6-linux,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+  ifeq ($(multilib),yes)
+    ifeq ($(biarchn32)-$(biarch64),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+    endif
+  endif
+endif
+
+ifneq (,$(findstring mipsisa32r6el-linux,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+  ifeq ($(multilib),yes)
+    ifeq ($(biarchn32)-$(biarch64),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+    endif
+  endif
+endif
+
+#FIXME: howto for mipsn32?
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-mips-plt
+  ifeq ($(multilib),yes)
+    ifeq ($(biarch64)-$(biarch32),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-64=mips64r6
+      CONFARGS += --with-arch-32=mips32r6
+    endif
+  endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-mips-plt
+  ifeq ($(multilib),yes)
+    ifeq ($(biarch64)-$(biarch32),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-64=mips64r6
+      CONFARGS += --with-arch-32=mips32r6
+    endif
+  endif
+endif
+
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-mips-plt
+  CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+  ifeq ($(multilib),yes)
+    ifeq ($(biarchn32)-$(biarch32),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+    endif
+  endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+  CONFARGS += --with-mips-plt
+  CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+  ifeq ($(multilib),yes)
+    ifeq ($(biarchn32)-$(biarch32),yes-yes)
+      CONFARGS += --enable-targets=all
+      CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+    endif
+  endif
+endif
+
 ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE)))
   ifeq (,$(filter yes,$(biarch32) $(biarchn32) $(biarch64)))
       CONFARGS += --disable-multilib
@@ -1041,7 +1106,11 @@ ifeq ($(biarchn32)-$(biarch64),yes-yes)
 else ifeq ($(biarchn32)-$(biarch32),yes-yes)
 	@echo "Will build the triarch compilers (o32/n32/64, defaulting to 64)"
 else ifeq ($(biarch64)-$(biarch32),yes-yes)
+  ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE)))
+	@echo "Will build the triarch compilers (n32/64/32, defaulting to n32)"
+  else 
 	@echo "Will build the triarch compilers (x32/64/32, defaulting to x32)"
+  endif
 else ifeq ($(biarch64)-$(biarchx32),yes-yes)
 	@echo "Will build the triarch compilers (32/64/x32, defaulting to 32bit)"
 else ifeq ($(biarch32)-$(biarchx32),yes-yes)

Reply to: