From 631b10f44e08b1b4daefc4d1ecd0ce9eca0c9a30 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 15 Nov 1995 01:34:56 +0000 Subject: [PATCH] * elf.c (bfd_section_from_shdr): When using a different section header, pass the new one to _bfd_elf_make_section_from_shdr. (elf_fake_sections): Don't set sh_info and sh_entsize fields. (elf_map_symbols): Add section VMA to symbol value when comparing against 0. (_bfd_elf_compute_section_file_positions): Only build symbol table if there are some symbols. Set file offset of symtab and strtab sections. (assign_file_positions_except_relocs): Remove dosyms parameter. Change all callers. Never set file offset of symtab and strtab sections. (_bfd_elf_copy_private_section_data): New function. (MAP_ONESYMTAB, MAP_DYNSYMTAB, MAP_STRTAB, MAP_SHSTRTAB): Define. (_bfd_elf_copy_private_symbol_data): New function. (swap_out_syms): Check for special mapping of st_shndx created by copy_private_symbol_data. * elfxx-target.h: Use new copy routines. * elf-bfd.h (_bfd_elf_copy_private_symbol_data): Declare. (_bfd_elf_copy_private_section_data): Declare. --- bfd/ChangeLog | 25 +++++++++++++++++++++++++ bfd/elfxx-target.h | 8 ++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6e5121e295..9d90a79bac 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,30 @@ Tue Nov 14 11:52:23 1995 Ian Lance Taylor + * elf.c (bfd_section_from_shdr): When using a different section + header, pass the new one to _bfd_elf_make_section_from_shdr. + (elf_fake_sections): Don't set sh_info and sh_entsize fields. + (elf_map_symbols): Add section VMA to symbol value when comparing + against 0. + (_bfd_elf_compute_section_file_positions): Only build symbol table + if there are some symbols. Set file offset of symtab and strtab + sections. + (assign_file_positions_except_relocs): Remove dosyms parameter. + Change all callers. Never set file offset of symtab and strtab + sections. + (_bfd_elf_copy_private_section_data): New function. + (MAP_ONESYMTAB, MAP_DYNSYMTAB, MAP_STRTAB, MAP_SHSTRTAB): Define. + (_bfd_elf_copy_private_symbol_data): New function. + (swap_out_syms): Check for special mapping of st_shndx created by + copy_private_symbol_data. + * elfxx-target.h: Use new copy routines. + * elf-bfd.h (_bfd_elf_copy_private_symbol_data): Declare. + (_bfd_elf_copy_private_section_data): Declare. + + * config.bfd (sh-*-*): Set targ_defvec to shcoff_vec. + + * coffcode.h (coff_slurp_symbol_table): If COFF_WITH_PE, handle + C_NT_WEAK. + * coff-sh.c (shlcoff_vec): Use _bfd_generic_archive_p, not _bfd_dummy_target, matching the recent change to archive recognition. diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 225f5a6b11..5ef3ed0d39 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -56,6 +56,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define bfd_elfNN_sizeof_headers _bfd_elf_sizeof_headers #define bfd_elfNN_write_object_contents _bfd_elf_write_object_contents +#define bfd_elfNN_get_section_contents_in_window \ + _bfd_generic_get_section_contents_in_window + #ifndef elf_backend_want_got_plt #define elf_backend_want_got_plt 0 #endif @@ -85,11 +88,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef bfd_elfNN_bfd_copy_private_symbol_data #define bfd_elfNN_bfd_copy_private_symbol_data \ - ((boolean (*) PARAMS ((bfd *, asymbol *, bfd *, asymbol *))) bfd_true) + _bfd_elf_copy_private_symbol_data #endif + #ifndef bfd_elfNN_bfd_copy_private_section_data #define bfd_elfNN_bfd_copy_private_section_data \ - ((boolean (*) PARAMS ((bfd *, asection *, bfd *, asection *))) bfd_true) + _bfd_elf_copy_private_section_data #endif #ifndef bfd_elfNN_bfd_copy_private_bfd_data #define bfd_elfNN_bfd_copy_private_bfd_data \