ARM: Pass dl_hwcap to IFUNC resolver.
authorCarlos O'Donell <carlos@redhat.com>
Thu, 29 Aug 2013 04:17:33 +0000 (00:17 -0400)
committerCarlos O'Donell <carlos@redhat.com>
Thu, 29 Aug 2013 04:20:35 +0000 (00:20 -0400)
For REL relocs pass dl_hwcap to the IFUNC resolver
as is required by the IFUNC API (bug 15905).

NEWS
ports/ChangeLog.arm
ports/sysdeps/arm/dl-machine.h

diff --git a/NEWS b/NEWS
index 84e0668..cb55e7f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.19
 
 * The following bugs are resolved with this release:
 
-  14699, 15531, 15532, 15736, 15749, 15797, 15867, 15890, 15897.
+  14699, 15531, 15532, 15736, 15749, 15797, 15867, 15890, 15897, 15905.
 
 * CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
   to the d_name member of struct dirent, or omit the terminating NUL
index 1e7a35c..52f7c0f 100644 (file)
@@ -1,3 +1,10 @@
+2013-08-28  Kyle McMartin  <kyle@redhat.com>
+           Carlos O'Donell  <carlos@redhat.com>
+
+       [BZ #15905]
+       * sysdeps/arm/dl-machine [!RTLD_BOOTSTRAP] (elf_machine_rel):
+       Pass GLRO(dl_hwcap) to the IFUNC resolver.
+
 2013-07-03  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/arm/include/bits/setjmp.h [_ISOMAC] (JMP_BUF_REGLIST):
index d251527..85dba67 100644 (file)
@@ -503,7 +503,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
          break;
        case R_ARM_IRELATIVE:
          value = map->l_addr + *reloc_addr;
-         value = ((Elf32_Addr (*) (void)) value) ();
+         value = ((Elf32_Addr (*) (int)) value) (GLRO(dl_hwcap));
          *reloc_addr = value;
          break;
 #endif