From db1fa6ab261fd9d5a22b8c8adec16c54dcb4b7ea Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 17 Sep 1997 16:52:23 +0000 Subject: [PATCH] Catch relocations against non-existant symbols. --- bfd/ChangeLog | 5 +++++ bfd/elf32-v850.c | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bae50f8968..dd64b747b3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 17 09:54:51 1997 Nick Clifton + + * 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 * reloc.c: Add BFR_RELOC_V850_TDA_16_16_OFFSET. diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c index feb298e4da..d3339fb6fb 100644 --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -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;