r5390 - in glibc-package/trunk/debian: . debhelper.in patches patches/arm
Author: adconrad
Date: 2012-11-19 22:00:23 +0000 (Mon, 19 Nov 2012)
New Revision: 5390
Added:
glibc-package/trunk/debian/patches/arm/cvs-ldconfig-cache-abi.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/debhelper.in/libc.preinst
glibc-package/trunk/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff
glibc-package/trunk/debian/patches/series
Log:
* debian/patches/arm/cvs-ldconfig-cache-abi.diff: Backport upstream
patch to re-enable ldconfig cache tagging for armhf binaries again.
* debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff: Re-enable
and adjust to account for changes in cvs-ldconfig-cache-abi.diff.
* debian/debhelper.in/libc.preinst: Remove old ld.so.cache on upgrade.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2012-11-19 07:56:17 UTC (rev 5389)
+++ glibc-package/trunk/debian/changelog 2012-11-19 22:00:23 UTC (rev 5390)
@@ -1,3 +1,13 @@
+eglibc (2.13-38) UNRELEASED; urgency=low
+
+ * debian/patches/arm/cvs-ldconfig-cache-abi.diff: Backport upstream
+ patch to re-enable ldconfig cache tagging for armhf binaries again.
+ * debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff: Re-enable
+ and adjust to account for changes in cvs-ldconfig-cache-abi.diff.
+ * debian/debhelper.in/libc.preinst: Remove old ld.so.cache on upgrade.
+
+ -- Adam Conrad <adconrad@0c3.net> Mon, 19 Nov 2012 14:23:26 -0700
+
eglibc (2.13-37) unstable; urgency=low
[ Aurelien Jarno ]
Modified: glibc-package/trunk/debian/debhelper.in/libc.preinst
===================================================================
--- glibc-package/trunk/debian/debhelper.in/libc.preinst 2012-11-19 07:56:17 UTC (rev 5389)
+++ glibc-package/trunk/debian/debhelper.in/libc.preinst 2012-11-19 22:00:23 UTC (rev 5390)
@@ -438,12 +438,13 @@
esac
if [ -n "$preversion" ]; then
- if dpkg --compare-versions "$preversion" lt 2.13-5; then
+ if dpkg --compare-versions "$preversion" lt 2.13-38; then
# upgrading from a pre-multiarch libc to a multiarch libc; we have
# to blow away /etc/ld.so.cache, otherwise the old unpacked libc
# is still first in the cache and segfaults when combined with
# our newly-unpacked ld.so. Do this last to avoid slowing down the
- # rest of the upgrade.
+ # rest of the upgrade. Version number bumped to 2.13-38 to also
+ # cover cache format upgrades for ARM.
rm -f /etc/ld.so.cache
fi
fi
Added: glibc-package/trunk/debian/patches/arm/cvs-ldconfig-cache-abi.diff
===================================================================
--- glibc-package/trunk/debian/patches/arm/cvs-ldconfig-cache-abi.diff (rev 0)
+++ glibc-package/trunk/debian/patches/arm/cvs-ldconfig-cache-abi.diff 2012-11-19 22:00:23 UTC (rev 5390)
@@ -0,0 +1,40 @@
+commit 6665d4a25da6dc1788010466f6f52e1df94a048b
+Author: Steve McIntyre <steve.mcintyre@linaro.org>
+Date: Mon Nov 19 01:12:53 2012 -0500
+
+ Add ldconfig cache tag handling for ARM hard-float ABI
+
+ * sysdeps/generic/ldconfig.h (FLAG_ARM_LIBHF): New macro.
+ * elf/cache.c (print_entry): Print ",hard-float" for
+ FLAG_ARM_LIBHF.
+
+ Signed-off-by: Steve McIntyre <steve.mcintyre@linaro.org>
+ Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
+
+diff --git a/elf/cache.c b/elf/cache.c
+index db8b9fa..3336bab 100644
+--- a/elf/cache.c
++++ b/elf/cache.c
+@@ -94,6 +94,10 @@ print_entry (const char *lib, int flag, unsigned int osversion,
+ break;
+ case FLAG_MIPS64_LIBN64:
+ fputs (",64bit", stdout);
++ break;
++ case FLAG_ARM_LIBHF:
++ fputs (",hard-float", stdout);
++ break;
+ case 0:
+ break;
+ default:
+diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
+index ef3f4b9..a805284 100644
+--- a/sysdeps/generic/ldconfig.h
++++ b/sysdeps/generic/ldconfig.h
+@@ -34,6 +34,7 @@
+ #define FLAG_POWERPC_LIB64 0x0500
+ #define FLAG_MIPS64_LIBN32 0x0600
+ #define FLAG_MIPS64_LIBN64 0x0700
++#define FLAG_ARM_LIBHF 0x0900
+
+ /* Name of auxiliary cache. */
+ #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache"
Modified: glibc-package/trunk/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff
===================================================================
--- glibc-package/trunk/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff 2012-11-19 07:56:17 UTC (rev 5389)
+++ glibc-package/trunk/debian/patches/arm/unsubmitted-ldconfig-cache-abi.diff 2012-11-19 22:00:23 UTC (rev 5390)
@@ -1,32 +1,8 @@
---
- elf/cache.c | 2
ports/sysdeps/unix/sysv/linux/arm/dl-cache.h | 34 ++++
ports/sysdeps/unix/sysv/linux/arm/readelflib.c | 186 +++++++++++++++++++++++++
- sysdeps/generic/ldconfig.h | 1
4 files changed, 223 insertions(+)
---- a/elf/cache.c
-+++ b/elf/cache.c
-@@ -91,6 +91,9 @@
- break;
- case FLAG_MIPS64_LIBN64:
- fputs (",64bit", stdout);
-+ break;
-+ case FLAG_ARM_HFABI:
-+ fputs (",hard-float", stdout);
- case 0:
- break;
- default:
---- a/sysdeps/generic/ldconfig.h
-+++ b/sysdeps/generic/ldconfig.h
-@@ -34,6 +34,7 @@
- #define FLAG_POWERPC_LIB64 0x0500
- #define FLAG_MIPS64_LIBN32 0x0600
- #define FLAG_MIPS64_LIBN64 0x0700
-+#define FLAG_ARM_HFABI 0x0800
-
- /* Name of auxiliary cache. */
- #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache"
--- /dev/null
+++ b/ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
@@ -0,0 +1,34 @@
@@ -53,7 +29,7 @@
+#include <ldconfig.h>
+
+/* Redefine the cache ID for the new hf ABI; the sf ABI inverts the check. */
-+#define _DL_CACHE_ARMHF_ID (FLAG_ARM_HFABI | FLAG_ELF_LIBC6)
++#define _DL_CACHE_ARMHF_ID (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6)
+
+#ifdef __ARM_PCS_VFP
+#define _dl_cache_check_flags(flags) \
@@ -131,7 +107,7 @@
+
+ shdrs = file_contents + ehdr->e_shoff;
+ for (i = 0; i < ehdr->e_shnum; i++)
-+ {
++ {
+ if (SHT_ARM_ATTRIBUTES == shdrs[i].sh_type)
+ {
+ /* We've found a likely section. Load the contents and
@@ -147,14 +123,14 @@
+ unsigned long len = shdrs[i].sh_size - 1;
+ unsigned long namelen;
+ p++;
-+
++
+ while (len > 0)
+ {
+ unsigned long section_len = p[0] | p[1] << 8 | p[2] << 16 | p[3] << 24;
+ if (section_len > len)
+ section_len = len;
+
-+ p += 4;
++ p += 4;
+ len -= section_len;
+ section_len -= 4;
+
@@ -166,7 +142,7 @@
+ namelen = strlen((char *)p) + 1;
+ p += namelen;
+ section_len -= namelen;
-+
++
+ /* We're in a valid section. Walk through this
+ * section looking for the tag we care about
+ * (ABI_VFP_args) */
@@ -182,7 +158,7 @@
+ if (size > section_len)
+ size = section_len;
+ p += 4;
-+
++
+ section_len -= size;
+ end += size;
+ if (ATTR_TAG_FILE != tag)
@@ -210,8 +186,8 @@
+ }
+ }
+ }
-+ }
-+ }
++ }
++ }
+ }
+ return 0;
+}
@@ -240,11 +216,11 @@
+ }
+ ret = process_elf32_file (file_name, lib, flag, osversion, soname,
+ file_contents, file_length);
-+
++
+ if (!ret)
+ /* Do we have a hard-float ABI library? */
+ if (is_library_hf(file_name, file_contents, file_length))
-+ *flag = FLAG_ARM_HFABI|FLAG_ELF_LIBC6;
++ *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
+ return ret;
+}
+
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2012-11-19 07:56:17 UTC (rev 5389)
+++ glibc-package/trunk/debian/patches/series 2012-11-19 22:00:23 UTC (rev 5390)
@@ -92,13 +92,14 @@
arm/local-sigaction.diff
arm/submitted-armhf-triplet.diff
arm/cvs-clone-cantunwind.diff
-#arm/unsubmitted-ldconfig-cache-abi.diff
+arm/unsubmitted-ldconfig-cache-abi.diff
arm/unsubmitted-ldso-abi-check.diff
arm/cvs-syscall-mcount.diff
arm/cvs-ucontext.diff
arm/unsubmitted-armhf-linker.diff
arm/local-soname-hack.diff
arm/cvs-make-get-set-swap-context.diff
+arm/cvs-ldconfig-cache-abi.diff
hppa/local-inlining.diff
hppa/local-linuxthreads.diff
Reply to: