Author: adconrad Date: 2012-04-17 02:32:24 +0000 (Tue, 17 Apr 2012) New Revision: 5184
Added: glibc-package/trunk/debian/patches/arm/unsubmitted-armhf-linker.diff glibc-package/trunk/debian/patches/arm/unsubmitted-soname-hack.diff Removed: glibc-package/trunk/debian/debhelper.in/libc-udeb.install.armhf Modified: glibc-package/trunk/debian/changelog glibc-package/trunk/debian/debhelper.in/libc.preinst glibc-package/trunk/debian/libc6.symbols.armhf glibc-package/trunk/debian/patches/series glibc-package/trunk/debian/rules.d/build.mk glibc-package/trunk/debian/sysdeps/armel.mk glibc-package/trunk/debian/sysdeps/armhf.mk Log: * debian/patches/arm/unsubmitted-armhf-linker.diff: Add the new armhf linker to the triplet/LDSO table in ports/sysdeps/arm/shlib-versions * debian/sysdeps/arm{el,hf}.mk: Stop installing armhf linker to its multiarch path, the new standard path is /lib/ld-linux-armhf.so.3 * debian/sysdeps/arm{el,hf}.mk: Define configure targets for alt libs * debian/sysdeps/arm{el,hf}.mk: Provide compat symlinks in armhf builds so that old binaries continue to work without needing rebuilding * debian/rules.d/build.mk: Change ldd to use the new armhf linker path * debian/libc6.symbols.armhf: ld-linux-armhf.so.3 depends on having a new enough version of libc6 installed to make the linker available * debian/patches/arm/unsubmitted-soname-hack.diff: Apply unfortunate hack to elf/dl-load.c to allow our old binaries keep running with the new linker, by spoofing the SONAME of the new as if it were the old * debian/debhelper.in/libc-udeb.install.armhf: No longer required * debian/sysdeps/armhf.mk: Create symlink in the udeb for legacy linker * debian/debhelper.in/libc.preinst: When we upgrade from older versions, our linker doesn't exist before unpack, so create a temporary one. * debian/sysdeps/armhf.mk: Drop the obsolete armel/armhf compat symlink Modified: glibc-package/trunk/debian/changelog =================================================================== --- glibc-package/trunk/debian/changelog 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/changelog 2012-04-17 02:32:24 UTC (rev 5184) @@ -4,6 +4,24 @@ * debian/rules.d/debhelper.mk: Fix RTLD_SO replacement regex for sanity. * debian/debhelper.in/libc{,-alt}.postrm: If we remove libc6:i386 before libc6-i386:amd64, maintain sanity of /lib/ld-linux.so.2 (LP: #852101) + * debian/patches/arm/unsubmitted-armhf-linker.diff: Add the new armhf + linker to the triplet/LDSO table in ports/sysdeps/arm/shlib-versions + * debian/sysdeps/arm{el,hf}.mk: Stop installing armhf linker to its + multiarch path, the new standard path is /lib/ld-linux-armhf.so.3 + * debian/sysdeps/arm{el,hf}.mk: Define configure targets for alt libs + * debian/sysdeps/arm{el,hf}.mk: Provide compat symlinks in armhf builds + so that old binaries continue to work without needing rebuilding + * debian/rules.d/build.mk: Change ldd to use the new armhf linker path + * debian/libc6.symbols.armhf: ld-linux-armhf.so.3 depends on having a + new enough version of libc6 installed to make the linker available + * debian/patches/arm/unsubmitted-soname-hack.diff: Apply unfortunate + hack to elf/dl-load.c to allow our old binaries keep running with the + new linker, by spoofing the SONAME of the new as if it were the old + * debian/debhelper.in/libc-udeb.install.armhf: No longer required + * debian/sysdeps/armhf.mk: Create symlink in the udeb for legacy linker + * debian/debhelper.in/libc.preinst: When we upgrade from older versions, + our linker doesn't exist before unpack, so create a temporary one. + * debian/sysdeps/armhf.mk: Drop the obsolete armel/armhf compat symlink [ Samuel Thibault ] * patches/hurd-i386/tg-symlink_dealloc.diff: New patch from Ludovic Courtès Deleted: glibc-package/trunk/debian/debhelper.in/libc-udeb.install.armhf =================================================================== --- glibc-package/trunk/debian/debhelper.in/libc-udeb.install.armhf 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/debhelper.in/libc-udeb.install.armhf 2012-04-17 02:32:24 UTC (rev 5184) @@ -1,14 +0,0 @@ -# FIXME: someday we may need to handle installing into non-lib -# OH NOES, THAT DAY IS UPON US (armhf's interpreter isn't in /lib) -TMPDIR/SLIBDIR/ld*.so* lib/arm-linux-gnueabihf -TMPDIR/SLIBDIR/libm-*.so* lib -TMPDIR/SLIBDIR/libm.so* lib -TMPDIR/SLIBDIR/libdl*.so* lib -TMPDIR/SLIBDIR/libresolv*.so* lib -TMPDIR/SLIBDIR/libc-*.so* lib -TMPDIR/SLIBDIR/libc.so* lib -TMPDIR/SLIBDIR/libutil* lib -TMPDIR/SLIBDIR/libcrypt* lib -TMPDIR/SLIBDIR/librt*.so* lib -TMPDIR/SLIBDIR/libpthread*.so* lib - Modified: glibc-package/trunk/debian/debhelper.in/libc.preinst =================================================================== --- glibc-package/trunk/debian/debhelper.in/libc.preinst 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/debhelper.in/libc.preinst 2012-04-17 02:32:24 UTC (rev 5184) @@ -239,6 +239,14 @@ fi # end upgrading and $preversion lt 2.13 fi # Upgrading + # On upgrade from older glibc versions, our PI doesn't yet exist + # on-disk, despite the preinst wanting to play with it, so make one + if [ "${DPKG_MAINTSCRIPT_ARCH:-$(dpkg --print-architecture)}" = "armhf" ]; then + if dpkg --compare-versions "$preversion" lt 2.13-28; then + ln -sf SLIBDIR/ld-linux.so.3 RTLD_SO + fi + fi + # This will keep us from using hwcap libs (optimized) during an # upgrade. touch /etc/ld.so.nohwcap Modified: glibc-package/trunk/debian/libc6.symbols.armhf =================================================================== --- glibc-package/trunk/debian/libc6.symbols.armhf 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/libc6.symbols.armhf 2012-04-17 02:32:24 UTC (rev 5184) @@ -1,5 +1,5 @@ #include "libc6.symbols.common" -ld-linux.so.3 #PACKAGE# #MINVER# +ld-linux-armhf.so.3 #PACKAGE# (>= 2.13-28) #include "symbols.wildcards" -libc.so.6 #PACKAGE# #MINVER# +libc.so.6 #PACKAGE# (>= 2.13-28) #include "symbols.wildcards" Added: glibc-package/trunk/debian/patches/arm/unsubmitted-armhf-linker.diff =================================================================== --- glibc-package/trunk/debian/patches/arm/unsubmitted-armhf-linker.diff (rev 0) +++ glibc-package/trunk/debian/patches/arm/unsubmitted-armhf-linker.diff 2012-04-17 02:32:24 UTC (rev 5184) @@ -0,0 +1,8 @@ +--- a/ports/sysdeps/arm/shlib-versions 2011-05-10 09:49:03.000000000 -0600 ++++ b/ports/sysdeps/arm/shlib-versions 2012-04-13 22:52:46.790815748 -0600 +@@ -1,4 +1,5 @@ + arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 + ++arm.*-.*-linux-gnueabihf ld=ld-linux-armhf.so.3 + arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 + arm.*-.*-linux.* ld=ld-linux.so.2 Added: glibc-package/trunk/debian/patches/arm/unsubmitted-soname-hack.diff =================================================================== --- glibc-package/trunk/debian/patches/arm/unsubmitted-soname-hack.diff (rev 0) +++ glibc-package/trunk/debian/patches/arm/unsubmitted-soname-hack.diff 2012-04-17 02:32:24 UTC (rev 5184) @@ -0,0 +1,21 @@ +For backward compatibility with armhf binaries built with the +old linker SONAME, we need to fake out the linker to believe +the new is the old, until such a point as everything is rebuilt + +--- eglibc-2.15.orig/elf/dl-load.c 2012-04-14 12:11:37.000000000 +0000 ++++ eglibc-2.15/elf/dl-load.c 2012-04-15 00:39:36.558765502 +0000 +@@ -2303,10 +2303,13 @@ + soname = ((const char *) D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[DT_SONAME]->d_un.d_val); + if (strcmp (name, soname) != 0) ++#ifdef __arm__ ++ if (strcmp(name, "ld-linux.so.3") || strcmp(soname, "ld-linux-armhf.so.3")) ++#endif + continue; + + /* We have a match on a new name -- cache it. */ +- add_name_to_object (l, soname); ++ add_name_to_object (l, name); + l->l_soname_added = 1; + } + Modified: glibc-package/trunk/debian/patches/series =================================================================== --- glibc-package/trunk/debian/patches/series 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/patches/series 2012-04-17 02:32:24 UTC (rev 5184) @@ -91,6 +91,8 @@ arm/unsubmitted-ldso-abi-check.diff arm/cvs-syscall-mcount.diff arm/cvs-ucontext.diff +arm/unsubmitted-armhf-linker.diff +arm/unsubmitted-soname-hack.diff hppa/local-inlining.diff hppa/local-linuxthreads.diff Modified: glibc-package/trunk/debian/rules.d/build.mk =================================================================== --- glibc-package/trunk/debian/rules.d/build.mk 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/rules.d/build.mk 2012-04-17 02:32:24 UTC (rev 5184) @@ -205,7 +205,7 @@ if [ $(curpass) = libc ]; then \ case $(DEB_HOST_ARCH) in \ armel) \ - sed -i '/RTLDLIST=/s,=\(.*\),="\1 /lib/arm-linux-gnueabihf/ld-linux.so.3",' debian/tmp-$(curpass)/usr/bin/ldd;; \ + sed -i '/RTLDLIST=/s,=\(.*\),="\1 /lib/ld-linux-armhf.so.3",' debian/tmp-$(curpass)/usr/bin/ldd;; \ armhf) \ sed -i '/RTLDLIST=/s,=\(.*\),="\1 /lib/ld-linux.so.3",' debian/tmp-$(curpass)/usr/bin/ldd;; \ esac; \ Modified: glibc-package/trunk/debian/sysdeps/armel.mk =================================================================== --- glibc-package/trunk/debian/sysdeps/armel.mk 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/sysdeps/armel.mk 2012-04-17 02:32:24 UTC (rev 5184) @@ -3,13 +3,11 @@ #EGLIBC_PASSES += armhf #DEB_ARCH_REGULAR_PACKAGES += libc6-armhf libc6-dev-armhf #armhf_add-ons = ports nptl $(add-ons) +#armhf_configure_target = arm-linux-gnueabihf #armhf_CC = $(CC) -mfloat-abi=hard #armhf_CXX = $(CXX) -mfloat-abi=hard #armhf_slibdir = /lib/arm-linux-gnueabihf #armhf_libdir = /usr/lib/arm-linux-gnueabihf -## To be coinstallable with armel, we install ld.so to a multiarch directory -## from the beginning. -#armhf_rtlddir = /lib/$(DEB_HOST_MULTIARCH) # #define libc6-dev-armhf_extra_pkg_install #mkdir -p debian/libc6-dev-armhf/usr/include @@ -22,3 +20,9 @@ #cp debian/tmp-armhf/usr/include/fpu_control.h \ # debian/libc6-dev-armhf/usr/include/ #endef +# +#define libc6-armhf_extra_pkg_install +#mkdir -p debian/libc6-armhf$(armhf_slibdir) +#ln -sf $(armhf_slibdir)/ld-linux-armhf.so.3 debian/libc6-armhf/lib +#ln -sf ld-linux-armhf.so.3 debian/libc6-armhf$(armhf_slibdir)/ld-linux.so.3 +#endef Modified: glibc-package/trunk/debian/sysdeps/armhf.mk =================================================================== --- glibc-package/trunk/debian/sysdeps/armhf.mk 2012-04-16 08:45:31 UTC (rev 5183) +++ glibc-package/trunk/debian/sysdeps/armhf.mk 2012-04-17 02:32:24 UTC (rev 5184) @@ -6,25 +6,25 @@ CXX = g++-4.6 endif -# To be coinstallable with armel, we install ld.so to a multiarch directory -# from the beginning. -libc_rtlddir = /lib/$(DEB_HOST_MULTIARCH) - -# This is only here while Debian/armhf is still transitioning linkers -# ** THIS MUST BE REMOVED BEFORE ENABLING THE BI-ARCH BUILD BELOW ** +# Install a compat symlink so old binaries keep working: define libc6_extra_pkg_install -mkdir -p debian/libc6/lib -ln -sf $(libc_rtlddir)/ld-linux.so.3 debian/libc6/lib +mkdir -p debian/libc6/lib/arm-linux-gnueabihf +ln -sf ld-linux-armhf.so.3 debian/libc6/lib/arm-linux-gnueabihf/ld-linux.so.3 endef +define libc6-udeb_extra_pkg_install +mkdir -p debian/libc6-udeb/lib/arm-linux-gnueabihf +ln -sf /lib/ld-linux-armhf.so.3 debian/libc6-udeb/lib/arm-linux-gnueabihf/ld-linux.so.3 +endef + #EGLIBC_PASSES += armel #DEB_ARCH_REGULAR_PACKAGES += libc6-armel libc6-dev-armel #armel_add-ons = ports nptl $(add-ons) +#armel_configure_target = arm-linux-gnueabi #armel_CC = $(CC) -mfloat-abi=softfp #armel_CXX = $(CXX) -mfloat-abi=softfp #armel_slibdir = /lib/arm-linux-gnueabi #armel_libdir = /usr/lib/arm-linux-gnueabi -#armel_rtlddir = /lib # #define libc6-dev-armel_extra_pkg_install #mkdir -p debian/libc6-dev-armel/usr/include -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1sjydr-0002zm...@vasks.debian.org