--- Begin Message ---
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
--- End Message ---