Package: src:binutils
Version: 2.25.90.20151125-2
Control: block -1 by 807340

This patch enable building n32 and {32r6,n32r6,64r6} for mips.
Please add it when dpkg patch is merged.

-- 
YunQiang Su
diff --git a/debian/control b/debian/control
index fede768..9e749ab 100644
--- a/debian/control
+++ b/debian/control
@@ -325,3 +325,107 @@ Description: GNU binary utilities, for sparc64-linux-gnu 
target
  .
  You don't need this package unless you plan to cross-compile programs
  for sparc64-linux-gnu.
+
+Package: binutils-mips64-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mips64-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64-linux-gnuabin32 target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64-linux-gnuabin32.
+
+Package: binutils-mips64el-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mips64el-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mips64el-linux-gnuabin32 target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mips64el-linux-gnuabin32.
+
+Package: binutils-mipsisa32r6-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa32r6-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa32r6-linux-gnu target, for use in a cross-compilation environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa32r6-linux-gnu.
+
+Package: binutils-mipsisa32r6el-linux-gnu
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa32r6el-linux-gnu target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa32r6el-linux-gnu target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa32r6el-linux-gnu.
+
+Package: binutils-mipsisa64r6-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa64r6-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa64r6-linux-gnuabin32 target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa64r6-linux-gnuabin32.
+
+Package: binutils-mipsisa64r6el-linux-gnuabin32
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabin32 target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa64r6el-linux-gnuabin32 target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa64r6el-linux-gnuabin32.
+
+Package: binutils-mipsisa64r6-linux-gnuabi64
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa64r6-linux-gnuabi64 target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa64r6-linux-gnuabi64 target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa64r6-linux-gnuabi64.
+
+Package: binutils-mipsisa64r6el-linux-gnuabi64
+Architecture: amd64 i386 x32
+Depends: binutils (= ${binary:Version}), ${shlibs:Depends}
+Suggests: binutils-doc (= ${source:Version})
+Provides: 
+Priority: extra
+Description: GNU binary utilities, for mipsisa64r6el-linux-gnuabi64 target
+ This package provides GNU assembler, linker and binary utilities
+ for mipsisa64r6el-linux-gnuabi64 target, for use in a cross-compilation 
environment.
+ .
+ You don't need this package unless you plan to cross-compile programs
+ for mipsisa64r6el-linux-gnuabi64.
diff --git a/debian/patches/mips64-default-n64.diff 
b/debian/patches/mips64-default-n64.diff
index 7377ac1..eff6ac4 100644
--- a/debian/patches/mips64-default-n64.diff
+++ b/debian/patches/mips64-default-n64.diff
@@ -1,66 +1,79 @@
 Index: b/bfd/config.bfd
 ===================================================================
---- a/bfd/config.bfd
-+++ b/bfd/config.bfd
-@@ -1081,6 +1081,16 @@ case "${targ}" in
+--- a/bfd/config.bfd   2015-12-07 17:21:30.660851798 +0000
++++ b/bfd/config.bfd   2015-12-07 17:25:05.324220591 +0000
+@@ -1086,11 +1086,21 @@
      targ_defvec=mips_elf32_be_vec
      targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec 
mips_ecoff_be_vec mips_ecoff_le_vec"
      ;;
-+  mips64*el-*-linux*-gnuabi64)
+-  mips64*el-*-linux*)
++  mips*64*el-*-linux*-gnuabi64)
 +    targ_defvec=mips_elf64_trad_le_vec
 +    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec 
mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec"
 +    want64=true
 +    ;;
-+  mips64*-*-linux*-gnuabi64)
++  mips*64*-*-linux*-gnuabi64)
 +    targ_defvec=mips_elf64_trad_be_vec
 +    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec 
mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec"
 +    want64=true
 +    ;;
-   mips64*el-*-linux*)
++  mips*64*el-*-linux*)
      targ_defvec=mips_elf32_ntrad_le_vec
      targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec 
mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
+     ;;
+-  mips64*-*-linux*)
++  mips*64*-*-linux*)
+     targ_defvec=mips_elf32_ntrad_be_vec
+     targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec 
mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
+     ;;
 Index: b/gas/configure.ac
 ===================================================================
---- a/gas/configure.ac
-+++ b/gas/configure.ac
-@@ -300,6 +300,9 @@ changequote([,])dnl
+--- a/gas/configure.ac 2015-12-07 17:21:30.660851798 +0000
++++ b/gas/configure.ac 2015-12-07 17:26:47.251926290 +0000
+@@ -300,7 +300,10 @@
        esac
        # Decide which ABI to target by default.
        case ${target} in
