diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2de9b6c..63bd2ad 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-06-12 Alan Modra <amodra@bigpond.net.au> + + * elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc + overflow on branches to undefweaks. + 2004-06-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl> * coff-alpha.c (alpha_relocate_section): Set used_by_bfd directly diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index f9eb7db..a701e45 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -2420,6 +2420,11 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info, if (r == bfd_reloc_overflow) { + if (h != NULL + && h->root.type == bfd_link_hash_undefweak + && howto->pc_relative) + /* Ignore reloc overflow on branches to undefweak syms. */ + continue; if (! ((*info->callbacks->reloc_overflow) (info, name, howto->name, (bfd_vma) 0, |