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. > 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. > 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? > 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. 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 -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20140507150230.gt5...@hall.aurel32.net