aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2004-06-12 11:30:10 +0000
committerAlan Modra <amodra@gmail.com>2004-06-12 11:30:10 +0000
commit3ffa5234cbadec4993cc27c4a085d6202a0e5631 (patch)
tree48fc7226745b1dbc43f7a8897c2931ed74cdfc79 /bfd
parent0bbed51abea947abdf463daffbd1303581c2006b (diff)
downloadbinutils-3ffa5234cbadec4993cc27c4a085d6202a0e5631.zip
binutils-3ffa5234cbadec4993cc27c4a085d6202a0e5631.tar.gz
binutils-3ffa5234cbadec4993cc27c4a085d6202a0e5631.tar.bz2
* elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc
overflow on branches to undefweaks.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-x86-64.c5
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,