From 8b7e29925c2f1d23df7fba3a7fa6175a5e60499c Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 14 Jun 2009 05:45:09 +0000 Subject: [PATCH] 2009-06-13 H.J. Lu * elf32-i386.c (elf_i386_check_relocs): Properly report local symbol for unhandled relocation against STT_GNU_IFUNC symbol. * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-i386.c | 3 ++- bfd/elf64-x86-64.c | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6022765..05e93da 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,12 @@ 2009-06-13 H.J. Lu + * elf32-i386.c (elf_i386_check_relocs): Properly report + local symbol for unhandled relocation against STT_GNU_IFUNC + symbol. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + +2009-06-13 H.J. Lu + PR ld/10269 * elf32-i386.c: Include "objalloc.h" and "hashtab.h". (elf_i386_link_hash_table): Add loc_hash_table and diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 273bd85..c6e6265 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -1480,7 +1480,8 @@ elf_i386_check_relocs (bfd *abfd, (_("%B: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't handled by %s"), abfd, elf_howto_table[r_type].name, - h != NULL ? h->root.root.string : "a local symbol", + (h->root.root.string + ? h->root.root.string : "a local symbol"), __FUNCTION__); bfd_set_error (bfd_error_bad_value); return FALSE; diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 2808906..3cb4f06 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -1263,7 +1263,8 @@ elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, (_("%B: relocation %s against STT_GNU_IFUNC " "symbol `%s' isn't handled by %s"), abfd, x86_64_elf_howto_table[r_type].name, - h != NULL ? h->root.root.string : "a local symbol", + (h->root.root.string + ? h->root.root.string : "a local symbol"), __FUNCTION__); bfd_set_error (bfd_error_bad_value); return FALSE; -- 2.7.4