diff options
-rw-r--r-- | bfd/ChangeLog | 13 | ||||
-rw-r--r-- | bfd/elf32-i386.c | 9 |
2 files changed, 19 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index d5bf4dd..da0d94d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,16 @@ +2000-02-22 Ian Lance Taylor <ian@zembu.com> + + * elf32-i386.c (elf_i386_info_to_howto_rel): Give a warning for + invalid relocation types, and change them to R_386_NONE. + +2000-02-22 H.J. Lu <hjl@gnu.org> + + * elflink.h (elf_bfd_final_link): Call output_extsym for global + symbols converted to local symbols even when stripping all + symbols. + (elf_link_output_extsym): Process global symbols converted to + local symbols even if they are being stripped. + 2000-02-21 Alan Modra <alan@spri.levels.unisa.edu.au> * archures.c (bfd_octets_per_byte): Return unsigned int. diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 0894476..0153fa8 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -231,11 +231,14 @@ elf_i386_info_to_howto_rel (abfd, cache_ptr, dst) cache_ptr->howto = &elf32_i386_vtinherit_howto; else if (type == R_386_GNU_VTENTRY) cache_ptr->howto = &elf32_i386_vtentry_howto; + else if (type < R_386_max + && (type < FIRST_INVALID_RELOC || type > LAST_INVALID_RELOC)) + cache_ptr->howto = &elf_howto_table[(int) type]; else { - BFD_ASSERT (type < R_386_max); - BFD_ASSERT (type < FIRST_INVALID_RELOC || type > LAST_INVALID_RELOC); - cache_ptr->howto = &elf_howto_table[(int) type]; + (*_bfd_error_handler) (_("%s: invalid relocation type %d"), + bfd_get_filename (abfd), (int) type); + cache_ptr->howto = &elf_howto_table[(int) R_386_NONE]; } } |