* 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.
This commit is contained in:
Ian Lance Taylor 1995-11-15 01:34:56 +00:00
parent ab276dfa72
commit 631b10f44e
2 changed files with 31 additions and 2 deletions

View File

@ -1,5 +1,30 @@
Tue Nov 14 11:52:23 1995 Ian Lance Taylor <ian@cygnus.com>
* 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.

View File

@ -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 \