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

Reply via email to