-+        mips64*-linux-gnuabi64)
+-        mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
++        mips*64*-linux-gnuabi64)
 +          mips_default_abi=N64_ABI
 +          ;;
-         mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
++        mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
            mips_default_abi=N32_ABI
            ;;
+         mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
 Index: b/ld/configure.tgt
 ===================================================================
---- a/ld/configure.tgt
-+++ b/ld/configure.tgt
-@@ -507,6 +507,12 @@ mips*el-*-vxworks*)       targ_emul=elf32elmip
+--- a/ld/configure.tgt 2015-12-07 17:21:30.660851798 +0000
++++ b/ld/configure.tgt 2015-12-07 17:28:17.971666593 +0000
+@@ -509,7 +509,13 @@
  mips*-*-vxworks*)     targ_emul=elf32ebmipvxworks
                        targ_extra_emuls="elf32elmipvxworks" ;;
  mips*-*-windiss)      targ_emul=elf32mipswindiss ;;
-+mips64*el-*-linux-gnuabi64)   targ_emul=elf64ltsmip
+-mips64*el-*-linux-*)  targ_emul=elf32ltsmipn32
++mips*64*el-*-linux-gnuabi64)  targ_emul=elf64ltsmip
 +                      targ_extra_emuls="elf32btsmipn32 elf32ltsmip 
elf32btsmip elf32ltsmipn32 elf64btsmip"
 +                      targ_extra_libpath=$targ_extra_emuls ;;
-+mips64*-*-linux-gnuabi64)     targ_emul=elf64btsmip
++mips*64*-*-linux-gnuabi64)    targ_emul=elf64btsmip
 +                      targ_extra_emuls="elf32ltsmipn32 elf32btsmip 
elf32ltsmip elf32btsmipn32 elf64ltsmip"
 +                      targ_extra_libpath=$targ_extra_emuls ;;
- mips64*el-*-linux-*)  targ_emul=elf32ltsmipn32
++mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32
                        targ_extra_emuls="elf32btsmipn32 elf32ltsmip 
elf32btsmip elf64ltsmip elf64btsmip"
                        targ_extra_libpath=$targ_extra_emuls ;;
+ mips64*-*-linux-*)    targ_emul=elf32btsmipn32
 Index: b/gas/configure
 ===================================================================
---- a/gas/configure
-+++ b/gas/configure
-@@ -12215,6 +12215,9 @@ _ACEOF
+--- a/gas/configure    2015-12-07 17:21:30.660851798 +0000
++++ b/gas/configure    2015-12-07 17:28:39.327605738 +0000
+@@ -12215,7 +12215,10 @@
        esac
        # Decide which ABI to target by default.
        case ${target} in
-+        mips64*-linux-gnuabi64)
+-        mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
++        mips*64*-linux-gnuabi64)
 +          mips_default_abi=N64_ABI
 +          ;;
-         mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
++        mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | 
mips64*-kfreebsd*-gnu)
            mips_default_abi=N32_ABI
            ;;
+         mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
diff --git a/debian/rules b/debian/rules
index b2a6533..c7b1623 100755
--- a/debian/rules
+++ b/debian/rules
@@ -84,6 +84,8 @@ ifeq ($(src_name),binutils)
   same_source  = yes
   CROSS_ARCHS  ?= s390x ppc64el powerpc arm64 armhf armel mips mipsel
   CROSS_ARCHS  += alpha hppa m68k mips64 mips64el powerpcspe ppc64 sh4 sparc64
+  CROSS_ARCHS  += mipsn32 mipsn32el
+  CROSS_ARCHS  += mips32r6 mips32r6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el
   #CROSS_ARCHS += kfreebsd-amd64 kfreebsd-i386 hurd-i386
 else
   # binutils-ports ...
@@ -114,6 +116,16 @@ HOST_ARCHS_ppc64 = amd64 i386 x32 ppc64el
 HOST_ARCHS_sh4 = amd64 i386 x32
 HOST_ARCHS_sparc64 = amd64 i386 x32
 
