aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog13
-rw-r--r--bfd/elf32-i386.c9
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];
}
}