]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Backport fixes for BZ #15006 from master.
authorWilhelm Eger <wilhelm.eger@googlemail.com>
Wed, 22 May 2013 20:33:03 +0000 (16:33 -0400)
committerCarlos O'Donell <carlos@redhat.com>
Wed, 22 May 2013 20:33:03 +0000 (16:33 -0400)
Resolved backport request BZ #15122.

Assume all unmarked objects are compatible with all ABI variants.
Such objects may have been generated in a transitional period when
ABI tags were not added to all objects.

---

2013-02-08  Carlos O'Donell  <carlos@redhat.com>

[BZ #15006]
* sysdeps/generic/ldconfig.h: Define FLAG_ARM_LIBSF.
* elf/cache.c (print_entry): Add FLAG_ARM_LIBSF support.

ports/

2013-02-08  Carlos O'Donell  <carlos@redhat.com>

[BZ #15006]
* sysdeps/unix/sysv/linux/arm/dl-cache.h
[__ARM_PCS_VFP] (_dl_cache_check_flags): Allow plain FLAG_ELF_LIBC6.
[!__ARM_PCS_VFP] (_dl_cache_check_flags): Likewise.
* sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file):
Set FLAG_ARM_LIBSF for soft-float ABI otherwise just FLAG_ELF_LIBC6.

ChangeLog
NEWS
elf/cache.c
ports/ChangeLog.arm
ports/sysdeps/unix/sysv/linux/arm/dl-cache.h
ports/sysdeps/unix/sysv/linux/arm/readelflib.c
sysdeps/generic/ldconfig.h

index a6e0d3004efd6f8dfc9424356b623618006b5054..b76e7dc06e5bf8e890be069ada67a5b995dac61f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-02-08  Carlos O'Donell  <carlos@redhat.com>
+
+       [BZ #15006]
+       * sysdeps/generic/ldconfig.h: Define FLAG_ARM_LIBSF.
+       * elf/cache.c (print_entry): Add FLAG_ARM_LIBSF support.
+
 2013-03-30  David S. Miller  <davem@davemloft.net>
 
        * po/de.po: Update from translation team.
diff --git a/NEWS b/NEWS
index 63f465ac8c5a80f81c2962ed604268d8b8508304..da0f31202a9c6ef884ffa567b5c36e5a931b21de 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,12 @@ See the end for copying conditions.
 
 Please send GNU C library bug reports via <http://sourceware.org/bugzilla/>
 using `glibc' in the "product" field.
+\f
+Version 2.17.1
+
+* The following bugs are resolved with this release:
+  15003, 15006, 15122.
+
 \f
 Version 2.17
 
@@ -23,7 +29,7 @@ Version 2.17
   14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14803, 14805,
   14807, 14811, 14815, 14821, 14822, 14824, 14828, 14831, 14833, 14835,
   14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871, 14872, 14879,
-  14889, 14893, 14898, 14914, 15003.
+  14889, 14893, 14898, 14914.
 
 * Optimization of memcpy for MIPS.
 
index f5ed370e7858a56128cccaf27ca4b14bcd3ade59..699550bb602f69520ebae20d50486de95a168c15 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999.
 
@@ -100,6 +100,10 @@ print_entry (const char *lib, int flag, unsigned int osversion,
     case FLAG_AARCH64_LIB64:
       fputs (",AArch64", stdout);
       break;
+    /* Uses the ARM soft-float ABI.  */
+    case FLAG_ARM_LIBSF:
+      fputs (",soft-float", stdout);
+      break;
     case 0:
       break;
     default:
index d014581e977a956874183b04da65e19253a0454d..75a88265fb9064c47a97f8fa2ebbca22f3debcef 100644 (file)
@@ -1,3 +1,12 @@
+2013-02-08  Carlos O'Donell  <carlos@redhat.com>
+
+       [BZ #15006]
+       * sysdeps/unix/sysv/linux/arm/dl-cache.h
+       [__ARM_PCS_VFP] (_dl_cache_check_flags): Allow plain FLAG_ELF_LIBC6.
+       [!__ARM_PCS_VFP] (_dl_cache_check_flags): Likewise.
+       * sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file):
+       Set FLAG_ARM_LIBSF for soft-float ABI otherwise just FLAG_ELF_LIBC6.
+
 2012-12-04  Steve McIntyre  <steve.mcintyre@linaro.org>
 
        * sysdeps/unix/sysv/linux/arm/dl-cache.h: New file.
index 525caa2cbe85223a01c35ef7b25b615e193bbcf1..504fecab5853e271b5fb807a235d06c697888182 100644 (file)
@@ -1,5 +1,5 @@
 /* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
-   Copyright (C) 2003-2012 Free Software Foundation, Inc.
+   Copyright (C) 2003-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 #include <ldconfig.h>
 
+/* In order to support the transition from unmarked objects
+   to marked objects we must treat unmarked objects as
+   compatible with either FLAG_ARM_LIBHF or FLAG_ARM_LIBSF.  */
 #ifdef __ARM_PCS_VFP
 # define _dl_cache_check_flags(flags) \
-  ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6))
+  ((flags) == (FLAG_ARM_LIBHF | FLAG_ELF_LIBC6) \
+   || (flags) == FLAG_ELF_LIBC6)
 #else
 # define _dl_cache_check_flags(flags) \
-  ((flags) == FLAG_ELF_LIBC6)
+  ((flags) == (FLAG_ARM_LIBSF | FLAG_ELF_LIBC6) \
+   || (flags) == FLAG_ELF_LIBC6)
 #endif
 
 #include_next <dl-cache.h>
index e767f9e78f2e003e76ce8ce33c2a95defd44919f..3efb6134c39270508127f519c2a91a8887e43029 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999 and
                  Jakub Jelinek <jakub@redhat.com>, 1999.
@@ -46,6 +46,12 @@ process_elf_file (const char *file_name, const char *lib, int *flag,
          if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_HARD)
            *flag = FLAG_ARM_LIBHF|FLAG_ELF_LIBC6;
          else if (elf32_header->e_flags & EF_ARM_ABI_FLOAT_SOFT)
+           *flag = FLAG_ARM_LIBSF|FLAG_ELF_LIBC6;
+         else
+           /* We must assume the unmarked objects are compatible
+              with all ABI variants. Such objects may have been
+              generated in a transitional period when the ABI
+              tags were not added to all objects.  */
            *flag = FLAG_ELF_LIBC6;
        }
     }
index 43cb9bdb0c09b21ee67d299a54f6dc7d03c3dd36..91190aa0cd42e0baa9580626b1da33cf4b873a1f 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Andreas Jaeger <aj@suse.de>, 1999.
 
@@ -36,6 +36,7 @@
 #define FLAG_X8664_LIBX32      0x0800
 #define FLAG_ARM_LIBHF         0x0900
 #define FLAG_AARCH64_LIB64     0x0a00
+#define FLAG_ARM_LIBSF         0x0b00
 
 /* Name of auxiliary cache.  */
 #define _PATH_LDCONFIG_AUX_CACHE "/var/cache/ldconfig/aux-cache"