diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 91e4eccfa7..aefdd42b48 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2005-05-17 Nick Clifton + + * elf32-v850.c (v850_elf_relocate_section): Move code to test for + the presence of a symbol table to just before the symbol table is + actually used. + 2005-05-16 H.J. Lu PR 834 diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index 00affbb0d8..98db745c54 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1649,15 +1649,6 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section, symtab_hdr = & elf_tdata (input_bfd)->symtab_hdr; sym_hashes = elf_sym_hashes (input_bfd); - if (sym_hashes == NULL) - { - info->callbacks->warning - (info, "no hash table available", - NULL, input_bfd, input_section, (bfd_vma) 0); - - return FALSE; - } - /* Reset the list of remembered HI16S relocs to empty. */ free_hi16s = previous_hi16s; previous_hi16s = NULL; @@ -1698,6 +1689,18 @@ v850_elf_relocate_section (output_bfd, info, input_bfd, input_section, { bfd_boolean unresolved_reloc, warned; + /* Note - this check is delayed until now as it is possible and valid + to have a file without any symbols but with relocs that can be + processed. */ + if (sym_hashes == NULL) + { + info->callbacks->warning + (info, "no hash table available", + NULL, input_bfd, input_section, (bfd_vma) 0); + + return FALSE; + } + RELOC_FOR_GLOBAL_SYMBOL (info, input_bfd, input_section, rel, r_symndx, symtab_hdr, sym_hashes, h, sec, relocation,