+HOST_ARCHS_mipsn32 = amd64 i386 x32
+HOST_ARCHS_mipsn32el = amd64 i386 x32
+
+HOST_ARCHS_mips32r6 = amd64 i386 x32
+HOST_ARCHS_mips32r6el = amd64 i386 x32
+HOST_ARCHS_mipsn32r6 = amd64 i386 x32
+HOST_ARCHS_mipsn32r6el = amd64 i386 x32
+HOST_ARCHS_mips64r6 = amd64 i386 x32
+HOST_ARCHS_mips64r6el = amd64 i386 x32
+
 HOST_ARCHS_kfreebsd-amd64 = amd64 i386 x32
 HOST_ARCHS_kfreebsd-i386 = amd64 i386 x32
 HOST_ARCHS_hurd-i386 = amd64 i386 x32
@@ -179,6 +191,7 @@ SHELL  = /bin/bash
 gold_targets = \
        amd64 arm64 armel armhf i386 \
        mips mipsel mipsn32 mipsn32el mips64 mips64el \
+       mips32r6 mips32r6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el \
        powerpc powerpcspe ppc64 ppc64el \
        x32 kfreebsd-amd64 kfreebsd-i386 hurd-i386
 
@@ -340,7 +353,25 @@ DEB_TARGET_MULTIARCH32_mips64              = mips-linux-gnu
 DEB_TARGET_MULTIARCHN32_mips64         = mips64-linux-gnuabin32
 
 DEB_TARGET_MULTIARCH32_mips64el                = mipsel-linux-gnu
-DEB_TARGET_MULTIARCHN32_mipselel       = mips64el-linux-gnuabin32
+DEB_TARGET_MULTIARCHN32_mips64el       = mips64el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mips32r6                = mipsisa64r6-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mips32r6       = mipsisa64r6-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mips32r6el      = mipsisa64r6el-linux-gnuabi64
+DEB_TARGET_MULTIARCHN32_mips32r6el     = mipsisa64r6el-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH64_mipsn32r6       = mipsisa64r6-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32r6       = mipsisa32r6-linux-gnu
+
+DEB_TARGET_MULTIARCH64_mipsn32r6el     = mipsisa64r6el-linux-gnuabi64
+DEB_TARGET_MULTIARCH32_mipsn32r6el     = mipsisa32r6el-linux-gnu
+
+DEB_TARGET_MULTIARCH32_mips64r6                = mipsisa32r6-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64r6       = mipsisa64r6-linux-gnuabin32
+
+DEB_TARGET_MULTIARCH32_mips64r6el      = mipsisa32r6el-linux-gnu
+DEB_TARGET_MULTIARCHN32_mips64r6el     = mipsisa64r6el-linux-gnuabin32
 
 DEB_TARGET_MULTIARCH32_arm64           = aarch64_ilp32-linux-gnu
 
@@ -391,6 +422,18 @@ CONFARGS_TARGET_mips64             = 
--enable-targets=mips64-linux-gnuabin32,mips-linux-gnu
 
 CONFARGS_TARGET_mips64el       = 
--enable-targets=mips64el-linux-gnuabin32,mipsel-linux-gnu
 
+CONFARGS_TARGET_mips32r6       = 
--enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa64r6-linux-gnuabin32
+
+CONFARGS_TARGET_mips32r6el     = 
--enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa64r6el-linux-gnuabin32
+
+CONFARGS_TARGET_mipsn32r6      = 
--enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa32r6-linux-gnu
+
+CONFARGS_TARGET_mipsn32r6el    = 
--enable-targets=mipsisa64r6el-linux-gnuabi64,mipsisa32r6el-linux-gnu
+
+CONFARGS_TARGET_mips64r6       = 
--enable-targets=mipsisa64r6-linux-gnuabin32,mipsisa32r6-linux-gnu
+
+CONFARGS_TARGET_mips64r6el     = 
--enable-targets=mipsisa64r6el-linux-gnuabin32,mipsisa32r6el-linux-gnu
+
 CONFARGS_TARGET_aarch64                = --enable-targets=aarch64_be-linux-gnu
 
 with_check := yes
@@ -585,8 +628,16 @@ multiarch_targets = \
        m68k-rtems \
        mips-linux-gnu \
        mipsel-linux-gnu \
+       mips64-linux-gnuabin32 \
+       mips64el-linux-gnuabin32 \
        mips64-linux-gnu \
        mips64el-linux-gnu \
+       mipsisa32r6-linux-gnu \
+       mipsisa32r6el-linux-gnu \
+       mipsisa64r6-linux-gnuabin32 \
+       mipsisa64r6el-linux-gnuabin32 \
+       mipsisa64r6-linux-gnuabi64 \
+       mipsisa64r6el-linux-gnuabi64 \
        powerpc-linux-gnu \
        powerpc64-linux-gnu \
        powerpc64le-linux-gnu \

Reply via email to