Package: src:glibc Version: 2.24-17 Since stretch's dpkg has support mips r6 architectures and DSA are also using it, we can add mips r6 support now.
MIPS release r6 architectures are new release of MIPS, while they are not compatible with the r5/r2 ones. So we need to treat them as new architectures. There are also 6 flavors: mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el In this patch, I also include: symbol file for mipsn32/mipsn32el/mips64. -- YunQiang Su
diff --git a/debian/control.in/mips32 b/debian/control.in/mips32 index 1d5008a..7831000 100644 --- a/debian/control.in/mips32 +++ b/debian/control.in/mips32 @@ -1,5 +1,5 @@ Package: libc6-mips32 -Architecture: mipsn32 mipsn32el mips64 mips64el +Architecture: mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el Section: libs Priority: optional Depends: libc6 (= ${binary:Version}), ${misc:Depends} @@ -10,13 +10,13 @@ Description: GNU C Library: o32 Shared libraries for MIPS of the library, meant for MIPS systems. Package: libc6-dev-mips32 -Architecture: mipsn32 mipsn32el mips64 mips64el +Architecture: mipsn32 mipsn32el mips64 mips64el mipsn32r6 mipsn32r6el mips64r6 mips64r6el Section: libdevel Priority: optional Provides: lib32c-dev Depends: libc6-dev (= ${binary:Version}), libc6-mips32 (= ${binary:Version}), - libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el], - libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el], + libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el mips64r6 mips64r6el], + libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el mipsn32r6 mipsn32r6el], ${misc:Depends} Recommends: gcc-multilib Build-Profiles: <!nobiarch> diff --git a/debian/control.in/mips64 b/debian/control.in/mips64 index ec7b70c..32aa1f3 100644 --- a/debian/control.in/mips64 +++ b/debian/control.in/mips64 @@ -1,5 +1,5 @@ Package: libc6-mips64 -Architecture: mips mipsel mipsn32 mipsn32el +Architecture: mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el Section: libs Priority: optional Depends: libc6 (= ${binary:Version}), ${misc:Depends} @@ -10,7 +10,7 @@ Description: GNU C Library: 64bit Shared libraries for MIPS64 of the library, meant for MIPS64 systems. Package: libc6-dev-mips64 -Architecture: mips mipsel mipsn32 mipsn32el +Architecture: mips mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el Section: libdevel Priority: optional Provides: lib64c-dev diff --git a/debian/control.in/mipsn32 b/debian/control.in/mipsn32 index 019fce2..9ad5c0a 100644 --- a/debian/control.in/mipsn32 +++ b/debian/control.in/mipsn32 @@ -1,5 +1,5 @@ Package: libc6-mipsn32 -Architecture: mips mipsel mips64 mips64el +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el Section: libs Priority: optional Depends: libc6 (= ${binary:Version}), ${misc:Depends} @@ -10,11 +10,11 @@ Description: GNU C Library: n32 Shared libraries for MIPS64 of the library, meant for MIPS64 systems. Package: libc6-dev-mipsn32 -Architecture: mips mipsel mips64 mips64el +Architecture: mips mipsel mips64 mips64el mipsr6 mipsr6el mips64r6 mips64r6el Section: libdevel Priority: optional Provides: libn32c-dev -Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}) [mips mipsel], libc6-dev (= ${binary:Version}), ${misc:Depends} +Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}) [mips mipsel mipsr6 mipsr6el], libc6-dev (= ${binary:Version}), ${misc:Depends} Recommends: gcc-multilib Build-Profiles: <!nobiarch> Description: GNU C Library: n32 Development Libraries for MIPS64 diff --git a/debian/libc6-mips32.symbols.mips64 b/debian/libc6-mips32.symbols.mips64 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mips64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mips64r6 b/debian/libc6-mips32.symbols.mips64r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mips64r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mips64r6el b/debian/libc6-mips32.symbols.mips64r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mips64r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mipsn32 b/debian/libc6-mips32.symbols.mipsn32 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mipsn32 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mipsn32el b/debian/libc6-mips32.symbols.mipsn32el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mipsn32el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mipsn32r6 b/debian/libc6-mips32.symbols.mipsn32r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mipsn32r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips32.symbols.mipsn32r6el b/debian/libc6-mips32.symbols.mipsn32r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips32.symbols.mipsn32r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsn32 b/debian/libc6-mips64.symbols.mipsn32 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsn32 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsn32el b/debian/libc6-mips64.symbols.mipsn32el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsn32el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsn32r6 b/debian/libc6-mips64.symbols.mipsn32r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsn32r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsn32r6el b/debian/libc6-mips64.symbols.mipsn32r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsn32r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsr6 b/debian/libc6-mips64.symbols.mipsr6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsr6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mips64.symbols.mipsr6el b/debian/libc6-mips64.symbols.mipsr6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mips64.symbols.mipsr6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mipsn32.symbols.mips64 b/debian/libc6-mipsn32.symbols.mips64 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mipsn32.symbols.mips64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mipsn32.symbols.mips64r6 b/debian/libc6-mipsn32.symbols.mips64r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mipsn32.symbols.mips64r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mipsn32.symbols.mips64r6el b/debian/libc6-mipsn32.symbols.mips64r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mipsn32.symbols.mips64r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mipsn32.symbols.mipsr6 b/debian/libc6-mipsn32.symbols.mipsr6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mipsn32.symbols.mipsr6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6-mipsn32.symbols.mipsr6el b/debian/libc6-mipsn32.symbols.mipsr6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6-mipsn32.symbols.mipsr6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mips64 b/debian/libc6.symbols.mips64 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mips64 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mips64r6 b/debian/libc6.symbols.mips64r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mips64r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mips64r6el b/debian/libc6.symbols.mips64r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mips64r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsn32 b/debian/libc6.symbols.mipsn32 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mipsn32 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsn32el b/debian/libc6.symbols.mipsn32el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mipsn32el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsn32r6 b/debian/libc6.symbols.mipsn32r6 new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mipsn32r6 @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsn32r6el b/debian/libc6.symbols.mipsn32r6el new file mode 100644 index 0000000..5933230 --- /dev/null +++ b/debian/libc6.symbols.mipsn32r6el @@ -0,0 +1,5 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsr6 b/debian/libc6.symbols.mipsr6 new file mode 100644 index 0000000..bfe690b --- /dev/null +++ b/debian/libc6.symbols.mipsr6 @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_addr@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/libc6.symbols.mipsr6el b/debian/libc6.symbols.mipsr6el new file mode 100644 index 0000000..bfe690b --- /dev/null +++ b/debian/libc6.symbols.mipsr6el @@ -0,0 +1,12 @@ +#include "libc6.symbols.common" +ld.so.1 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### TLS support enabled in Debian upload 2.4 + __tls_get_addr@GLIBC_2.3 2.4 +libc.so.6 #PACKAGE# #MINVER# +#include "symbols.wildcards" +### +### Override headers already defined in libc6.symbols.common +### +libpthread.so.0 #PACKAGE# (>= 2.4), #PACKAGE# #MINVER# +#include "symbols.wildcards" diff --git a/debian/patches/mipsr6-linux-require.diff b/debian/patches/mipsr6-linux-require.diff new file mode 100644 index 0000000..ad1b357 --- /dev/null +++ b/debian/patches/mipsr6-linux-require.diff @@ -0,0 +1,32 @@ +Index: b/sysdeps/unix/sysv/linux/mips/configure +=================================================================== +--- a/sysdeps/unix/sysv/linux/mips/configure ++++ b/sysdeps/unix/sysv/linux/mips/configure +@@ -443,11 +443,3 @@ esac + + libc_cv_gcc_unwind_find_fde=yes + +-if test -z "$arch_minimum_kernel"; then +- if test x$libc_cv_mips_nan2008 = xyes; then +- # FIXME: Adjust this setting to the actual first upstream kernel +- # version to support the 2008 NaN encoding and then remove this +- # comment. +- arch_minimum_kernel=10.0.0 +- fi +-fi +Index: b/sysdeps/unix/sysv/linux/mips/configure.ac +=================================================================== +--- a/sysdeps/unix/sysv/linux/mips/configure.ac ++++ b/sysdeps/unix/sysv/linux/mips/configure.ac +@@ -122,11 +122,3 @@ esac + + libc_cv_gcc_unwind_find_fde=yes + +-if test -z "$arch_minimum_kernel"; then +- if test x$libc_cv_mips_nan2008 = xyes; then +- # FIXME: Adjust this setting to the actual first upstream kernel +- # version to support the 2008 NaN encoding and then remove this +- # comment. +- arch_minimum_kernel=10.0.0 +- fi +-fi diff --git a/debian/rules.d/control.mk b/debian/rules.d/control.mk index bd5e2af..e6acd87 100644 --- a/debian/rules.d/control.mk +++ b/debian/rules.d/control.mk @@ -1,7 +1,8 @@ libc_packages := libc6 libc6.1 libc0.1 libc0.3 libc0_1_archs := kfreebsd-amd64 kfreebsd-i386 libc0_3_archs := hurd-i386 -libc6_archs := amd64 arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el nios2 powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh3 sh4 x32 +libc6_archs := amd64 arm64 armel armhf hppa i386 m68k nios2 powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh3 sh4 x32 \ + mips mipsel mipsn32 mipsn32el mips64 mips64el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el libc6_1_archs := alpha control_deps := $(wildcard debian/control.in/*) $(addprefix debian/control.in/, $(libc_packages)) diff --git a/debian/sysdeps/mips64r6.mk b/debian/sysdeps/mips64r6.mk new file mode 100644 index 0000000..19a3a0b --- /dev/null +++ b/debian/sysdeps/mips64r6.mk @@ -0,0 +1,63 @@ +libc_add-ons = $(add-ons) +libc_rtlddir = /lib64 +extra_cflags = -mno-plt + +# build 32-bit (n32) alternative library +GLIBC_MULTILIB_PASSES += mipsn32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = $(add-ons) +mipsn32_configure_target = mipsisa64r6-linux-gnuabin32 +mipsn32_extra_cflags = -mno-plt +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_rtlddir = /lib32 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) + +# build 32-bit (o32) alternative library +GLIBC_MULTILIB_PASSES += mips32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32 +mips32_add-ons = $(add-ons) +mips32_configure_target = mipsisa32r6-linux-gnu +mips32_extra_cflags = -mno-plt +mips32_CC = $(CC) -mabi=32 +mips32_CXX = $(CXX) -mabi=32 +libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver)) +mips32_rtlddir = /lib +mips32_slibdir = /libo32 +mips32_libdir = /usr/libo32 +mips32_extra_config_options := $(extra_config_options) + +define libc6-dev-mipsn32_extra_pkg_install + +mkdir -p debian/libc6-dev-mipsn32/usr/include +ln -sf mipsisa64r6-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/ +ln -sf mipsisa64r6-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/ +ln -sf mipsisa64r6-linux-gnuabi64/fpu_control.h debian/libc6-dev-mipsn32/usr/include/ + +mkdir -p debian/libc6-dev-mipsn32/usr/include/mipsisa64r6-linux-gnuabi64/gnu +cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard_2008.h \ + debian/libc6-dev-mipsn32/usr/include/mipsisa64r6-linux-gnuabi64/gnu + +mkdir -p debian/libc6-dev-mipsn32/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa64r6-linux-gnuabi64/sys` ; do \ + ln -sf ../mipsisa64r6-linux-gnuabi64/sys/$$i debian/libc6-dev-mipsn32/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mips32_extra_pkg_install + +mkdir -p debian/libc6-dev-mips32/usr/include/mipsisa64r6-linux-gnuabi64/gnu +cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard_2008.h \ + debian/libc6-dev-mips32/usr/include/mipsisa64r6-linux-gnuabi64/gnu + +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-mips32_extra_pkg_install +mkdir -p debian/libc6-mips32/lib +ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib +endef diff --git a/debian/sysdeps/mips64r6el.mk b/debian/sysdeps/mips64r6el.mk new file mode 100644 index 0000000..63c6e8d --- /dev/null +++ b/debian/sysdeps/mips64r6el.mk @@ -0,0 +1,63 @@ +libc_add-ons = $(add-ons) +libc_rtlddir = /lib64 +extra_cflags = -mno-plt + +# build 32-bit (n32) alternative library +GLIBC_MULTILIB_PASSES += mipsn32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = $(add-ons) +mipsn32_configure_target = mipsisa64r6el-linux-gnuabin32 +mipsn32_extra_cflags = -mno-plt +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_rtlddir = /lib32 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) + +# build 32-bit (o32) alternative library +GLIBC_MULTILIB_PASSES += mips32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32 +mips32_add-ons = $(add-ons) +mips32_configure_target = mipsisa32r6el-linux-gnu +mips32_extra_cflags = -mno-plt +mips32_CC = $(CC) -mabi=32 +mips32_CXX = $(CXX) -mabi=32 +libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver)) +mips32_rtlddir = /lib +mips32_slibdir = /libo32 +mips32_libdir = /usr/libo32 +mips32_extra_config_options := $(extra_config_options) + +define libc6-dev-mipsn32_extra_pkg_install + +mkdir -p debian/libc6-dev-mipsn32/usr/include +ln -sf mipsisa64r6el-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/ +ln -sf mipsisa64r6el-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/ +ln -sf mipsisa64r6el-linux-gnuabi64/fpu_control.h debian/libc6-dev-mipsn32/usr/include/ + +mkdir -p debian/libc6-dev-mipsn32/usr/include/mipsisa64r6el-linux-gnuabi64/gnu +cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard_2008.h \ + debian/libc6-dev-mipsn32/usr/include/mipsisa64r6el-linux-gnuabi64/gnu + +mkdir -p debian/libc6-dev-mipsn32/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa64r6el-linux-gnuabi64/sys` ; do \ + ln -sf ../mipsisa64r6el-linux-gnuabi64/sys/$$i debian/libc6-dev-mipsn32/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mips32_extra_pkg_install + +mkdir -p debian/libc6-dev-mips32/usr/include/mipsisa64r6el-linux-gnuabi64/gnu +cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard_2008.h \ + debian/libc6-dev-mips32/usr/include/mipsisa64r6el-linux-gnuabi64/gnu + +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-mips32_extra_pkg_install +mkdir -p debian/libc6-mips32/lib +ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib +endef diff --git a/debian/sysdeps/mipsn32r6.mk b/debian/sysdeps/mipsn32r6.mk new file mode 100644 index 0000000..326d863 --- /dev/null +++ b/debian/sysdeps/mipsn32r6.mk @@ -0,0 +1,63 @@ +libc_add-ons = $(add-ons) +libc_rtlddir = /lib32 +extra_cflags = -mno-plt + +# build 64-bit alternative library +GLIBC_MULTILIB_PASSES += mips64 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = $(add-ons) +mips64_configure_target = mipsisa64r6-linux-gnuabi64 +mips64_extra_cflags = -mno-plt +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_rtlddir = /lib64 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) + +# build 32-bit (o32) alternative library +GLIBC_MULTILIB_PASSES += mips32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32 +mips32_add-ons = $(add-ons) +mips32_configure_target = mipsisa32r6-linux-gnu +mips32_extra_cflags = -mno-plt +mips32_CC = $(CC) -mabi=32 +mips32_CXX = $(CXX) -mabi=32 +libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver)) +mips32_rtlddir = /lib +mips32_slibdir = /libo32 +mips32_libdir = /usr/libo32 +mips32_extra_config_options := $(extra_config_options) + +define libc6-dev-mips64_extra_pkg_install + +mkdir -p debian/libc6-dev-mips64/usr/include +ln -sf mipsisa64r6-linux-gnuabin32/bits debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa64r6-linux-gnuabin32/gnu debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa64r6-linux-gnuabin32/fpu_control.h debian/libc6-dev-mips64/usr/include/ + +mkdir -p debian/libc6-dev-mips64/usr/include/mipsisa64r6-linux-gnuabin32/gnu +cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard_2008.h \ + debian/libc6-dev-mips64/usr/include/mipsisa64r6-linux-gnuabin32/gnu + +mkdir -p debian/libc6-dev-mips64/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa64r6-linux-gnuabin32/sys` ; do \ + ln -sf ../mipsisa64r6-linux-gnuabin32/sys/$$i debian/libc6-dev-mips64/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mips32_extra_pkg_install + +mkdir -p debian/libc6-dev-mips32/usr/include/mipsisa64r6-linux-gnuabin32/gnu +cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard_2008.h \ + debian/libc6-dev-mips32/usr/include/mipsisa64r6-linux-gnuabin32/gnu + +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-mips32_extra_pkg_install +mkdir -p debian/libc6-mips32/lib +ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib +endef diff --git a/debian/sysdeps/mipsn32r6el.mk b/debian/sysdeps/mipsn32r6el.mk new file mode 100644 index 0000000..5e8d88e --- /dev/null +++ b/debian/sysdeps/mipsn32r6el.mk @@ -0,0 +1,63 @@ +libc_add-ons = $(add-ons) +libc_rtlddir = /lib32 +extra_cflags = -mno-plt + +# build 64-bit alternative library +GLIBC_MULTILIB_PASSES += mips64 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = $(add-ons) +mips64_configure_target = mipsisa64r6el-linux-gnuabi64 +mips64_extra_cflags = -mno-plt +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_rtlddir = /lib64 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) + +# build 32-bit (o32) alternative library +GLIBC_MULTILIB_PASSES += mips32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips32 libc6-dev-mips32 +mips32_add-ons = $(add-ons) +mips32_configure_target = mipsisa32r6el-linux-gnu +mips32_extra_cflags = -mno-plt +mips32_CC = $(CC) -mabi=32 +mips32_CXX = $(CXX) -mabi=32 +libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver)) +mips32_rtlddir = /lib +mips32_slibdir = /libo32 +mips32_libdir = /usr/libo32 +mips32_extra_config_options := $(extra_config_options) + +define libc6-dev-mips64_extra_pkg_install + +mkdir -p debian/libc6-dev-mips64/usr/include +ln -sf mipsisa64r6el-linux-gnuabin32/bits debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa64r6el-linux-gnuabin32/gnu debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa64r6el-linux-gnuabin32/fpu_control.h debian/libc6-dev-mips64/usr/include/ + +mkdir -p debian/libc6-dev-mips64/usr/include/mipsisa64r6el-linux-gnuabin32/gnu +cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard_2008.h \ + debian/libc6-dev-mips64/usr/include/mipsisa64r6el-linux-gnuabin32/gnu + +mkdir -p debian/libc6-dev-mips64/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa64r6el-linux-gnuabin32/sys` ; do \ + ln -sf ../mipsisa64r6el-linux-gnuabin32/sys/$$i debian/libc6-dev-mips64/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mips32_extra_pkg_install + +mkdir -p debian/libc6-dev-mips32/usr/include/mipsisa64r6el-linux-gnuabin32/gnu +cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard_2008.h \ + debian/libc6-dev-mips32/usr/include/mipsisa64r6el-linux-gnuabin32/gnu + +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-mips32_extra_pkg_install +mkdir -p debian/libc6-mips32/lib +ln -sf /libo32/ld.so.1 debian/libc6-mips32/lib +endef diff --git a/debian/sysdeps/mipsr6.mk b/debian/sysdeps/mipsr6.mk new file mode 100644 index 0000000..28673fc --- /dev/null +++ b/debian/sysdeps/mipsr6.mk @@ -0,0 +1,61 @@ +libc_add-ons = $(add-ons) +extra_cflags = -mno-plt + +# build 32-bit (n32) alternative library +GLIBC_MULTILIB_PASSES += mipsn32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = $(add-ons) +mipsn32_configure_target = mipsisa64r6-linux-gnuabin32 +mipsn32_extra_cflags = -mno-plt +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_rtlddir = /lib32 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) + +# build 64-bit alternative library +GLIBC_MULTILIB_PASSES += mips64 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = $(add-ons) +mips64_configure_target = mipsisa64r6-linux-gnuabi64 +mips64_extra_cflags = -mno-plt +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_rtlddir = /lib64 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) + +define libc6-dev-mips64_extra_pkg_install + +mkdir -p debian/libc6-dev-mips64/usr/include +ln -sf mipsisa32r6-linux-gnu/bits debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa32r6-linux-gnu/gnu debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa32r6-linux-gnu/fpu_control.h debian/libc6-dev-mips64/usr/include/ + +mkdir -p debian/libc6-dev-mips64/usr/include/mipsisa32r6-linux-gnu/gnu +cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard_2008.h \ + debian/libc6-dev-mips64/usr/include/mipsisa32r6-linux-gnu/gnu + +mkdir -p debian/libc6-dev-mips64/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa32r6-linux-gnu/sys` ; do \ + ln -sf ../mipsisa32r6-linux-gnu/sys/$$i debian/libc6-dev-mips64/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mipsn32_extra_pkg_install + +mkdir -p debian/libc6-dev-mipsn32/usr/include/mipsisa32r6-linux-gnu/gnu +cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard_2008.h \ + debian/libc6-dev-mipsn32/usr/include/mipsisa32r6-linux-gnu/gnu + +endef + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef diff --git a/debian/sysdeps/mipsr6el.mk b/debian/sysdeps/mipsr6el.mk new file mode 100644 index 0000000..1b558c0 --- /dev/null +++ b/debian/sysdeps/mipsr6el.mk @@ -0,0 +1,61 @@ +libc_add-ons = $(add-ons) +extra_cflags = -mno-plt + +# build 32-bit (n32) alternative library +GLIBC_MULTILIB_PASSES += mipsn32 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = $(add-ons) +mipsn32_configure_target = mipsisa64r6el-linux-gnuabin32 +mipsn32_extra_cflags = -mno-plt +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_rtlddir = /lib32 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) + +# build 64-bit alternative library +GLIBC_MULTILIB_PASSES += mips64 +DEB_ARCH_MULTILIB_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = $(add-ons) +mips64_configure_target = mipsisa64r6el-linux-gnuabi64 +mips64_extra_cflags = -mno-plt +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_rtlddir = /lib64 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) + +define libc6-dev-mips64_extra_pkg_install + +mkdir -p debian/libc6-dev-mips64/usr/include +ln -sf mipsisa32r6el-linux-gnu/bits debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa32r6el-linux-gnu/gnu debian/libc6-dev-mips64/usr/include/ +ln -sf mipsisa32r6el-linux-gnu/fpu_control.h debian/libc6-dev-mips64/usr/include/ + +mkdir -p debian/libc6-dev-mips64/usr/include/mipsisa32r6el-linux-gnu/gnu +cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard_2008.h \ + debian/libc6-dev-mips64/usr/include/mipsisa32r6el-linux-gnu/gnu + +mkdir -p debian/libc6-dev-mips64/usr/include/sys +for i in `ls debian/tmp-libc/usr/include/mipsisa32r6el-linux-gnu/sys` ; do \ + ln -sf ../mipsisa32r6el-linux-gnu/sys/$$i debian/libc6-dev-mips64/usr/include/sys/$$i ; \ +done + +endef + +define libc6-dev-mipsn32_extra_pkg_install + +mkdir -p debian/libc6-dev-mipsn32/usr/include/mipsisa32r6el-linux-gnu/gnu +cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard_2008.h \ + debian/libc6-dev-mipsn32/usr/include/mipsisa32r6el-linux-gnu/gnu + +endef + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef