(v850_elf_relocate_section): Move code to test for the presence of a symbol
authorNick Clifton <nickc@redhat.com>
Tue, 17 May 2005 10:22:40 +0000 (10:22 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 17 May 2005 10:22:40 +0000 (10:22 +0000)
table to just before the symbol table is actually used.

bfd/ChangeLog
bfd/elf32-v850.c

index 91e4eccfa73d218fd8f7561af6b2e0930cfcd115..aefdd42b48857ff5f81591dd898f52031f97b3f5 100644 (file)
@@ -1,3 +1,9 @@
+2005-05-17  Nick Clifton  <nickc@redhat.com>
+
+       * 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  <hongjiu.lu@intel.com>
 
        PR 834
index 00affbb0d8b39b08d58380de9da66033ea264abc..98db745c54886adaa3efd302145f066c0ac78d83 100644 (file)
@@ -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,