As in dpkg, mips32r6(el) has been renamed to mipsr6(el), I updated this patch.
On Tue, Mar 8, 2016 at 9:22 PM, YunQiang Su <wzss...@gmail.com> wrote: > On Tue, 8 Dec 2015 15:15:03 +0800 YunQiang Su <wzss...@gmail.com> wrote: >> 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. > > I refreshed this patche. See the attachment. > >> >> -- >> YunQiang Su -- 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 f114ca7..7178f99 100644 --- a/debian/patches/mips64-default-n64.diff +++ b/debian/patches/mips64-default-n64.diff @@ -1,66 +1,75 @@ -Index: b/bfd/config.bfd -=================================================================== --- a/bfd/config.bfd +++ b/bfd/config.bfd -@@ -1086,6 +1086,16 @@ case "${targ}" in +@@ -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" -Index: b/gas/configure.ac -=================================================================== + ;; +- 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" + ;; --- a/gas/configure.ac +++ b/gas/configure.ac -@@ -300,6 +300,9 @@ changequote([,])dnl +@@ -322,7 +322,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 ;; -Index: b/ld/configure.tgt -=================================================================== + mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) --- a/ld/configure.tgt +++ b/ld/configure.tgt -@@ -509,6 +509,12 @@ mips*el-*-vxworks*) targ_emul=elf32elmip +@@ -509,10 +509,16 @@ 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 ;; -Index: b/gas/configure -=================================================================== +-mips64*-*-linux-*) targ_emul=elf32btsmipn32 ++mips*64*-*-linux-*) targ_emul=elf32btsmipn32 + targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" + targ_extra_libpath=$targ_extra_emuls ;; + mips*el-*-linux-*) targ_emul=elf32ltsmip --- a/gas/configure +++ b/gas/configure -@@ -12215,6 +12215,9 @@ _ACEOF +@@ -12240,7 +12240,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 9acad00..b85c6f4 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 += mipsr6 mipsr6el 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_mipsr6 = amd64 i386 x32 +HOST_ARCHS_mipsr6el = 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 \ + mipsr6 mipsr6el 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_mipsr6 = mipsisa64r6-linux-gnuabi64 +DEB_TARGET_MULTIARCHN32_mipsr6 = mipsisa64r6-linux-gnuabin32 + +DEB_TARGET_MULTIARCH64_mipsr6el = mipsisa64r6el-linux-gnuabi64 +DEB_TARGET_MULTIARCHN32_mipsr6el = 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_mipsr6 = --enable-targets=mipsisa64r6-linux-gnuabi64,mipsisa64r6-linux-gnuabin32 + +CONFARGS_TARGET_mipsr6el = --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 \