Allow IFUNC relocation against unrelocated shared library
IFUNC relocation against definition in unrelocated shared library will lead to segfault when the IFUNC function is called. This patch allows such IFUNC relocations with a warning. This isn't a real fix for https://sourceware.org/bugzilla/show_bug.cgi?id=21041 It simply allows the program to load. The program will segfault when longjmp is called. * sysdeps/i386/dl-machine.h (elf_machine_rel): Replace _dl_fatal_printf with _dl_error_printf for IFUNC relocation against unrelocated shared library. * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
This commit is contained in:
parent
ed8d5ffd0a
commit
6fab532b47
@ -1,3 +1,10 @@
|
||||
2017-02-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/i386/dl-machine.h (elf_machine_rel): Replace
|
||||
_dl_fatal_printf with _dl_error_printf for IFUNC relocation
|
||||
against unrelocated shared library.
|
||||
* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
|
||||
|
||||
2017-02-02 Siddhesh Poyarekar <siddhesh@sourceware.org>
|
||||
|
||||
* sysdeps/generic/unsecvars.h: Add GLIBC_TUNABLES.
|
||||
|
@ -329,7 +329,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
|
||||
{
|
||||
const char *strtab
|
||||
= (const char *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_fatal_printf ("\
|
||||
_dl_error_printf ("\
|
||||
%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n",
|
||||
RTLD_PROGNAME, map->l_name,
|
||||
sym_map->l_name,
|
||||
|
@ -339,7 +339,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
||||
{
|
||||
const char *strtab
|
||||
= (const char *) D_PTR (map, l_info[DT_STRTAB]);
|
||||
_dl_fatal_printf ("\
|
||||
_dl_error_printf ("\
|
||||
%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n",
|
||||
RTLD_PROGNAME, map->l_name,
|
||||
sym_map->l_name,
|
||||
|
Loading…
x
Reference in New Issue
Block a user