(ecoff_mkobject_hook): Set SEC_SHARED_LIBRARY for the .reginfo
section so that the linker ignores it.
* ecofflink.c: Added various casts for 32/64 bit cross targeting.
(ecoff_add_bytes): Changed need argument to size_t.
(bfd_ecoff_debug_link_other): Check return value of
ecoff_add_string.
(nlm_backend_data, nlm_alpha_backend_data): New accessor macros.
(struct nlm_backend_data): New field no_uninitialized_data.
(nlm_no_uninitialized_data): New accessor macro.
* nlmcode.h (nlm_compute_section_file_positions): Handle
no_uninitialized_data.
(nlm_external_reloc_compare): Sort relocs by address for a
particular symbol, to make the sort more stable.
(nlm_write_object_contents): Cast the arguments to qsort. Get the
value of a debugging symbol the same way we get the value of a
normal symbol.
* nlm32-alpha.c: Various changes. Write out GP and .lita relocs.
Set no_uninitialized_data to true.
* nlm32-i386.c (nlm32_i386_backend), nlm32-sparc.c
(nlm32_sparc_backend): Set no_uninitialized_data field false.
* nlmswap.h (nlm_swap_fixed_header_out): Zero out destination
before filling it in.
optional_prefix_size, nlm_backend_object_p, nlm_write_prefix,
nlm_set_public_section, nlm_get_public_offset. Removed unused
nlm_write_reloc field. Changed nlm_write_import to remove
unnecessary symbol argument. Renamed nlm_write_externals to
nlm_write_external, and changed cound argument from bfd_vma to
bfd_size_type.
(nlm_optional_prefix_size, nlm_backend_object_p_func,
nlm_write_prefix_func, nlm_set_public_section_func,
nlm_get_public_offset_func): New accessor macros.
(nlm_write_reloc_func): Removed.
(nlm_write_external_func): Adjusted for field renaming.
* nlm32-i386.c (nlm_i386_write_import): Renamed from
nlm_i386_write_reloc. Removed old nlm_i386_write_import which
just called old nlm_i386_write_reloc.
(nlm_i386_write_external): Renamed from nlm_i386_write_externals.
Declared. Changed second argument from bfd_vma to bfd_size_type.
(nlm32_i386_backend): Adjusted for changes to fields and names.
* nlm32-sparc.c (nlm_sparc_mangle_relocs): Removed unused,
ifdeffed out code.
(nlm_sparc_write_import): Removed second argument.
(nlm_sparc_write_external): Renamed from
nlm_sparc_write_externals. Changed second argument from bfd_vma
to bfd_size_type.
(nlm32_sparc_backend): Adjusted for changes to fields and names.
* nlmcode.h: Removed some unused code.
(nlm_object_p): Don't destroy tdata pointer. Call
backend_object_p function if it exists.
(nlm_slurp_symbol_table): Removed unused variable rcount. Call
set_public_section_func if it exists instead of checking
NLM_HIBIT.
(nlm_compute_section_file_positions): Account for
optional_prefix_size.
(nlm_write_object_contents): Account for optional_prefix_size.
Removed useless variable write_reloc_func. Changed declaration
and call of write_import_func. Call write_prefix_func if it
exists. Removed unused variables len and temp. Call
get_public_offset_func if it exists rather than setting NLM_HIBIT.
Functions taken out of coff-mips.c. Handle vmap type VMAPFILE.
* coff-mips.c: Irix 4 core file support moved to irix-core.c.
* targets.c: If IRIX_CORE defined, include irix_core_vec in
target_vector.
* config/irix4.mh (HDEFINES): Add -DIRIX_CORE.
(HDEPFILES): Define to be irix-core.o.
* config/irix5.mh (HDEFINES): Define to be -DIRIX_CORE.
(HDEPFILES): Define to be irix-core.o.
* Makefile.in (OPTIONAL_BACKENDS): Added irix-core.o. Removed
sco-core.o, which no longer exists.
(CFILES): Added all *-core.c files.
Rebuilt dependencies.
routines.
* ecoff.c (ecoff_clear_output_flags, ecoff_rel, ecoff_dump_seclet,
ecoff_add_string, ecoff_get_debug): Removed. Functionality now in
ecofflink.c.
(ecoff_get_extr, ecoff_set_index): New functions.
(ecoff_slurp_symbolic_info): Don't save raw_size.
(ecoff_bfd_seclet_link): Rewrote to use ecofflink.c functions.
(ecoff_compute_section_file_positions): Don't set EXEC_P just
because there is a start address.
(ecoff_write_object_contents): Handle external symbols here. Use
ecofflink.c functions to write out debugging information.
* elf32-mips.c (mips_elf_read_ecoff_info, mips_elf_get_extr,
mips_elf_set_index): New functions.
(mips_elf_seclet_link): Discard empty sections, the .options
section and .gptab sections. Handle linking .mdebug section.
* libecoff.h (ecoff_data_type): Removed raw_size and ifdbase.
* libelf.h (elf_symbol_type): Added mips_extr to tc_data union.
* bfd-in.h: Added prototypes for routines in ecofflink.c (some are
called by gas, so they are public).
* bfd-in2.h: Rebuilt.
* Makefile.in (BFD_LIBS): Added ecofflink.o.
(CFILES): Added ecofflink.c.
(ecofflink.o): New target. Rebuilt dependencies.
* bfd/config/delta88.mh (HDEPFILES): Defined to be ptrace-core.o.
* bfd/ptrace-core.c: New file for dealing with core files with
start with the ptrace_user structure found on BCS compliant systems.
* bfd/targets.c (ptrace_core_vec): New vector.
SHT_NOBITS sections.
(map_program_segments): Don't leave the loop after the first
SHT_NOBITS section.
(assign_file_positions_except_relocs): Only force sh_offset and
sh_addr to match modulo maxpagesize for a section which is not
SHT_NOBITS. Changed the method used to force page alignment after
a SHT_NOBITS section to only do it for the last such consecutive
section, and to really force page alignment.
section has no ELF section data.
(elf_make_sections): Set addralign of reloc section to 4.
(elf_fake_sections): Likewise.
(map_program_segments): Don't consider section 0.
(assign_file_positions_except_relocs): Don't consider section 0.
In the main loop, skip the symtab and strtab sections, since their
positions are set elsewhere.
(swap_out_syms): Set addralign of symtab section to 4. Set
addralign of strtab sections to 1.
(assign_file_positions_for_relocs): Don't consider section 0.
(write_object_contents): Don't write out section 0.
(sym_is_global): Take abfd argument. Call
elf_backend_sym_is_global if it is not NULL.
(elf_map_symbols): Pass abfd to sym_is_global.
(write_object_contents): Call elf_backend_final_write_processing
if it is defined.
(struct ecoff_backend_data): Move external debugging information
fields into a single field pointing to an ecoff_debug_swap
structure.
(ecoff_data_type): Move debugging information fields into a single
field pointing to an ecoff_debug_info structure.
* coff-alpha.c, coff-mips.c, ecoff.c: Corresponding changes.
* i386lynx.c (swap_std_reloc_in, swap_ext_reloc_in): Ignore
garbage bits appearing in the upper end of symbolnums.
* config/sparc-lynx.mt (TDEFINES): Add -DFPRINTF_ALREADY_DECLARED.
and ".bss" sections.
(setup_sections): Do not set SEC_HAS_CONTENTS if a section's size
is zero. Recognize BSS type sections and turn off SEC_LOAD and
SEC_DATA (so binutils/size works). Set the correct value for
a section's _raw_size.
(som_slurp_symbol_table): Program entry points, and millicode are
also functions. Mark them as such. Also mark L$* symbols as
debugging symbols.
the last four multibyte relocations emitted.
(enum pa_symbol_type): Type to fully describe the symbol types
associated with .import/.export assembler directives.
information needed to build/write symbol tables and fixup streams.
(struct som_section_data_struct): Add new fields to hold additional
information needed to build/write space and subspace headers.
(som_symbol_data): New accessor macro for SOM symbol information.
(R_HPPA_*): Basic relocation types to be used by the assembler.
which is either commented out or ifdef'd out. Add, update and
clean comments. Fix various indention and spacing problems. Handle
problems related to using "ble" to jump to a stub rather than "bl"
(%r31 is trashed by "ble", but not by "bl").
(NEW_INSTRUCTION): Put inside curly braces.
(CURRENT_STUB_OFFSET): Fix indention problems.
(hppa_elf_build_arg_reloc_stub): Fix indention and spacing problems.
Add, update and clean comments. Handle "ble" %r31 lossage problems.
(hppa_elf_build_long_branch_stub): Likewise.
(hppa_look_for_stubs_in_section): Likewise.
(hppa_elf_stub_check): Remove obsolete function.
* hppa_stubs.h: Add new instructions to deal with %r31 lossage
problems. Delete unused instructions.
of architectures, get the ELF EM_xxx code from the backend
information. Let the generic ELF target match any EM_xxx code not
matched by another ELF target. Call elf_backend_object_p to let
the backend do more checks and set global information.
* libelf.h (struct elf_backend_data): Added elf_machine_code and
elf_backend_object_p fields.
(struct bfd_elf_arch_map): Removed.
(bfd_elf_arch_map, bfd_elf_arch_map_size): Don't declare.
* elf32-target.h, elf64-target.h: Initialize elf_machine_code
field with ELF_MACHINE_CODE. Initialize elf_backend_object_p
field with elf_backend_object_p (if it is defined).
* elf32-gen.c, elf32-hppa.c, elf32-i386.c, elf32-i860.c,
elf32-m68k.c, elf32-m88k.c, elf32-mips.c, elf32-sparc.c,
elf64-gen.c (ELF_MACHINE_CODE): Defined.
* elf32-mips.c: Include ecoffswap.h to get ECOFF swapping
routines.
(mips_elf_object_p): Set the right machine number.
(mips_elf_ecoff_debug_swap): Defined.
(elf_backend_object_p): Defined to be mips_elf_object_p.
(elf_backend_ecoff_debug_swap): Defined to be
mips_elf_ecoff_debug_swap.
* elf.c (bfd_elf_arch_map, bfd_elf_arch_map_size): Removed.
* elf32-mips.c (elf_mips_howto_table): Don't complain on overflow
for R_MIPS_26. Correct overflow detection requires matching the
upper four bits of the destination against the PC. From Ted Lemon
<mellon@pepper.ncd.com>.
* elf32-hppa.c (elf_hppa_reloc_type_lookup): Return type
should point to const data.
(struct elf_backend_data): Added elf_backend_ecoff_debug_swap
field. Removed unused write_relocs field.
* elf32-target.h: Adjusted elf_backend_data initialization
accordingly.
* elf64-target.h: Corrected elf_backend_data initialization to
fill in all fields and to set elf_64_p to 1.
* elf32-hppa.c (hppa_elf_get_section_contents): Fix logic error
in last change. Always rebuild symbol extension section the first
time though if output sections exist (fixes ld -r problems).
MY_bfd_debug_info_accumulat [sic]): Remove unused definitions.
(MY_bfd_get_relocated_section_contents, MY_bfd_relax_section,
MY_bfd_seclet_link): Define.
(MY_bfd_reloc_type_lookup): Rename from
MY_reloc_howto_type_lookup.
(MY_bfd_make_debug_symbol): Rename from MY_make_debug_symbol.
(MY(vec)): Use JUMP_TABLE rather than listing functions.
* hp300hpux.c (MY_get_symtab, MY_get_symtab_upper_bound,
MY_canonicalize_reloc, MY_write_object_contents): Don't define in
terms of MY, because that causes a recusive invocation of CAT when
expanded within JUMP_TABLE, and ANSI compilers don't expand
recursive macros.
* mipsbsd.c (MY_bfd_reloc_type_lookup): Rename from
MY_reloc_howto_type_lookup, and don't define in terms of MY.
(MY_canonicalize_reloc): Don't define in terms of MY.
(aout_mips_little_vec, aout_mips_big_vec): Use JUMP_TABLE rather
than listing functions.