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 \