diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2006-02-01 22:03:38 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@libertysurf.fr> | 2006-02-01 22:03:38 +0000 |
commit | bb29dfeaa618b52a7f5c785ce1b816983b1d11ee (patch) | |
tree | 11ede7ccfe07758162048a9cda899379f561a8e2 /bfd/elfxx-sparc.c | |
parent | dd24457ddffffda0617dda1beb6f21cf6bd87901 (diff) | |
download | gdb-bb29dfeaa618b52a7f5c785ce1b816983b1d11ee.zip gdb-bb29dfeaa618b52a7f5c785ce1b816983b1d11ee.tar.gz gdb-bb29dfeaa618b52a7f5c785ce1b816983b1d11ee.tar.bz2 |
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
for call-to-undefweak reloc overflow.
Diffstat (limited to 'bfd/elfxx-sparc.c')
-rw-r--r-- | bfd/elfxx-sparc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c index 5e8fb20..802206f 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, |