Bug#715038: add mips64(el) mipsn32(el) support to eglibc
Hi,
In this patch, o32 libraries are moved from /lib to /libo32.
diff -Nru eglibc-2.19/debian/changelog eglibc-2.19/debian/changelog
--- eglibc-2.19/debian/changelog 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/changelog 2014-06-10 12:10:27.000000000 +0000
@@ -1,4 +1,10 @@
-eglibc (2.19-1) unstable; urgency=medium
+eglibc (2.19-1+mips64.1) UNRELEASED; urgency=medium
+
+ * move the o32 libraries from /lib to /libo32
+
+ -- Sphinx Jiang <yishanj13@gmail.com> Tue, 10 Jun 2014 12:06:12 +0000
+
+eglibc (2.19-1+mips64) unstable; urgency=medium
[ Aurelien Jarno ]
* debian/control.in/main: remove outdated Build-Depends on bzip2.
diff -Nru eglibc-2.19/debian/control eglibc-2.19/debian/control
--- eglibc-2.19/debian/control 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/control 2014-06-10 12:02:01.000000000 +0000
@@ -3,12 +3,12 @@
Priority: required
Build-Depends: gettext, dpkg-dev (>= 1.16.0), xz-utils, file, quilt,
autoconf, gawk, debhelper (>= 7.4.3), rdfind, symlinks, netbase,
- linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32],
+ linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32], linux-libc-dev (>= 3.9) [mips64 mips64el],
libaudit-dev [linux-any], libcap-dev [linux-any], libselinux-dev [linux-any], systemtap-sdt-dev [linux-any],
mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 1:0.5.git20140320~) [hurd-i386], gnumach-dev (>= 2:1.4-2~) [hurd-i386],
kfreebsd-kernel-headers [kfreebsd-any],
binutils (>= 2.21),
- g++-4.8, g++-4.8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390x sparc sparc64 x32]
+ g++-4.8, g++-4.8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc ppc64 s390x sparc sparc64 x32]
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>
@@ -135,7 +135,7 @@
be removed once nothing on the system depends on it.
Package: libc6
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: libs
Priority: required
Multi-Arch: same
@@ -153,6 +153,9 @@
libc6-ppc64 [ppc64],
libc6-s390x [s390x],
libc6-sparc64 [sparc64],
+ libc6-mips64 [mips64 mips64el],
+ libc6-mipsn32 [mipsn32 mipsn32el],
+ libc6-mips32 [mips mipsel],
hurd (<< 20120408-3) [hurd-i386]
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
@@ -160,7 +163,7 @@
and the standard math library, as well as many others.
Package: libc6-dev
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: libdevel
Priority: optional
Multi-Arch: same
@@ -176,7 +179,7 @@
and link programs which use the standard C library.
Package: libc6-dbg
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: debug
Priority: extra
Multi-Arch: same
@@ -187,7 +190,7 @@
library.
Package: libc6-prof
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: libdevel
Priority: extra
Multi-Arch: same
@@ -197,7 +200,7 @@
with gprof.
Package: libc6-pic
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: libdevel
Priority: optional
Multi-Arch: same
@@ -212,7 +215,7 @@
Package: libc6-udeb
XC-Package-Type: udeb
-Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+Architecture: amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
Section: debian-installer
Priority: extra
Provides: libc6, libc-udeb, ${locale-compat:Depends}
@@ -243,6 +246,9 @@
libc6-ppc64 [ppc64],
libc6-s390x [s390x],
libc6-sparc64 [sparc64],
+ libc6-mips64 [mips64 mips64el],
+ libc6-mipsn32 [mipsn32 mipsn32el],
+ libc6-mips32 [mips mipsel],
hurd (<< 20120408-3) [hurd-i386]
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
@@ -333,6 +339,9 @@
libc6-ppc64 [ppc64],
libc6-s390x [s390x],
libc6-sparc64 [sparc64],
+ libc6-mips64 [mips64 mips64el],
+ libc6-mipsn32 [mipsn32 mipsn32el],
+ libc6-mips32 [mips mipsel],
hurd (<< 20120408-3) [hurd-i386]
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
@@ -423,6 +432,9 @@
libc6-ppc64 [ppc64],
libc6-s390x [s390x],
libc6-sparc64 [sparc64],
+ libc6-mips64 [mips64 mips64el],
+ libc6-mipsn32 [mipsn32 mipsn32el],
+ libc6-mips32 [mips mipsel],
hurd (<< 20120408-3) [hurd-i386]
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
@@ -665,8 +677,35 @@
which use the standard C library. This is the 64bit version of the
library, meant for PowerPC64 systems.
+Package: libc6-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libs
+Priority: optional
+Depends: libc6 (= ${binary:Version}), ${misc:Depends}
+Description: Embedded GNU C Library: o32 Shared libraries for MIPS64
+ This package includes shared versions of the standard C library and the
+ standard math library, as well as many others. This is the o32 version
+ of the library, meant for MIPS64 systems.
+
+Package: libc6-dev-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libdevel
+Priority: optional
+Provides: lib32c-dev
+Conflicts: libc6-dev (<< 2.13-14)
+Replaces: libc6-dev (<< 2.13-11)
+Depends: libc6-dev (= ${binary:Version}), libc6-mips32 (= ${binary:Version}),
+ libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el],
+ libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el],
+ ${misc:Depends}
+Recommends: gcc-multilib
+Description: Embedded GNU C Library: o32 Development Libraries for MIPS64
+ Contains the symlinks and object files needed to compile and link programs
+ which use the standard C library. This is the o32 version of the
+ library, meant for MIPS64 systems.
+
Package: libc6-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
Section: libs
Priority: optional
Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -676,13 +715,13 @@
of the library, meant for MIPS64 systems.
Package: libc6-dev-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
Section: libdevel
Priority: optional
Provides: libn32c-dev
Conflicts: libc6-dev (<< 2.13-14)
Replaces: libc6-dev (<< 2.13-11)
-Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}), ${misc:Depends}
+Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}) [mips mipsel], libc6-dev (= ${binary:Version}), ${misc:Depends}
Recommends: gcc-multilib
Description: Embedded GNU C Library: n32 Development Libraries for MIPS64
Contains the symlinks and object files needed to compile and link programs
@@ -690,7 +729,7 @@
library, meant for MIPS64 systems.
Package: libc6-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
Section: libs
Priority: optional
Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -700,7 +739,7 @@
of the library, meant for MIPS64 systems.
Package: libc6-dev-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
Section: libdevel
Priority: optional
Provides: lib64c-dev
diff -Nru eglibc-2.19/debian/control.in/libc eglibc-2.19/debian/control.in/libc
--- eglibc-2.19/debian/control.in/libc 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/control.in/libc 2014-06-10 12:02:01.000000000 +0000
@@ -17,6 +17,9 @@
libc6-ppc64 [ppc64],
libc6-s390x [s390x],
libc6-sparc64 [sparc64],
+ libc6-mips64 [mips64 mips64el],
+ libc6-mipsn32 [mipsn32 mipsn32el],
+ libc6-mips32 [mips mipsel],
hurd (<< 20120408-3) [hurd-i386]
Description: Embedded GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs on
diff -Nru eglibc-2.19/debian/control.in/main eglibc-2.19/debian/control.in/main
--- eglibc-2.19/debian/control.in/main 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/control.in/main 2014-06-10 12:02:01.000000000 +0000
@@ -3,12 +3,12 @@
Priority: required
Build-Depends: gettext, dpkg-dev (>= 1.16.0), xz-utils, file, quilt,
autoconf, gawk, debhelper (>= 7.4.3), rdfind, symlinks, netbase,
- linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32],
+ linux-libc-dev (>= 3.2.1) [linux-any], linux-libc-dev (>= 3.4) [amd64 i386 x32], linux-libc-dev (>= 3.9) [mips64 mips64el],
libaudit-dev [linux-any], libcap-dev [linux-any], libselinux-dev [linux-any], systemtap-sdt-dev [linux-any],
mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 1:0.5.git20140320~) [hurd-i386], gnumach-dev (>= 2:1.4-2~) [hurd-i386],
kfreebsd-kernel-headers [kfreebsd-any],
binutils (>= 2.21),
- g++-4.8, g++-4.8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390x sparc sparc64 x32]
+ g++-4.8, g++-4.8-multilib [amd64 i386 kfreebsd-amd64 mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc ppc64 s390x sparc sparc64 x32]
Build-Depends-Indep: perl, po-debconf (>= 1.0)
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Uploaders: Clint Adams <clint@debian.org>, Aurelien Jarno <aurel32@debian.org>, Adam Conrad <adconrad@0c3.net>
diff -Nru eglibc-2.19/debian/control.in/mips32 eglibc-2.19/debian/control.in/mips32
--- eglibc-2.19/debian/control.in/mips32 1970-01-01 00:00:00.000000000 +0000
+++ eglibc-2.19/debian/control.in/mips32 2014-06-10 12:02:01.000000000 +0000
@@ -0,0 +1,27 @@
+Package: libc6-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libs
+Priority: optional
+Depends: libc6 (= ${binary:Version}), ${misc:Depends}
+Description: Embedded GNU C Library: o32 Shared libraries for MIPS64
+ This package includes shared versions of the standard C library and the
+ standard math library, as well as many others. This is the o32 version
+ of the library, meant for MIPS64 systems.
+
+Package: libc6-dev-mips32
+Architecture: mipsn32 mipsn32el mips64 mips64el
+Section: libdevel
+Priority: optional
+Provides: lib32c-dev
+Conflicts: libc6-dev (<< 2.13-14)
+Replaces: libc6-dev (<< 2.13-11)
+Depends: libc6-dev (= ${binary:Version}), libc6-mips32 (= ${binary:Version}),
+ libc6-dev-mipsn32 (= ${binary:Version}) [mips64 mips64el],
+ libc6-dev-mips64 (= ${binary:Version}) [mipsn32 mipsn32el],
+ ${misc:Depends}
+Recommends: gcc-multilib
+Description: Embedded GNU C Library: o32 Development Libraries for MIPS64
+ Contains the symlinks and object files needed to compile and link programs
+ which use the standard C library. This is the o32 version of the
+ library, meant for MIPS64 systems.
+
diff -Nru eglibc-2.19/debian/control.in/mips64 eglibc-2.19/debian/control.in/mips64
--- eglibc-2.19/debian/control.in/mips64 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/control.in/mips64 2014-06-10 12:02:01.000000000 +0000
@@ -1,5 +1,5 @@
Package: libc6-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
Section: libs
Priority: optional
Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -9,7 +9,7 @@
of the library, meant for MIPS64 systems.
Package: libc6-dev-mips64
-Architecture: mips mipsel
+Architecture: mips mipsel mipsn32 mipsn32el
Section: libdevel
Priority: optional
Provides: lib64c-dev
diff -Nru eglibc-2.19/debian/control.in/mipsn32 eglibc-2.19/debian/control.in/mipsn32
--- eglibc-2.19/debian/control.in/mipsn32 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/control.in/mipsn32 2014-06-10 12:02:01.000000000 +0000
@@ -1,5 +1,5 @@
Package: libc6-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
Section: libs
Priority: optional
Depends: libc6 (= ${binary:Version}), ${misc:Depends}
@@ -9,13 +9,13 @@
of the library, meant for MIPS64 systems.
Package: libc6-dev-mipsn32
-Architecture: mips mipsel
+Architecture: mips mipsel mips64 mips64el
Section: libdevel
Priority: optional
Provides: libn32c-dev
Conflicts: libc6-dev (<< 2.13-14)
Replaces: libc6-dev (<< 2.13-11)
-Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}), ${misc:Depends}
+Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev-mips64 (= ${binary:Version}) [mips mipsel], libc6-dev (= ${binary:Version}), ${misc:Depends}
Recommends: gcc-multilib
Description: Embedded GNU C Library: n32 Development Libraries for MIPS64
Contains the symlinks and object files needed to compile and link programs
diff -Nru eglibc-2.19/debian/rules.d/build.mk eglibc-2.19/debian/rules.d/build.mk
--- eglibc-2.19/debian/rules.d/build.mk 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/rules.d/build.mk 2014-06-10 12:02:01.000000000 +0000
@@ -195,7 +195,7 @@
install_root=$(CURDIR)/debian/tmp-$(curpass) install
# Generate gconv-modules.cache
- case $(curpass)-$(call xx,slibdir) in libc-* | *-/lib32 | *-/lib64 | *-/libx32) \
+ case $(curpass)-$(call xx,slibdir) in libc-* | *-/lib32 | *-/lib64 | *-/libx32 | *-/libo32) \
/usr/sbin/iconvconfig --nostdlib --prefix=$(CURDIR)/debian/tmp-$(curpass) \
-o $(CURDIR)/debian/tmp-$(curpass)/$(call xx,libdir)/gconv/gconv-modules.cache \
$(call xx,libdir)/gconv \
@@ -233,7 +233,7 @@
# the multiarch ld.so doesn't look at the (non-standard) /lib32, so we
# need path compatibility when biarch and multiarch packages are both
# installed.
- case $(call xx,slibdir) in /lib32 | /lib64 | /libx32) \
+ case $(call xx,slibdir) in /lib32 | /lib64 | /libx32 | /libo32) \
mkdir -p debian/tmp-$(curpass)/etc/ld.so.conf.d; \
conffile="debian/tmp-$(curpass)/etc/ld.so.conf.d/zz_$(curpass)-biarch-compat.conf"; \
echo "# Legacy biarch compatibility support" > $$conffile; \
diff -Nru eglibc-2.19/debian/rules.d/control.mk eglibc-2.19/debian/rules.d/control.mk
--- eglibc-2.19/debian/rules.d/control.mk 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/rules.d/control.mk 2014-06-10 12:02:01.000000000 +0000
@@ -1,7 +1,7 @@
libc_packages := libc6 libc6.1 libc0.1 libc0.3
libc0_1_archs := kfreebsd-amd64 kfreebsd-i386
libc0_3_archs := hurd-i386
-libc6_archs := amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
+libc6_archs := amd64 arm arm64 armel armhf hppa i386 m68k mips mipsel mipsn32 mipsn32el mips64 mips64el powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390x sh4 x32
libc6_1_archs := alpha ia64
control_deps := $(wildcard debian/control.in/*) $(addprefix debian/control.in/, $(libc_packages))
@@ -33,6 +33,7 @@
cat debian/control.in/amd64 >> $@T
cat debian/control.in/powerpc >> $@T
cat debian/control.in/ppc64 >> $@T
+ cat debian/control.in/mips32 >> $@T
cat debian/control.in/mipsn32 >> $@T
cat debian/control.in/mips64 >> $@T
cat debian/control.in/armhf >> $@T
diff -Nru eglibc-2.19/debian/rules.d/debhelper.mk eglibc-2.19/debian/rules.d/debhelper.mk
--- eglibc-2.19/debian/rules.d/debhelper.mk 2014-06-04 19:50:40.000000000 +0000
+++ eglibc-2.19/debian/rules.d/debhelper.mk 2014-06-10 12:02:01.000000000 +0000
@@ -223,7 +223,7 @@
pass="" \
suffix="" \
;; \
- *:/lib32 | *:/lib64 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \
+ *:/lib32 | *:/lib64 | *:/libx32 | *:/libo32 | *:/lib/arm-linux-gnueabi*) \
templates="libc libc-dev" \
pass="-alt" \
suffix="-$(curpass)" \
diff -Nru eglibc-2.19/debian/sysdeps/mips64el.mk eglibc-2.19/debian/sysdeps/mips64el.mk
--- eglibc-2.19/debian/sysdeps/mips64el.mk 1970-01-01 00:00:00.000000000 +0000
+++ eglibc-2.19/debian/sysdeps/mips64el.mk 2014-06-10 12:02:01.000000000 +0000
@@ -0,0 +1,60 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib64
+
+# build 32-bit (n32) alternative library
+EGLIBC_PASSES += mipsn32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32
+mipsn32_add-ons = ports nptl $(add-ons)
+mipsn32_configure_target = mips64el-linux-gnuabin32
+mipsn32_CC = $(CC) -mabi=n32 -mno-plt
+mipsn32_CXX = $(CXX) -mabi=n32 -mno-plt
+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) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mipsel-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+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) --disable-profile
+
+define libc6-dev-mipsn32_extra_pkg_install
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include
+ln -sf mips64el-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/
+ln -sf mips64el-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/
+ln -sf mips64el-linux-gnuabi64/fpu_control.h debian/libc6-dev-mipsn32/usr/include/
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include/mips64el-linux-gnuabi64/gnu
+cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard.h \
+ debian/libc6-dev-mipsn32/usr/include/mips64el-linux-gnuabi64/gnu
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include/sys
+for i in `ls debian/tmp-libc/usr/include/mips64el-linux-gnuabi64/sys` ; do \
+ ln -sf ../mips64el-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/mips64el-linux-gnuabi64/gnu
+cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard.h \
+ debian/libc6-dev-mips32/usr/include/mips64el-linux-gnuabi64/gnu
+
+endef
+
+# create a symlink for the 32 bit dynamic linker in /lib
+define libc6-mips32_extra_pkg_install
+mkdir -p debian/$(curpass)/lib
+ln -sf /libo32/ld.so.1 debian/$(curpass)/lib
+endef
diff -Nru eglibc-2.19/debian/sysdeps/mips64.mk eglibc-2.19/debian/sysdeps/mips64.mk
--- eglibc-2.19/debian/sysdeps/mips64.mk 1970-01-01 00:00:00.000000000 +0000
+++ eglibc-2.19/debian/sysdeps/mips64.mk 2014-06-10 12:02:01.000000000 +0000
@@ -0,0 +1,60 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib64
+
+# build 32-bit (n32) alternative library
+EGLIBC_PASSES += mipsn32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32
+mipsn32_add-ons = ports nptl $(add-ons)
+mipsn32_configure_target = mips64-linux-gnuabin32
+mipsn32_CC = $(CC) -mabi=n32 -mno-plt
+mipsn32_CXX = $(CXX) -mabi=n32 -mno-plt
+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) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mips-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+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) --disable-profile
+
+define libc6-dev-mipsn32_extra_pkg_install
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include
+ln -sf mips64-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/
+ln -sf mips64-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/
+ln -sf mips64-linux-gnuabi64/fpu_control.h debian/libc6-dev-mipsn32/usr/include/
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include/mips64-linux-gnuabi64/gnu
+cp -a debian/tmp-mipsn32/usr/include/gnu/stubs-n32_hard.h \
+ debian/libc6-dev-mipsn32/usr/include/mips64-linux-gnuabi64/gnu
+
+mkdir -p debian/libc6-dev-mipsn32/usr/include/sys
+for i in `ls debian/tmp-libc/usr/include/mips64-linux-gnuabi64/sys` ; do \
+ ln -sf ../mips64-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/mips64-linux-gnuabi64/gnu
+cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard.h \
+ debian/libc6-dev-mips32/usr/include/mips64-linux-gnuabi64/gnu
+
+endef
+
+# create a symlink for the 32 bit dynamic linker in /lib
+define libc6-mips32_extra_pkg_install
+mkdir -p debian/$(curpass)/lib
+ln -sf /libo32/ld.so.1 debian/$(curpass)/lib
+endef
diff -Nru eglibc-2.19/debian/sysdeps/mipsn32el.mk eglibc-2.19/debian/sysdeps/mipsn32el.mk
--- eglibc-2.19/debian/sysdeps/mipsn32el.mk 1970-01-01 00:00:00.000000000 +0000
+++ eglibc-2.19/debian/sysdeps/mipsn32el.mk 2014-06-10 12:02:01.000000000 +0000
@@ -0,0 +1,60 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib32
+
+# build 64 alternative library
+EGLIBC_PASSES += mips64
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64
+mips64_add-ons = ports nptl $(add-ons)
+mips64_configure_target = mips64el-linux-gnuabi64
+mips64_CC = $(CC) -mabi=64 -mno-plt
+mips64_CXX = $(CXX) -mabi=64 -mno-plt
+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) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mipsel-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+libc6-mips32_shlib_dep = libc6-mips32 (>= $(shlib_dep_ver))
+mips32_rtlddir = /lib
+mips32_slibdir = /lib
+mips32_libdir = /usr/lib
+mips32_extra_config_options := $(extra_config_options) --disable-profile
+
+define libc6-dev-mips64_extra_pkg_install
+
+mkdir -p debian/libc6-dev-mips64/usr/include
+ln -s mips64el-linux-gnuabin32/bits debian/libc6-dev-mips64/usr/include/
+ln -s mips64el-linux-gnuabin32/gnu debian/libc6-dev-mips64/usr/include/
+ln -s mips64el-linux-gnuabin32/fpu_control.h debian/libc6-dev-mips64/usr/include/
+
+mkdir -p debian/libc6-dev-mips64/usr/include/mips64el-linux-gnuabin32/gnu
+cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard.h \
+ debian/libc6-dev-mips64/usr/include/mips64el-linux-gnuabin32/gnu
+
+mkdir -p debian/libc6-dev-mips64/usr/include/sys
+for i in `ls debian/tmp-libc/usr/include/mips64el-linux-gnuabin32/sys` ; do \
+ ln -s ../mips64el-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/mips64el-linux-gnuabin32/gnu
+cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard.h \
+ debian/libc6-dev-mips32/usr/include/mips64el-linux-gnuabin32/gnu
+
+endef
+
+# create a symlink for the 32 bit dynamic linker in /lib
+define libc6-mips32_extra_pkg_install
+mkdir -p debian/$(curpass)/lib
+ln -sf /libo32/ld.so.1 debian/$(curpass)/lib
+endef
diff -Nru eglibc-2.19/debian/sysdeps/mipsn32.mk eglibc-2.19/debian/sysdeps/mipsn32.mk
--- eglibc-2.19/debian/sysdeps/mipsn32.mk 1970-01-01 00:00:00.000000000 +0000
+++ eglibc-2.19/debian/sysdeps/mipsn32.mk 2014-06-10 12:02:01.000000000 +0000
@@ -0,0 +1,60 @@
+libc_add-ons = ports nptl $(add-ons)
+libc_rtlddir = /lib32
+
+# build 64 alternative library
+EGLIBC_PASSES += mips64
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64
+mips64_add-ons = ports nptl $(add-ons)
+mips64_configure_target = mips64-linux-gnuabi64
+mips64_CC = $(CC) -mabi=64 -mno-plt
+mips64_CXX = $(CXX) -mabi=64 -mno-plt
+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) --disable-profile
+
+# build 32-bit (o32) alternative library
+EGLIBC_PASSES += mips32
+DEB_ARCH_REGULAR_PACKAGES += libc6-mips32 libc6-dev-mips32
+mips32_add-ons = ports nptl $(add-ons)
+mips32_configure_target = mips-linux-gnu
+mips32_CC = $(CC) -mabi=32 -mno-plt
+mips32_CXX = $(CXX) -mabi=32 -mno-plt
+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) --disable-profile
+
+define libc6-dev-mips64_extra_pkg_install
+
+mkdir -p debian/libc6-dev-mips64/usr/include
+ln -sf mips64-linux-gnuabin32/bits debian/libc6-dev-mips64/usr/include/
+ln -sf mips64-linux-gnuabin32/gnu debian/libc6-dev-mips64/usr/include/
+ln -sf mips64-linux-gnuabin32/fpu_control.h debian/libc6-dev-mips64/usr/include/
+
+mkdir -p debian/libc6-dev-mips64/usr/include/mips64-linux-gnuabin32/gnu
+cp -a debian/tmp-mips64/usr/include/gnu/stubs-n64_hard.h \
+ debian/libc6-dev-mips64/usr/include/mips64-linux-gnuabin32/gnu
+
+mkdir -p debian/libc6-dev-mips64/usr/include/sys
+for i in `ls debian/tmp-libc/usr/include/mips64-linux-gnuabin32/sys` ; do \
+ ln -sf ../mips64-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/mips64-linux-gnuabin32/gnu
+cp -a debian/tmp-mips32/usr/include/gnu/stubs-o32_hard.h \
+ debian/libc6-dev-mips32/usr/include/mips64-linux-gnuabin32/gnu
+
+end
+
+# create a symlink for the 32 bit dynamic linker in /lib
+define libc6-mips32_extra_pkg_install
+mkdir -p debian/$(curpass)/lib
+ln -sf /libo32/ld.so.1 debian/$(curpass)/lib
+endef
Reply to: