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

Reply via email to