From: Eric Botcazou Date: Wed, 1 Feb 2006 22:03:38 +0000 (+0000) Subject: * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass X-Git-Tag: gdb_6_5-branchpoint~183 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bb29dfeaa618b52a7f5c785ce1b816983b1d11ee;p=thirdparty%2Fbinutils-gdb.git * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass for call-to-undefweak reloc overflow. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3a0bb0af8e5..5bd1e341ac0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2006-02-01 Eric Botcazou + + * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass + for call-to-undefweak reloc overflow. + 2006-01-31 Eric Botcazou * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index 5e8fb2028c5..802206fd434 100644 --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -3373,7 +3373,18 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info, break; if (h != NULL) - name = NULL; + { + /* Assume this is a call protected by other code that + detect the symbol is undefined. If this is the case, + we can safely ignore the overflow. If not, the + program is hosed anyway, and a little warning isn't + going to help. */ + if (h->root.type == bfd_link_hash_undefweak + && howto->pc_relative) + break; + + name = NULL; + } else { name = bfd_elf_string_from_elf_section (input_bfd,