diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5dcf47be34..605c795e15 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-02-12 Alan Modra + + * elflink.c (evaluate_complex_relocation_symbols): Ignore relocs + with a zero symbol index. + 2007-02-12 Alan Modra * elflink.c (bfd_elf_discard_info): Tidy setting of "eh". diff --git a/bfd/elflink.c b/bfd/elflink.c index 0b4064189f..d76faae7e9 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -6769,7 +6769,10 @@ evaluate_complex_relocation_symbols (bfd * input_bfd, index = ELF32_R_SYM (rel->r_info); if (bed->s->arch_size == 64) index >>= 24; - + + if (index == STN_UNDEF) + continue; + if (index < locsymcount) { /* The symbol is local. */