I refreshed this patch with 2.18-6. On Thu, May 8, 2014 at 10:53 AM, Yunqiang Su <wzss...@gmail.com> wrote: > On Wed, May 7, 2014 at 11:02 PM, Aurelien Jarno <aurel...@aurel32.net> wrote: >> On Fri, Apr 25, 2014 at 10:25:55PM +0800, Yunqiang Su wrote: >>> On Fri, Apr 25, 2014 at 10:25 PM, Yunqiang Su <wzss...@gmail.com> wrote: >>> > I refresh this patch with 2.18-4, and >>> > >>> > let libc6 breaks: >>> > >>> > libc6-mips64 [mips64 mips64el], >>> > libc6-mipsn32 [mipsn32 mipsn32el], >>> > libc6-mips32 [mips mipsel], >>> > >>> > >>> > On Thu, Feb 27, 2014 at 9:20 AM, Yunqiang Su <wzss...@gmail.com> wrote: >>> >> I refresh this patch with 2.18-3 >>> >> >>> >> On Mon, Oct 7, 2013 at 9:50 AM, YunQiang Su <wzss...@gmail.com> wrote: >>> >>> I refresh the patches with 2.17-93. >>> >>> It's time to consider to merge it. >>> >>> >>> >>> Now we have about 7000 packages build successfully already. >>> >>> This architecture may be in debian-ports in near future. >> >> Please find my comments about this patch below. >> >>> [ snip ] >> >>> diff -urN a/debian/rules.d/build.mk b/debian/rules.d/build.mk >>> --- a/debian/rules.d/build.mk 2014-03-02 15:01:31.000000000 +0000 >>> +++ b/debian/rules.d/build.mk 2014-04-25 14:14:27.708058521 +0000 >>> @@ -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 | /lib) \ >>> 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; \ >> >> Why do you need this change? This will create a ld.so.conf entry even >> for /lib, while ld.so should always be configured to look for /lib and >> /lib/$(DEB_HOST_ARCH_MULTIARCH) without even an ld.so.conf entry. >> Moreover, with this change such a file would be created for all >> architectures, not only mips64. >> >> Please look why ld.so doesn't look to /lib by default. > > It looks /lib. I dropped this snip. > >> >>> diff -urN a/debian/rules.d/build.mk.orig b/debian/rules.d/build.mk.orig >>> --- a/debian/rules.d/build.mk.orig 1970-01-01 00:00:00.000000000 +0000 >>> +++ b/debian/rules.d/build.mk.orig 2014-04-25 14:14:27.708058521 +0000 >> >>> [ snip ] >> >> Please don't include such an orig file in your patch. >> >>> [ snip ] >> >>> diff -urN a/debian/rules.d/control.mk.orig b/debian/rules.d/control.mk.orig >>> --- a/debian/rules.d/control.mk.orig 1970-01-01 00:00:00.000000000 +0000 >>> +++ b/debian/rules.d/control.mk.orig 2014-04-25 14:14:27.708058521 +0000 >> >> Same here >> >>> [ snip ] >> >>> diff -urN a/debian/rules.d/debhelper.mk b/debian/rules.d/debhelper.mk >>> --- a/debian/rules.d/debhelper.mk 2014-03-02 15:01:31.000000000 +0000 >>> +++ b/debian/rules.d/debhelper.mk 2014-04-25 14:14:27.708058521 +0000 >>> @@ -223,7 +223,7 @@ >>> pass="" \ >>> suffix="" \ >>> ;; \ >>> - *:/lib32 | *:/lib64 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \ >>> + *:/lib32 | *:/lib64 | *:/libx32 | *:/lib | >>> *:/lib/arm-linux-gnueabi*) \ >> >> I guess it's because the multilib o32 version is installed in /lib, >> right? But see below. >> > > Yes > >> >>> templates="libc libc-dev" \ >>> pass="-alt" \ >>> suffix="-$(curpass)" \ >>> @@ -240,6 +240,9 @@ >>> if [ "$$s" != "$$t" ] ; then \ >>> cp $$s $$t ; \ >>> fi ; \ >>> + if [ "$$suffix" = "-mips32" ] ; then \ >>> + sed -e '/ld.so.conf.d /etc/d' -i $$t; \ >>> + fi ; \ >> >> What is that supposed to do? > > This is used to avoid installing zz_mips32-biarch-compat.conf > for /lib and /usr/lib . > > $$t is debian/libc6-mips32.install here. > >> >>> 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; \ >> >> >>> [ snip ] >> >>> diff -urN a/debian/sysdeps/mips64el.mk b/debian/sysdeps/mips64el.mk >>> --- a/debian/sysdeps/mips64el.mk 1970-01-01 00:00:00.000000000 +0000 >>> +++ b/debian/sysdeps/mips64el.mk 2014-04-25 14:14:27.712058556 +0000 >>> @@ -0,0 +1,54 @@ >>> +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 = /lib >>> +mips32_libdir = /usr/lib >> >> For what I understand there, the o32 library is installed in /lib, which >> might conflict with the system libraries on some aspects. Wouldn't it be >> better to install it in for example in /libo32 instead? Of course >> rtlddir would stay in /lib to be conform with the ABI. > > I agree with you about this, while some guys think install to /lib is > required. > https://lists.debian.org/debian-mips/2013/06/msg00006.html > > Let's try to explain to them again? > >> >> Note that it is only for the multilib packages, so basically the >> toolchain (libc + compiler). mips o32 multiarch packages will of course >> be installed in /usr/lib/mips-linux-gnu. >> >> The same is also the case for the other mipsn32/mips64 .mk files. >> >> -- >> Aurelien Jarno GPG: 4096R/1DDD8C9B >> aurel...@aurel32.net http://www.aurel32.net > > > > -- > Yunqiang Su
-- Yunqiang Su
diff -Nru eglibc-2.18/debian/changelog eglibc-2.18/debian/changelog --- eglibc-2.18/debian/changelog 2014-05-14 15:00:30.000000000 +0000 +++ eglibc-2.18/debian/changelog 2014-05-19 19:21:47.000000000 +0000 @@ -1,4 +1,4 @@ -eglibc (2.18-6) unstable; urgency=medium +eglibc (2.18-6+mips64) unstable; urgency=medium [ Samuel Thibault ] * patches/hurd-i386/cvs-libpthread_guardsize.diff: Fix guardsize semantic diff -Nru eglibc-2.18/debian/control eglibc-2.18/debian/control --- eglibc-2.18/debian/control 2014-05-14 15:00:31.000000000 +0000 +++ eglibc-2.18/debian/control 2014-05-19 18:57:16.000000000 +0000 @@ -3,12 +3,12 @@ Priority: required Build-Depends: gettext, dpkg-dev (>= 1.16.0), bzip2, 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], 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 <cl...@debian.org>, Aurelien Jarno <aure...@debian.org>, Adam Conrad <adcon...@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 @@ -155,6 +155,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 @@ -162,7 +165,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 @@ -178,7 +181,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 @@ -189,7 +192,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 @@ -199,7 +202,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 @@ -214,7 +217,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} @@ -247,6 +250,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 @@ -339,6 +345,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 @@ -431,6 +440,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 @@ -678,8 +690,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} @@ -690,13 +729,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 @@ -704,7 +743,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} @@ -715,7 +754,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.18/debian/control.in/libc eglibc-2.18/debian/control.in/libc --- eglibc-2.18/debian/control.in/libc 2014-05-14 15:00:30.000000000 +0000 +++ eglibc-2.18/debian/control.in/libc 2014-05-19 18:05:29.000000000 +0000 @@ -19,6 +19,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.18/debian/control.in/main eglibc-2.18/debian/control.in/main --- eglibc-2.18/debian/control.in/main 2014-05-14 15:00:30.000000000 +0000 +++ eglibc-2.18/debian/control.in/main 2014-05-19 18:07:39.000000000 +0000 @@ -3,12 +3,12 @@ Priority: required Build-Depends: gettext, dpkg-dev (>= 1.16.0), bzip2, 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], 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 <cl...@debian.org>, Aurelien Jarno <aure...@debian.org>, Adam Conrad <adcon...@0c3.net> diff -Nru eglibc-2.18/debian/control.in/mips32 eglibc-2.18/debian/control.in/mips32 --- eglibc-2.18/debian/control.in/mips32 1970-01-01 00:00:00.000000000 +0000 +++ eglibc-2.18/debian/control.in/mips32 2014-05-19 18:05:29.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.18/debian/control.in/mips64 eglibc-2.18/debian/control.in/mips64 --- eglibc-2.18/debian/control.in/mips64 2014-05-14 15:00:30.000000000 +0000 +++ eglibc-2.18/debian/control.in/mips64 2014-05-19 18:05:29.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} @@ -10,7 +10,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.18/debian/control.in/mipsn32 eglibc-2.18/debian/control.in/mipsn32 --- eglibc-2.18/debian/control.in/mipsn32 2014-05-14 15:00:30.000000000 +0000 +++ eglibc-2.18/debian/control.in/mipsn32 2014-05-19 18:05:29.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} @@ -10,13 +10,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.18/debian/rules.d/control.mk eglibc-2.18/debian/rules.d/control.mk --- eglibc-2.18/debian/rules.d/control.mk 2014-05-14 15:00:31.000000000 +0000 +++ eglibc-2.18/debian/rules.d/control.mk 2014-05-19 18:05:29.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.18/debian/rules.d/debhelper.mk eglibc-2.18/debian/rules.d/debhelper.mk --- eglibc-2.18/debian/rules.d/debhelper.mk 2014-05-14 15:00:31.000000000 +0000 +++ eglibc-2.18/debian/rules.d/debhelper.mk 2014-05-19 18:42:27.000000000 +0000 @@ -223,7 +223,7 @@ pass="" \ suffix="" \ ;; \ - *:/lib32 | *:/lib64 | *:/libx32 | *:/lib/arm-linux-gnueabi*) \ + *:/lib32 | *:/lib64 | *:/libx32 | *:/lib | *:/lib/arm-linux-gnueabi*) \ templates="libc libc-dev" \ pass="-alt" \ suffix="-$(curpass)" \ @@ -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; \ diff -Nru eglibc-2.18/debian/sysdeps/mips64el.mk eglibc-2.18/debian/sysdeps/mips64el.mk --- eglibc-2.18/debian/sysdeps/mips64el.mk 1970-01-01 00:00:00.000000000 +0000 +++ eglibc-2.18/debian/sysdeps/mips64el.mk 2014-05-19 18:05:29.000000000 +0000 @@ -0,0 +1,54 @@ +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 = /lib +mips32_libdir = /usr/lib +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 -s mips64el-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/ +ln -s mips64el-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/ +ln -s 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 -s ../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 diff -Nru eglibc-2.18/debian/sysdeps/mips64.mk eglibc-2.18/debian/sysdeps/mips64.mk --- eglibc-2.18/debian/sysdeps/mips64.mk 1970-01-01 00:00:00.000000000 +0000 +++ eglibc-2.18/debian/sysdeps/mips64.mk 2014-05-19 18:05:29.000000000 +0000 @@ -0,0 +1,54 @@ +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 = /lib +mips32_libdir = /usr/lib +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 -s mips64-linux-gnuabi64/bits debian/libc6-dev-mipsn32/usr/include/ +ln -s mips64-linux-gnuabi64/gnu debian/libc6-dev-mipsn32/usr/include/ +ln -s 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 -s ../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 diff -Nru eglibc-2.18/debian/sysdeps/mipsn32el.mk eglibc-2.18/debian/sysdeps/mipsn32el.mk --- eglibc-2.18/debian/sysdeps/mipsn32el.mk 1970-01-01 00:00:00.000000000 +0000 +++ eglibc-2.18/debian/sysdeps/mipsn32el.mk 2014-05-19 18:05:29.000000000 +0000 @@ -0,0 +1,54 @@ +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 diff -Nru eglibc-2.18/debian/sysdeps/mipsn32.mk eglibc-2.18/debian/sysdeps/mipsn32.mk --- eglibc-2.18/debian/sysdeps/mipsn32.mk 1970-01-01 00:00:00.000000000 +0000 +++ eglibc-2.18/debian/sysdeps/mipsn32.mk 2014-05-19 18:05:29.000000000 +0000 @@ -0,0 +1,54 @@ +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 = /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 mips64-linux-gnuabin32/bits debian/libc6-dev-mips64/usr/include/ +ln -s mips64-linux-gnuabin32/gnu debian/libc6-dev-mips64/usr/include/ +ln -s 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 -s ../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