Catch relocations against non-existant symbols.
authorNick Clifton <nickc@redhat.com>
Wed, 17 Sep 1997 16:52:23 +0000 (16:52 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 17 Sep 1997 16:52:23 +0000 (16:52 +0000)
bfd/ChangeLog
bfd/elf32-v850.c

index bae50f8..dd64b74 100644 (file)
@@ -1,3 +1,8 @@
+Wed Sep 17 09:54:51 1997  Nick Clifton  <nickc@cygnus.com>
+
+       * elf32-v850.c (v850_elf_final_link_relocate): Add checks to catch
+       relocations against non-existant symbols.
+
 Tue Sep 16 14:20:27 1997  Nick Clifton  <nickc@cygnus.com>
 
        * reloc.c: Add BFR_RELOC_V850_TDA_16_16_OFFSET.
index feb298e..d3339fb 100644 (file)
@@ -945,6 +945,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       return bfd_reloc_ok;
 
     case R_V850_ZDA_16_16_OFFSET:
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       value -= sym_sec->output_section->vma;
       value += (short) bfd_get_16 (input_bfd, hit_data);
 
@@ -955,6 +958,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       return bfd_reloc_ok;
 
     case R_V850_ZDA_15_16_OFFSET:      
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       insn = bfd_get_16 (input_bfd, hit_data);
 
       value -= sym_sec->output_section->vma;
@@ -984,6 +990,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       return bfd_reloc_ok;
 
     case R_V850_SDA_16_16_OFFSET:
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       {
        unsigned long                gp;
        struct bfd_link_hash_entry * h;
@@ -1010,6 +1019,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       }
 
     case R_V850_SDA_15_16_OFFSET:
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       {
        unsigned long                gp;
        struct bfd_link_hash_entry * h;
@@ -1218,6 +1230,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       }
     
     case R_V850_SDA_16_16_SPLIT_OFFSET:
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       {
        unsigned long                gp;
        struct bfd_link_hash_entry * h;
@@ -1252,6 +1267,9 @@ v850_elf_final_link_relocate (howto, input_bfd, output_bfd,
       }
 
     case R_V850_ZDA_16_16_SPLIT_OFFSET:
+      if (sym_sec == NULL)
+       return bfd_reloc_undefined;
+         
       insn = bfd_get_32 (input_bfd, hit_data);
        
       value -= sym_sec->output_section->vma;