* elf.c (bfd_section_from_shdr): When using a different section
authorIan Lance Taylor <ian@airs.com>
Wed, 15 Nov 1995 01:34:56 +0000 (01:34 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 15 Nov 1995 01:34:56 +0000 (01:34 +0000)
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
bfd/elfxx-target.h

index 6e5121e295b5c5fdf01fc8dd5f7f39b01213a20b..9d90a79bac6ba5214e13dc79c543610dfa89cc63 100644 (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.
index 225f5a6b110a2d6e868073444ec665ac68f54e77..5ef3ed0d393fce85d20fcd901b777655fec113a1 100644 (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 \