machine types.
(bfd_hppa_arch): Link in both PA1.0 and PA1.1 architecture info
structures.
* libhppa.h (enum pa_arch): New enumeration to describe the
different variants of the PA architecture.
* som.c (som_object_setup): Use new enumeration to set machine
type.
(som_finish_writing): If the machine type is PA1.1, then use the
PA1.1 machine identifier in the output file.
* binary.c: Add support for reading binary files. Loads the raw
contents of the file into a data section and wraps some symbols
around it. The symbols `_binary_<filename>_start' and
`_binary_<filename>_end' indicate the start and end of the data,
while `_binary_<filename>_size' is an absolute symbol whose value
is the size of the data. <filename> is the name of the binary
input file, with all non-alphanumeric characters converted to
underscores.
* archures.c (bfd_arch_get_compatible): Assume users knows what
they're doing if one of the architectures is bfd_arch_unknown.
(mips_elf_find_nearest_line): New static function.
(bfd_elf32_find_nearest_line): Define.
* libelf.h (struct elf_obj_tdata): Add find_line_info field.
* ecoff.c (_bfd_ecoff_swap_tir_in): Move to ecofflink.c.
(_bfd_ecoff_swap_tir_out): Likewise.
(_bfd_ecoff_swap_rndx_in): Likewise.
(_bfd_ecoff_swap_rndx_out): Likewise.
(cmp_fdrtab_entry): Likewise.
(mk_fdrtab): Likewise.
(lookup): Likewise.
(_bfd_ecoff_find_nearest_line): Just call _bfd_ecoff_locate_line
to do most of the work. Allocate find_line_info if necessary.
* ecofflink.c: Include "aout/stab_gnu.h".
(_bfd_ecoff_swap_tir_in): Move in from ecoff.c.
(_bfd_ecoff_swap_tir_out): Likewise.
(_bfd_ecoff_swap_rndx_in): Likewise.
(_bfd_ecoff_swap_rndx_out): Likewise.
(cmp_fdrtab_entry): Likewise. Use PTR instead of void *.
(mk_fdrtab): Move in from ecoff.c. Add debug_info, debug_swap,
and line_info arguments, and use them instead of ecoff_data.
(fdrtab_lookup): Move in from lookup in ecoff.c. Remove abfd
argument, add line_info argument. Use it instead of ecoff_data.
(_bfd_ecoff_locate_line): New function, mostly from the old
_bfd_ecoff_find_nearest_line in ecoff.c.
* libecoff.h (ecoff_data_type): Remove find_buffer, fdrtab_len and
fdrtab fields, replacing them find_line_info field.
(_bfd_ecoff_swap_tir_in): Declare.
(_bfd_ecoff_swap_tir_out): Declare.
(_bfd_ecoff_swap_rndx_in): Declare.
(_bfd_ecoff_swap_rndx_out): Declare.
* libbfd-in.h (_bfd_ecoff_locate_line): Declare.
* libbfd.h: Rebuild.
* configure.in: Don't use ecoff.o for bfd_elf32_bigmips_vec or
bfd_elf32_littlemips_vec.
* Makefile.in: Rebuild dependencies.
accept M_SPARC if bfd_arch_sparc is not in the list of supported
architectures, and don't accept a 680x0 machine type if
bfd_arch_m68k is not in the list of supported architectures.
* aout0.c (MACHTYPE_OK): Define.
(bfd_mach_arc_host, bfd_mach_arc_graphics, bfd_mach_arc_audio): Ditto.
* cpu-arc.c (arch_info_struct): Define entries for each cpu variant.
(bfd_arc_arch): Link each one in.
(arc_get_mach): New function.
* elf32-arc.c (arc_info_to_howto_rel): Renamed from arc_info_to_howto.
(elf_info_to_howto_rel): Update.
(arc_elf_object_p, arc_elf_final_write_processing): New functions.
(elf_backend_object_p): Define.
(elf_backend_final_write_processing): Define.
(USE_REL): Define.
symbol information structure. Don't bother to check for common
symbol size overflow.
(_bfd_generic_link_add_one_symbol): Likewise.
* aoutx.h (aout_link_check_ar_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Adjust references
to common symbol information for new structure.
(_bfd_generic_link_add_one_symbol): Likewise.
* aoutx.h (aout_link_check_ar_symbols): Likewise.
(aout_link_add_symbols): Likewise.
* ecoff.c (ecoff_link_add_externals): Likewise.
* elfcode.h (elf_link_add_object_symbols): Likewise.
(elf_link_output_extsym): Likewise.
* sunos.c (sunos_add_one_symbol): Likewise.
* elfcode.h (elf_link_add_object_symbols): Set saw_needed if
DT_NEEDED seen in .dynamic section.
(elf_link_output_extsym): Warn if an undefined symbol is
only referenced from a dynamic object, and not making a shared
object, and saw_needed is false.
* elf.c (_bfd_elf_link_hash_table_init): Initialize saw_needed.
braindamaged HP OSF1 linker.
(setup_sections): Don't forget to free subspace_sections if we get
an error.
(som_slurp_string_table): Allocate strings on this bfd's obstack
rather than directly out of the heap.
(som_slurp_symbol_table): Likewise for the saved copy of the
canonical symbols.
(som_slurp_reloc_table): Likewise for the saved copy of the
canonical relocations. Free the native relocations when we're
done with them.
* elfcode.h (get_program_header_size): New parameters sorted_hdrs,
count, and maxpagesize. All callers updated.
If sorted_hdrs is non-NULL, use it to compute the number of segments.
Save result in case called again.
(assign_file_positions_except_relocs): Sort headers before calling
get_program_header_size.