aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>1998-08-29 02:43:47 +0000
committerRichard Henderson <rth@redhat.com>1998-08-29 02:43:47 +0000
commit09e5322ac06823a664de9028cc31deab297c0a08 (patch)
tree71032ae1b8489502f651d317177dce501bf7f45f /bfd/elf.c
parent07f50e4e2c520a9daba3642bf87d9040c99aeb33 (diff)
downloadgdb-09e5322ac06823a664de9028cc31deab297c0a08.zip
gdb-09e5322ac06823a664de9028cc31deab297c0a08.tar.gz
gdb-09e5322ac06823a664de9028cc31deab297c0a08.tar.bz2
* elf-bfd.h (_bfd_elf_rel_vtable_reloc_fn): Declare.
* elf.c (_bfd_elf_rel_vtable_reloc_fn): New. * elf32-i386.c (elf_howto_table): Add vtable relocs. (elf_i386_reloc_type_lookup): Recognize them. (elf_i386_check_relocs): Pass them off to generic code. (elf_i386_relocate_section): Ignore them. (elf_i386_gc_mark_hook, elf_i386_gc_sweep_hook): New. (elf_backend_can_gc_sections): True.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r--bfd/elf.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/bfd/elf.c b/bfd/elf.c
index 3e7c145..c4417e2 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -3075,11 +3075,9 @@ prep_headers (abfd)
case bfd_arch_arc:
i_ehdrp->e_machine = EM_CYGNUS_ARC;
break;
-/* start-sanitize-armelf */
case bfd_arch_arm:
i_ehdrp->e_machine = EM_ARM;
break;
-/* end-sanitize-armelf */
case bfd_arch_m32r:
i_ehdrp->e_machine = EM_CYGNUS_M32R;
break;
@@ -4738,3 +4736,21 @@ _bfd_elf_close_and_cleanup (abfd)
return _bfd_generic_close_and_cleanup (abfd);
}
+
+/* For Rel targets, we encode meaningful data for BFD_RELOC_VTABLE_ENTRY
+ in the relocation's offset. Thus we cannot allow any sort of sanity
+ range-checking to interfere. There is nothing else to do in processing
+ this reloc. */
+
+bfd_reloc_status_type
+_bfd_elf_rel_vtable_reloc_fn (abfd, re, symbol, data, is, obfd, errmsg)
+ bfd *abfd;
+ arelent *re;
+ struct symbol_cache_entry *symbol;
+ PTR data;
+ asection *is;
+ bfd *obfd;
+ char **errmsg;
+{
+ return bfd_reloc_ok;
+}