[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#715038: add mips64(el) mipsn32(el) support to eglibc



Hi,

In this patch, o32 libraries are moved from /lib to /libo32.



2014-06-09 22:38 GMT+08:00 Aurelien Jarno <aurelien@aurel32.net>:
On Mon, Jun 09, 2014 at 09:02:04PM +0800, Sphinx Jiang wrote:
> I refreshed this patch with 2.19-1.
>
> Tested on mips64el device, build successfully.
>
>
> Sphinx


I have just merged the non-controversial parts, that is everything but
multlib. I am still opposed to having the o32 libraries in /lib and I am
waiting for arguments about why it can't be for example in /libo32.

Anyway I do wonder if we want multilib support at all on a new port, we
now have multiarch to address this, so one can just install the
libc6:mips on a mipsn32 or mips64 system, or libc6:mipsel on a
mipsn32el or mips64el system to get o32 support.

Also:

> 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-09 05:27:56.000000000 +0000
> @@ -240,6 +240,9 @@
>           if [ "$$s" != "$$t" ] ; then \
>             cp $$s $$t ; \
>           fi ; \
> +             if [ "$$suffix" = "-mips32" ] ; then \
> +                sed -e '/ld.so.conf.d /d' -i $$t; \
> +         fi ; \
>           sed -e "s#TMPDIR#debian/tmp-$$curpass#g" -i $$t; \
>           sed -e "s#RTLDDIR#$$rtlddir#g" -i $$t; \
>           sed -e "s#SLIBDIR#$$slibdir#g" -i $$t; \

This already shows the kind of problem we might have. As /lib is already
in the path, it is searched by default so you don't need any specific
ld.so.conf entry.

--
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

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: