diff options
author | Carlos O'Donell <carlos@redhat.com> | 2013-08-29 00:17:33 -0400 |
---|---|---|
committer | Carlos O'Donell <carlos@redhat.com> | 2013-08-29 00:20:35 -0400 |
commit | d0721e703d222c01a9e8c329311c4fb01dac6972 (patch) | |
tree | ca1315b0033f11c3f3d8879e9e0fb14d71dadf3b | |
parent | 3a3092398356c90788479fa75524a491e9d860cd (diff) | |
download | glibc-d0721e703d222c01a9e8c329311c4fb01dac6972.tar.gz glibc-d0721e703d222c01a9e8c329311c4fb01dac6972.tar.xz glibc-d0721e703d222c01a9e8c329311c4fb01dac6972.zip |
ARM: Pass dl_hwcap to IFUNC resolver.
For REL relocs pass dl_hwcap to the IFUNC resolver as is required by the IFUNC API (bug 15905).
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ports/ChangeLog.arm | 7 | ||||
-rw-r--r-- | ports/sysdeps/arm/dl-machine.h | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/NEWS b/NEWS index 84e0668724..cb55e7f4b0 100644 --- 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 diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 1e7a35c6a9..52f7c0f726 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -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): diff --git a/ports/sysdeps/arm/dl-machine.h b/ports/sysdeps/arm/dl-machine.h index d251527338..85dba67fb3 100644 --- a/ports/sysdeps/arm/dl-machine.h +++ b/ports/sysdeps/arm/dl-machine.h @@ -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 |