aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf32-i386.c3
-rw-r--r--bfd/elf64-x86-64.c3
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 <hongjiu.lu@intel.com>
+ * 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 <hongjiu.lu@intel.com>
+
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;