* reloc.c: Create a new BFD_RELOC_ALPHA_ELF_LITERAL. It was a
mistake to have reused the ECOFF LITERAL for ELF since they have
different semantics.
* elf64-alpha.c (elf_reloc_map): Map from ELF_LITERAL.
* bfd-in2.h, libbfd.h: Rebuild.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Trap .got
section overflow.
* elf64-alpha.c (elf64_alpha_relocate_section): Do not emit a
dynamic relocation for an undefweak symbol when we are building
a static executable.
Change NO_FLAGS to BFD_NO_FLAGS to avoid conflict with an HPUX
include file.
* libbfd.c: Create dummy getpagesize() macro if HAVE_GETPAGESIZE
isn't defined.
(SEC_LINK_DUPLICATES): Define.
(SEC_LINK_DUPLICATES_DISCARD): Define.
(SEC_LINK_DUPLICATES_ONE_ONLY): Define.
(SEC_LINK_DUPLICATES_SAME_SIZE): Define.
(SEC_LINK_DUPLICATES_SAME_CONTENTS): Define.
* bfd-in2.h: Rebuild.
* coffcode.h (sec_to_styp_flags): If COFF_WITH_PE, turn
SEC_LINK_ONCE into IMAGE_SCN_LNK_COMDAT.
(styp_to_sec_flags): If COFF_WITH_PE, turn IMAGE_SCN_LNK_REMOVE
into SEC_EXCLUDE. If IMAGE_SCN_LNK_COMDAT is set, set
SEC_LINK_ONCE, and look through the symbol table for the setting
for SEC_LINK_DUPLICATES.
(coff_write_object_contents): If COFF_WITH_PE, if SEC_LINK_ONCE is
set for a section, find the section symbol in the symbol table,
and set the aux entry based on SEC_LINK_DUPLICATES.
* coffgen.c (coff_print_symbol): Add a space before "checksum".
* coff-arm.c (armcoff_big_vec): If COFF_WITH_PE is defined, add
SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags.
* coff-i386.c (i386coff_vec): Likewise.
* coff-ppc.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
* bfd-in2.h: Rebuild.
* aoutx.h (NAME(aout,final_link)): Mark sections included in the
link.
(aout_link_input_bfd): Don't link unmarked sections.
* cofflink.c (_bfd_coff_final_link): Mark sections included in the
link.
(_bfd_coff_link_input_bfd): Don't link unmarked sections.
* coff-ppc.c (ppc_bfd_coff_final_link): Mark sections included in
the link.
* elflink.h (elf_bfd_final_link): Mark sections included in the
link.
(elf_link_input_bfd): Don't link unmarked sections.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Mark sections included
in the link.
(xcoff_link_input_bfd): Don't link unmarked sections.
of flags, only flags used are controlled by mach number. Bump up
output file mach number to highest of input file mach numbers.
(elf32_sparc_object_p): Watch for EF_SPARC_SUN_US1.
(elf32_sparc_final_write_processing): Set EF_SPARC_SUN_US1 if v8plusa.
Also, delete v8plus sanitization.
field.
(bfd_xcoff_size_dynamic_sections): Add export_defineds parameter.
(xcoff_build_ldsyms): If export_defineds is set, set XCOFF_EXPORT
for all symbols.
* bfd-in.h (bfd_xcoff_size_dynamic_sections): Update declaration.
* bfd-in2.h: Rebuild.
int to boolean; update all callers. Pass MAP_SHARED if not
writable--it's required on Solaris. Cast fprintf argument to
avoid warning.
* bfd-in.h (bfd_get_file_window): Update declaration.
* bfd-in2.h: Rebuild.
* aoutx.h: Update calls to bfd_get_file_window.
Cast realloc and malloc return values. If malloc or realloc fail,
set bfd_error_no_memory.
* bfd-in.h (bfd_get_file_window): Change type to boolean.
* bfd-in2.h: Rebuild.
Added some new interfaces, and a new entry in the target vector. Under the new
interfaces, mmap will be used if available, otherwise malloc/seek/read, as
before. Old interfaces all still intact.
Most configurations (including all used by "--enable-targets=all") simply
changed to call the default routine for that entry in the target vector. I
might've missed some targets only included in special configurations.
Support for a.out symbol and string table reading now goes through new
interfaces, and will use mmap when available.
Linker hooks (e.g., avoiding reallocation under malloc) not ready yet.
constructors and a few other special cases.
* coff-rs6000.c (rs6000coff_vec): Set symbol_leading_char back to
zero, reverting yesterday's change.
* bfd-in.h (bfd_xcoff_link_record_set): Declare.
(bfd_xcoff_link_count_reloc): Declare.
(bfd_xcoff_record_link_assignment): Declare.
* bfd-in2.h: Rebuild.
pointers into value field for warning and indirect symbols; just
leave the value field alone.
* linker.c (generic_link_add_symbol_list): Use next symbol for
warning and indirect symbols, rather than looking in symbol value.
* ecoff.c (ecoff_set_symbol_info): Remove indirect_ptr_ptr
parameter. Change all callers. Remove support for indirect
symbols; it didn't work anyhow.
(_bfd_ecoff_slurp_symbol_table): Remove indirect_ptr variable.
* syms.c: Change comments about BSF_WARNING and BSF_INDIRECT.
* bfd-in2.h: Rebuild.
* archures.c: Reindent many functions. Change CONST to const.
(bfd_arch_info_type): Make arch_name const. Remove disassemble;
nothing set it anyhow. Make next const.
(bfd_arch_info_list): Remove.
(bfd_archures_list): Rename from archures_init_table. Change from
a table of function pointers to a table of bfd_arch_info_type
structure addresses.
(bfd_scan_arch): Rewrite accordingly. Return a const pointer.
(bfd_lookup_arch): Likewise.
(bfd_set_arch_info): Rewrite accordingly. Change argument to be a
const pointer.
(bfd_default_arch_struct): Make const.
(bfd_arch_init, bfd_arch_linkin): Remove.
(bfd_get_arch_info): Return a const pointer.
* init.c (bfd_init): Don't call bfd_arch_init.
* bfd.c (struct _bfd): Make arch_info const.
* bfd-in2.h: Rebuild.
* libbfd.h: Rebuild.
* configure.in: Put & before everything in $selarchs.
* configure: Rebuild.
* cpu-*.c: Change bfd_*_arch from a function which calls
bfd_arch_linkin to a const structure.
* ieee.c (ieee_object_p): Make arch const.
* Makefile.in (BFD32_BACKENDS): Remove coff-arm.o.
* archures.c (bfd_arch_info_type): Change mach field from long to
unsigned long.
(bfd_lookup_arch): Change machine parameter from long to unsigned
long.
HOST_64BIT_LONG. Check that various header files exist. Check
that fcntl exists. Call BFD_BINARY_FOPEN. Check whether malloc
and/or free need to be declared. Don't make a link to sysdep.h.
Define TRAD_HEADER for various hosts.
* configure: Rebuild.
* configure.host: Don't set my_host. Add definitions taken from
host header files for various entries. Remove entries which now
do nothing.
* acconfig.h: New file.
* config.h.in: New file, built by autoheader.
* sysdep.h: New file.
* Makefile.in (do_distclean): Don't remove sysdep.h.
(RECONFIG): Remove.
(LOCAL_H_DEPS): New variable.
($(BFD_LIBS)): Use $(LOCAL_H_DEPS) rather than libbfd.h and
$(RECONFIG).
($(BFD_MACHINES), $(BFD_BACKENDS)): Likewise.
($(OPTIONAL_BACKENDS)): Likewise.
(stmp-bfd.h): Just substitute for BFD_HOST_64BIT_LONG, rather than
looking through sysdep.h.
* bfd-in.h (BFD_HOST_64BIT_LONG): Define; set by Makefile.
(BFD_HOST_64_BIT): Define based on BFD_HOST_64BIT_LONG.
(fprintf_vma, sprintf_vma): Likewise.
(int64_type, uint64_type): Don't define.
* bfd-in2.h: Rebuild.
* archures.c, bfd.c, srec.c: Include <ctype.h>.
* elfcore.h: Check HAVE_SYS_PROCFS_H rather than HAVE_PROCFS.
* lynx-core.c: Include stuff from old hosts/lynx.h.
* opncls.c (bfd_fdopenr): Check HAVE_FNCTL and defined (F_GETFL),
rather than NO_FCNTL.
* targets.c (bfd_target_list): Check HOST_HPPAHPUX and ! __STDC__
rather than NATIVE_HPPAHPUX_COMPILER.
* trad-core.c: Don't include <errno.h>. Include TRAD_HEADER if it
is defined.
* hosts/*.h: Remove all header files which merely include,
declare, and define things. Leave header files which define
information needed by trad-core.c.