It's the wrong way to do things.
(HOWTO): Change accordingly.
(HOWTO2): Remove.
(_bfd_final_link_relocate): Remove references to
special_function1.
* bfd-in2.h: Rebuilt.
* aoutx.h (aout_link_input_section_std): Remove references to
special_function1.
(aout_link_reloc_link_order): Likewise.
* elfcode.h (elf_link_add_object_symbols): If symbol is defined as
weak, set ELF_LINK_HASH_DEFINED_WEAK.
(elf_link_output_extsym): If symbol is defined as weak, mark it
STB_WEAK.
(shdr_name): Remove; unused.
* elfcode.h (elf_slurp_reloc_table): Rewrote to handle both REL
and RELA relocs. Free up the unswapped relocs. Permit the relocs
to be cached in the section_data. Correct the reloc address.
(elf_slurp_reloca_table): Remove.
(elf_canonicalize_reloc): Rewrote.
(elf_link_input_bfd): Permit the relocs to be cached in the
section data.
hpux-core.c, irix-core.c, lynx-core.c, osf-core.c, ptrace-core.c,
rs6000-core.c, trad-core.c: Remove SEC_ALLOC flag from .reg
sections, .reg sections are not allocated and contain debug
information only.
* osf-core.c (make_bfd_asection, osf_core_core_file_p): Use
bfd_make_section_anyway instead of building unique section names.
additionally copy object type information from the alpha file
header to the BFD flags.
(alpha_ecoff_backend_data): Use it.
(ecoffalpha_little_vec): Add DYNAMIC to object_flags.
* aout64.c: Fix typo in conditional QMAGIC definition.
SunOS4 a.out files) core file handling.
* aoutf1.h (external_solaris_bcp_core, swapcore_solaris_bcp):
New structure and its swap in function.
(internal_sunos_core): New member c_data_addr, to receive the
start address of the data section in the core file.
(swapcore_sun3, swapcore_sparc, sunos4_core_file_p): Use it.
(sunos4_core_file_p): Recognize Solaris BCP core file.
(sunos4_core_file_matches_executable_p): Always indicate match
for Solaris BCP core files.
Youngdale <ericy@cais.cais.com>.
* elfcode.h (prep_headers): If DYNAMIC, set e_type to ET_DYN.
(elf_link_add_object_symbols): If generating a shared library,
create dynamic sections for first input BFD with the right format.
(elf_link_create_dynamic_sections): Don't create .interp section
if creating a shared library.
(elf_link_input_bfd): Skip dynamic sections in input file.
(elf_bfd_final_link): If creating a shared library, it's OK for
dynobj to have sections which are not SEC_IN_MEMORY.
* elf32-i386.c (elf_i386_size_dynamic_sections): Only set .interp
section if not creating a shared library.
* elf32-sparc.c (elf_sparc_size_dynamic_sections): Likewise.
obstack_alloc returns NULL unless the size is non-zero.
* linker.c (archive_hash_allocate): Define.
(_bfd_generic_link_add_archive_symbols): Use archive_hash_allocate
rather than obstack_alloc, for clarity.
* libaout.h (struct aoutdata): Add field zmagic_disk_block_size.
* aout-target.h (MY(callback)): Only set alignment according to
architecture if the section sizes are aligned to that alignment,
for backward compatibility.
(MY(set_sizes)): Initialize zmagic_disk_block_size field.
* aoutx.h (adjust_z_magic): Set ztih if using q_magic_format. Set
text section filepos to zmagic_disk_block_size if not ztih. Use a
different padding algorithm if not ztih.
* i386linux.c (MY_text_includes_header): Don't define.
(bfd_abs_section_ptr, bfd_is_abs_section): Define.
(bfd_und_section): Make const.
(bfd_und_section_ptr, bfd_is_und_section): Define.
(bfd_com_section): Make const.
(bfd_com_section_ptr): Define.
(bfd_ind_section): Make const.
(bfd_ind_section_ptr, bfd_is_ind_section): Define.
(bfd_abs_symbol, bfd_com_symbol): Make const.
(bfd_und_symbol, bfd_ind_symbol): Likewise.
(global_syms): Cast initialization of section field.
(STD_SECTION): Define as const, and cast initializations.
* bfd-in2.h: Rebuilt.
* Many files: Change uses of bfd_abs_section, etc., to use
bfd_abs_section_ptr or bfd_is_abs_section, etc.
when computing reloc sizes. From Eric Youngdale
<ericy@cais.cais.com>.
* elfcode.h (elf_bfd_final_link): Don't try to compute maximum
reloc count or size for a non-ELF file.
echoing config file name, echo whether target uses leading
underscores on symbol names. Add appropriate settings to
different cases. Used by binutils/configure.in to set default for
c++filt.
* i386linux.c: Many new functions and definitions for linker
support for Linux shared libraries.
* bfd-in.h (bfd_linux_size_dynamic_sections): Declare.
* bfd-in2.h: Rebuild.
(elf_dt_needed_name): New accessor macro.
* elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
is set, use that instead of the filename for the DT_NEEDED dynamic
entry.
* elf.c (bfd_elf_set_dt_needed_name): New function.
* bfd-in.h (bfd_elf_set_dt_needed_name): Declare.
* bfd-in2.h: Rebuilt.
argument, and set it to the .interp section.
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
(bfd_elf64_size_dynamic_sections): Likewise.
* bfd-in2.h: Rebuilt.