Index: elfxx-sparc.c =================================================================== RCS file: /cvs/src/src/bfd/elfxx-sparc.c,v retrieving revision 1.16 diff -u -p -r1.16 elfxx-sparc.c --- elfxx-sparc.c 31 Jan 2006 22:42:21 -0000 1.16 +++ elfxx-sparc.c 1 Feb 2006 21:08:37 -0000 @@ -3373,7 +3373,18 @@ _bfd_sparc_elf_relocate_section (bfd *ou 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,