diff options
author | Richard Henderson <rth@redhat.com> | 1998-01-28 05:48:34 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 1998-01-28 05:48:34 +0000 |
commit | 16ce62054beeb61824bc4ba6ce06640a5be0b3a4 (patch) | |
tree | c11c23d0277a7d916cfe99215eb77e3f01475a03 /bfd | |
parent | 09025569d24c165bd6bc08271f17724d159697a1 (diff) | |
download | gdb-16ce62054beeb61824bc4ba6ce06640a5be0b3a4.zip gdb-16ce62054beeb61824bc4ba6ce06640a5be0b3a4.tar.gz gdb-16ce62054beeb61824bc4ba6ce06640a5be0b3a4.tar.bz2 |
Sparc v9 ABI compliant PLT:
* elf64-sparc.c (PLT_HEADER_SIZE): V9 ABI uses 4 entries.
(plt_templates, sparc64_elf_build_plt_entry): Delete.
(LARGE_PLT_THRESHOLD): New define.
(GOT_RESERVED_ENTRIES): V9 ABI only uses 1.
(sparc64_elf_build_plt): New function.
(sparc64_elf_plt_entry_offset): Likewise.
(sparc64_elf_plt_ptr_offset): Likewise.
(sparc64_elf_adjust_dynamic_symbol): Change h->plt_offset to
contain the index for convenience. Skip the initial entries
in .rela.plt.
(sparc64_elf_size_dynamic_sections): Zero the allocated contents
memory for the benefit of .rela.plt.
(sparc64_elf_relocate_section): Call sparc64_elf_plt_entry_offset.
(sparc64_elf_finish_dynamic_symbol): Kill template stuff. Use
sparc64_elf_plt_entry_offset & sparc64_elf_plt_ptr_offset for reloc.
(sparc64_elf_finish_dynamic_sections): DT_PLTGOT points to .plt.
Call sparc64_elf_build_plt.
(elf_backend_want_got_plt): No.
(elf_backend_plt_readonly): No.
(elf_backend_plt_alignment): 8.
* elf.c (_bfd_elf_close_and_cleanup): New function; free the shstrtab.
* elf-bfd.h (_bfd_elf_close_and_cleanup): Declare it.
* elfxx-target.h (bfd_elfNN_close_and_cleanup): Arrange for it
to be called.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 29 | ||||
-rw-r--r-- | bfd/elf.c | 9 |
2 files changed, 38 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 516bcff..c2755e7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,32 @@ +Tue Jan 27 21:43:55 1998 Richard Henderson <rth@cygnus.com> + + Sparc v9 ABI compliant PLT: + * elf64-sparc.c (PLT_HEADER_SIZE): V9 ABI uses 4 entries. + (plt_templates, sparc64_elf_build_plt_entry): Delete. + (LARGE_PLT_THRESHOLD): New define. + (GOT_RESERVED_ENTRIES): V9 ABI only uses 1. + (sparc64_elf_build_plt): New function. + (sparc64_elf_plt_entry_offset): Likewise. + (sparc64_elf_plt_ptr_offset): Likewise. + (sparc64_elf_adjust_dynamic_symbol): Change h->plt_offset to + contain the index for convenience. Skip the initial entries + in .rela.plt. + (sparc64_elf_size_dynamic_sections): Zero the allocated contents + memory for the benefit of .rela.plt. + (sparc64_elf_relocate_section): Call sparc64_elf_plt_entry_offset. + (sparc64_elf_finish_dynamic_symbol): Kill template stuff. Use + sparc64_elf_plt_entry_offset & sparc64_elf_plt_ptr_offset for reloc. + (sparc64_elf_finish_dynamic_sections): DT_PLTGOT points to .plt. + Call sparc64_elf_build_plt. + (elf_backend_want_got_plt): No. + (elf_backend_plt_readonly): No. + (elf_backend_plt_alignment): 8. + + * elf.c (_bfd_elf_close_and_cleanup): New function; free the shstrtab. + * elf-bfd.h (_bfd_elf_close_and_cleanup): Declare it. + * elfxx-target.h (bfd_elfNN_close_and_cleanup): Arrange for it + to be called. + Tue Jan 27 21:45:15 1998 Jeffrey A Law (law@cygnus.com) * archures.c (bfd_mach_mips*): Add definitions for various MIPS @@ -4231,3 +4231,12 @@ _bfd_elf_validate_reloc (abfd, areloc) bfd_set_error (bfd_error_bad_value); return false; } + +boolean +_bfd_elf_close_and_cleanup (abfd) + bfd *abfd; +{ + if (elf_shstrtab (abfd)) + _bfd_stringtab_free (elf_shstrtab (abfd)); + return _bfd_generic_close_and_cleanup (abfd); +} |