do_globals arguments, always read symbol extension information for
globals and locals. All callers changed.
(elf32_hppa_size_stubs): Rework to only read symbol extension
information once for each input bfd. Another 10% improvement in
linker performance.
value is the start of the section, checking output_offset when
using output_section. When creating a new symbol, set the value
to 0, since BFD symbol values are section relative.
data, reg and stack sections. They're never used. Delete
accessor macros.
(make_bfd_asection): Use bfd_make_section_anyway since debugging
cores from dynamic executables may have several sections with the
same logical name.
(hpux_core_core_file_p): Don't save handles to data, reg and
stack sections. Handle CORE_TEXT, CORE_MMF and CORE_SHM.
callers. Handle relocs against section symbols correctly. If not
shrinking, don't subtract out dstidx; the subtraction is already
in the object file.
PR 5883.
Change VMS version to use bfd_alloc rather than malloc, so that we
don't lose the memory forever.
(_bfd_construct_extended_name_table): Check the name of an archive
entry which is not being extended, and correct it if it is wrong.
This is necessary in case the archive was constructed by another
program which put an entry in the extended name table which we
don't plan to put in ourselves. From jjc@jclark.com (James
Clark).
(bfd_dont_truncate_arname): Check return value of normalize.
(ELF32_PARISC_SX_GET, ELF32_PARISC_SX_PUT): Define.
(symextn_entry): Don't define.
(symext_chain_size): Change type to bfd_size_type.
(symextn_contents): Change type to bfd_byte *.
(elf32_hppa_backend_begin_write_processing): Use
ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS).
(elf32_hppa_size_symext): Likewise. Also, change type of sizep to
bfd_size_type *.
(elf_hppa_tc_make_sections): Cast symextn_contents assignment to
bfd_byte *. Use ELF32_PARISC_SX_PUT instead of direct assignment.
(elf32_hppa_backend_symbol_table_processing): Use
ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS). Use
ELF32_PARISC_SX_GET insetad of direct assignment.
(elf32_hppa_read_symext_info): Change type of contents, and its
assignment cast, to bfd_byte *. Use ELF32_PARISC_SX_SIZE instead
of sizeof (symextn_entry). Use symext_entryS instead of
symextn_entry. Use ELF32_PARISC_SX_GET instead of direct
assignment.
and DT_FINI dynamic entries based on the existence of _init and
_fini symbols, not on the .init and .fini sections. This is
compatible with some SVR4 linkers.
(elf_bfd_final_link): Corresponding change.
error if an empty archive has no symbol table.
* ecoff.c (ecoff_link_add_archive_symbols): Likewise.
* elfcode.h (elf_link_add_archive_symbols): Likewise.
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Don't finalize
the .dynsym, .dynstr or .hash sections until after the backend
size_dynamic_sections routine, so that it can add dynamic symbols
if it wants to.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't define the
symbol to be in the .plt section when generating a shared library
if it is a defined symbol.
* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
(elf32_sparc_size_dynamic_sections): When generating a shared
library, allocate space for a dynamic symbol for each output
section, storing the index in the dynindx field of the ELF section
data. Adjust the other dynindx fields to account for this.
(elf32_sparc_adjust_dynindx): New static function.
(elf32_sparc_relocate_section): When copying a reloc into a shared
library, use the original addend as appropriate. Convert an
R_SPARC_32 reloc into an R_SPARC_RELATIVE reloc. Use the dynamic
symbol index of the output section, not the normal symbol index.
(elf32_sparc_finish_dynamic_sections): Don't die if a section does
not exist when setting the value of the dynamic tags. Write out
a dynamic symbol for each output section.