diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/i386/dl-machine.h | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/dl-machine.h | 4 |
3 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index 10829a3d21..6aad771397 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2009-06-01 Ulrich Drepper <drepper@redhat.com> + * sysdeps/i386/dl-machine.h (elf_machine_rel): Reorder conditions + for STT_GNU_IFUNC handling for efficiency. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/i386/dl-irel.h (elf_irel): Use __libc_fatal instead of just _exit. * sysdeps/x86_64/dl-irel.h (elf_irela): Likewise. diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h index efa929e57f..a093d2b151 100644 --- a/sysdeps/i386/dl-machine.h +++ b/sysdeps/i386/dl-machine.h @@ -345,9 +345,9 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, Elf32_Addr value = sym_map == NULL ? 0 : sym_map->l_addr + sym->st_value; if (sym != NULL - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0)) + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) value = ((Elf32_Addr (*) (void)) value) (); switch (r_type) diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h index 1b5ce8e981..61a0556d5e 100644 --- a/sysdeps/x86_64/dl-machine.h +++ b/sysdeps/x86_64/dl-machine.h @@ -297,9 +297,9 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, : (Elf64_Addr) sym_map->l_addr + sym->st_value); if (sym != NULL - && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, - 0)) + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)) value = ((Elf64_Addr (*) (void)) value) (); # if defined RTLD_BOOTSTRAP && !USE___THREAD |