Commit Graph

31 Commits

Author SHA1 Message Date
David Edelsohn
d1f74cd2c3 * aoutf1.h (sunos_32_set_arch_mach): Handle M_SPARCLET.
(aout_32_sunos4_write_object_contents): Likewise.
	* aoutx.h (NAME(aout,machine_type)): Handle
	bfd_mach_sparc_{sparclet,sparclite}.
	* archures.c (bfd_mach_sparc_{sparclet,sparclite}): Define.
	(bfd_mach_sparc_v9_p): Update.
	* cpu-sparc.c (arch_info_struct): Add entries for sparclet,sparclite.
	* libaout.h (enum machine_type): Add M_SPARCLET.
	* sunos.c (MACHTYPE_OK): Define.
	* bfd-in2.h: Regenerated.
1996-04-02 21:28:33 +00:00
Ian Lance Taylor
d3e572fefc update copyrights 1996-03-27 23:04:01 +00:00
Niklas Hallqvist
ec1c8dd231 Added M_68K4K_NETBSD magic. 1995-10-28 00:34:30 +00:00
Ian Lance Taylor
396aaeb2b6 * sunos.c (sunos_slurp_dynamic_symtab): New static function,
broken out of sunos_canonicalize_dynamic_symtab.
	(sunos_canonicalize_dynamic_symtab): Call new function
	sunos_slurp_dynamic_symtab.
	(sunos_add_dynamic_symbols): Add three new parameters.  Return the
	dynamic symbol table to the caller.
	* aoutx.h (aout_link_add_symbols): Permit add_dynamic_symbols
	callback to override the symbols being read.
	* libaout.h (struct aout_backend_data): Add three new parameters
	to add_dynamic_symbols callback.
1995-09-12 18:59:24 +00:00
Michael Tiemann
fb870b50a7 Add changes from customer since last work. 1994-11-26 00:17:52 +00:00
Ian Lance Taylor
f5419a5908 * libaout.h (struct aoutdata): Add q_magic_format to subformat
enum.
	* aout-target.h (MY_bfd_copy_private_bfd_data): Define as function
	if not already defined.  Copy subformat information.
	(MY_text_includes_header): Define as 0 if not already defined.
	(MY(backend_data)): Use MY_text_includes_header rather than 0.
	(MY_final_link_callback): Rename from final_link_callback, and
	define only if MY_final_link_callback is not already defined.
	(MY_bfd_final_link): Rename use of final_link_callback to
	MY_final_link_callback.
	* aoutx.h (NAME(aout,some_aout_object_p)): Handle QMAGIC like
	ZMAGIC, but set the subformat to q_magic_format.  Abort if the
	magic number if not recognized.
	(adjust_z_magic): Use QMAGIC if q_magic_format.
	* i386linux.c (MY_text_includes_header): Define as 1.
	(i386linux_bfd_final_link): New static function.
	(MY_bfd_final_link): Define as i386linux_bfd_final_link.

	* aoutx.h (translate_to_native_sym_flags): Check both section and
	output_section against sections of abfd.
1994-06-14 22:04:54 +00:00
Ian Lance Taylor
9ae74960a8 * aoutf1.h (aout_32_sunos4_write_object_contents): Handle a
machine type of 68000.
	* aoutx.h (NAME(aout,machine_type)): Add new argument unknown.
	Set *unknown to true if machine type is really unknown, as opposed
	to M_UNKNOWN for the 68000.
	(NAME(aout,set_arch_mach)): Change NAME(aout,machine_type) call
	accordingly.
	* libaout.h (NAME(aout,machine_type)): Add new argument to
	prototype.
1994-06-13 18:25:12 +00:00
Ian Lance Taylor
e85e8bfe62 Add linker support for SunOS shared libraries.
* sunos.c: Include bfdlink.h.  Add many new functions and
	definitions for SunOS shared library support.
	* bfd-in.h (bfd_sunos_record_link_assignment): Declare.
	(bfd_sunos_size_dynamic_sections): Declare.
	* bfd-in2.h: Rebuilt.
	* aoutx.h (struct aout_link_hash_entry): Move to libaout.h.
	(struct aout_link_hash_table): Likewise.
	(aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
	(aout_hash_table): Likewise.
	(NAME(aout,link_hash_newfunc)): Rename from aout_link_hash_newfunc
	and make externally visible.
	(NAME(aout,link_hash_table_init)): New function.
	(NAME(aout,link_hash_table_create)): Call
	NAME(aout,link_hash_table_init), not _bfd_link_hash_table_init.
	(aout_link_add_symbols): Don't fail if no symbols.  If it exists,
	call add_dynamic_symbols backend entry point for dynamic objects.
	Use add_one_symbol backend entry point if it exists.
	(NAME(aout,final_link)): Call finish_dynamic_link backend entry
	point, if it exists.
	(aout_link_input_bfd): For a dynamic object, call
	link_dynamic_object backend entry point, if it exists.
	(aout_link_write_other_symbol): Call write_dynamic_symbol backend
	entry point, if it exists.
	(aout_link_input_section): Don't read the relocs if they have
	already been read.
	(aout_link_input_section_std): When doing a final link, for a
	reloc against an external symbol, call check_dynamic_reloc backend
	entry point, if it exists.
	(aout_link_input_section_ext): Likewise.
	* libaout.h: Protect against multiple inclusion.  Include
	bfdlink.h.
	(struct aout_link_hash_entry): Move in from aoutx.h.
	(struct aout_link_hash_table): Likewise.
	(aout_link_hash_lookup, aout_link_hash_traverse): Likewise.
	(aout_hash_table): Likewise.
	(struct aout_backend_data): Add fields add_dynamic_symbols,
	add_one_symbol, link_dynamic_object, write_dynamic_symbol,
	check_dynamic_reloc, and finish_dynamic_link.
	(struct aout_section_data_struct): Define new structure.
	(aout_section_data): Define new accessor macro.
	(NAME(aout,link_hash_newfunc)): Declare.
	(NAME(aout,link_hash_table_init)): Declare.
	* aoutf1.h (sunos4_aout_backend): Initialize new aout_backend_data
	fields.
	* aout-target.h (MY(backend_data)): Likewise.
	* i386aout.c (MY(backend_data)): Likewise.
	* i386mach3.c (MY(backend_data)): Likewise.
	* mipsbsd.c (MY(backend_data)): Likewise.
	* sparclynx.c (sparclynx_aout_backend): Likewise.
1994-06-02 22:07:27 +00:00
Ian Lance Taylor
fa77c7041c * sunos.c (MY_read_dynamic_symbols): Don't define.
(MY_read_dynamic_relocs): Don't define.
	(MY_get_dynamic_symtab_upper_bound): Define.
	(MY_canonicalize_dynamic_symtab): Define.
	(MY_get_dynamic_reloc_upper_bound): Define.
	(MY_canonicalize_dynamic_reloc): Define.
	(struct sunos_dynamic_info): Change type of dynsym_count and
	dynrel_count to long.  Add fields canonical_dynsym and
	canonical_dynrel.
	(sunos_read_dynamic_info): Check that BFD had DYNAMIC flag set.
	Clear info->canonical_dynsym and info->canonical_dynrel.
	(MY(read_dynamic_symbols)): Removed.
	(MY(read_dynamic_relocs)): Removed.
	(sunos_get_dynamic_symtab_upper_bound): New function.
	(sunos_canonicalize_dynamic_symtab): New function.
	(sunos_get_dynamic_reloc_upper_bound): New function.
	(sunos_canonicalize_dynamic_reloc): New function.
	* libaout.h: Declare struct reloc_ext_external and
	reloc_std_external to avoid prototype problems.
	(struct aout_backend_data): Remove fields read_dynamic_symbols and
	read_dynamic_relocs.
	(NAME(aout,translate_symbol_table)): Declare.
	(NAME(aout,swap_ext_reloc_in)): Declare.
	(NAME(aout,swap_std_reloc_in)): Declare.
	* aoutx.h (NAME(aout,translate_symbol_table)): Renamed from
	translate_symbol_table and made non-static.  Changed all callers.
	(NAME(aout,slurp_symbol_table)): Don't read dynamic symbols.
	(NAME(aout,slurp_reloc_table)): Don't read dynamic relocs.
	(NAME(aout,get_reloc_upper_bound)): Don't count dynamic relocs.
	* aoutf1.h (aout_32_sunos4_write_object_contents): Don't bother to
	remove dynamic symbols and relocs.  They will no longer be
	present.
	(MY_read_dynamic_symbols): Don't define.
	(MY_read_dynamic_relocs): Don't define.
	(sunos4_aout_backend): Don't initialize dynamic entry points.
	* aout-target.h (MY_read_dynamic_symbols): Don't define.
	(MY_read_dynamic_relocs): Don't define.
	(MY(backend_data)): Don't initialize dynamic entry points.
	(MY_get_dynamic_symtab_upper_bound): If not defined, define to
	_bfd_nodynamic version.
	(MY_canonicalize_dynamic_symtab): Likewise.
	(MY_get_dynamic_reloc_upper_bound): Likewise.
	(MY_canonicalize_dynamic_reloc): Likewise.
1994-04-07 01:50:10 +00:00
Ian Lance Taylor
6812b6077e * targets.c (bfd_target): Rearranged fields in target vector.
Removed _bfd_debug_info_start, _bfd_debug_info_end and
	_bfd_debug_info_accumulate, which were never used.
	(BFD_JUMP_TABLE_GENERIC, BFD_JUMP_TABLE_COPY): Defined.
	(BFD_JUMP_TABLE_CORE, BFD_JUMP_TABLE_ARCHIVE): Defined.
	(BFD_JUMP_TABLE_SYMBOLS, BFD_JUMP_TABLE_RELOCS): Defined.
	(BFD_JUMP_TABLE_WRITE, BFD_JUMP_TABLE_LINK): Defined.
	* All backends: Changed to use the new BFD_JUMP_TABLE_* macros
	rather than the single JUMP_TABLE macro.  Removed many of the
	weird macro definitions needed to support the monolithic
	JUMP_TABLE.
	* bfd-in.h (JUMP_TABLE): Removed.
	* libbfd-in.h: Define a bunch of macros, and declare a few
	functions, for use with the new BFD_JUMP_TABLE_* macros.
	* libbfd.c (_bfd_dummy_new_section_hook): Removed.
	(bfd_false): Set bfd_error_invalid_operation.
	(bfd_nullvoidptr): Likewise.
	(bfd_n1): New function.
	(_bfd_nocore_core_file_matches_executable_p): Renamed from
	_bfd_dummy_core_file_matches_executable_p.
	(_bfd_nocore_core_file_failing_command): Similar rename.  Set
	bfd_error_invalid_operation.
	(_bfd_nocore_core_file_failing_signal): Likewise.
	(_bfd_generic_get_section_contents): Renamed from
	bfd_generic_get_section_contents.  Changed all callers.
	(_bfd_generic_set_section_contents): Similar rename.
	* ieee.c: #if 0 out ieee_bfd_debug_info_start,
	ieee_bfd_debug_info_end, ieee_bfd_debug_info_accumulate.  They
	were never called.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
1994-04-06 22:00:40 +00:00
Ian Lance Taylor
4002f18a05 Made sure that every call to bfd_read, bfd_write, and bfd_seek
checks the return value and handled bfd_error correctly.  These
	changes are not itemised.
1994-04-04 22:49:04 +00:00
Ian Lance Taylor
5c8444f8f8 Add bfd_free_cached_info support to a.out backends.
* aoutx.h (aout_get_external_symbols): Renamed from
	aout_link_get_symbols.  Read strings even if symbols have been
	read.  Store string size in obj_aout_string_size.
	(NAME(aout,slurp_symbol_table)): Call aout_get_external_symbols to
	read the symbols.  Allocate the cached symbols with malloc, not
	bfd_alloc.
	(NAME(aout,slurp_reloc_table)): Allocate the cached relocs with
	malloc, not bfd_alloc.
	(NAME(aout,bfd_free_cached_info)): New function; free cached
	symbols and relocs.
	* libaout.h (struct aoutdata): Add external_string_size field.
	(obj_aout_external_string_size): New accessor macro.
	(NAME(aout,close_and_cleanup)): Don't declare.
	(NAME(aout,bfd_free_cached_info)): Declare.
	(aout_32_close_and_cleanup): Don't define.
	(aout_64_close_and_cleanup): Don't define.
	* aout-target.h (MY_bfd_free_cached_info): If not already defined,
	define as NAME(aout,free_cached_info).
	(MY_close_and_cleanup): If not already defined, define as
	MY_bfd_free_cached_info.
	* aout-adobe.c (aout_32_close_and_cleanup): Define.
	(aout_32_bfd_free_cached_info): Don't define.
	* bout.c (aout_32_close_and_cleanup): Define.
	(aout_32_bfd_free_cached_info): Don't define.
	* hp300hpux.c (MY_bfd_free_cached_info): Define as bfd_true.
	(MY_close_and_cleanup): Don't define.
	* i386lynx.c (NAME(lynx,slurp_reloc_table)): Allocate the cached
	relocs with malloc, not bfd_alloc.
	* i386os9k.c (aout_32_close_and_cleanup): Define.
	(aout_32_bfd_free_cached_info): Don't define.
1994-04-01 22:08:38 +00:00
Ian Lance Taylor
326e32d7ce Wed Mar 30 16:25:41 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Changes to let BFD return an error indication from
	get_symtab_upper_bound, bfd_canonicalize_symtab,
	bfd_get_reloc_upper_bound, and bfd_canonicalize_reloc.  They now
	return long instead of unsigned int, and use -1 to indicate an
	error.  Along the way, rename get_symtab_upper_bound to
	bfd_get_symtab_upper_bound.
	* bfd.c (bfd_get_reloc_upper_bound): Return long, and -1 on
	errors.
	(bfd_canonicalize_reloc): Likewise.
	* syms.c (bfd_get_symtab_upper_bound): Renamed from
	get_symtab_upper_bound.
	* targets.c (bfd_target): Renamed _get_symtab_upper_bound to
	_bfd_get_symtab_upper_bound, and changed it and
	_bfd_canonicalize_symtab and _get_reloc_upper_bound and
	_bfd_canonicalize_reloc to all return long.
	* aoutx.h (NAME(aout,get_symtab)): Return long, and -1 on errors.
	(NAME(aout,canonicalize_reloc)): Likewise.
	(NAME(aout,get_reloc_upper_bound)): Likewise.
	(NAME(aout,get_symtab_upper_bound)): Likewise.
	* bout.c (b_out_canonicalize_reloc): Likewise.
	(b_out_get_reloc_upper_bound): Likewise.
	* coffcode.h (coff_canonicalize_reloc): Likewise.
	* coffgen.c (coff_get_symtab_upper_bound): Likewise.
	(coff_get_symtab): Likewise.
	(coff_get_reloc_upper_bound): Likewise.
	* ecoff.c (ecoff_get_symtab_upper_bound): Likewise.
	(ecoff_get_symtab): Likewise.
	(ecoff_canonicalize_reloc): Likewise.
	* elfcode.h (elf_get_symtab_upper_bound): Likewise.
	(elf_get_reloc_upper_bound): Likewise.
	(elf_canonicalize_reloc): Likewise.
	(elf_get_symtab): Likewise.
	* hp300hpux.c (MY(get_symtab)): Likewise.
	(MY(get_symtab_upper_bound)): Likewise.
	(MY(canonicalize_reloc)): Likewise.
	* i386lynx.c (NAME(lynx,canonicalize_reloc)): Likewise.
	* ieee.c (ieee_slurp_external_symbols): Change return type to
	boolean.  Check for errors from get_symbol.
	(ieee_slurp_symbol_table): Change return type to boolean.  Check
	for errors from ieee_slurp_external_symbols.
	(ieee_get_symtab_upper_bound): Return long, and -1 on errors.
	(ieee_get_symtab): Likewise.
	(ieee_get_reloc_upper_bound): Likewise.
	(ieee_canonicalize_reloc): Likewise.
	* mipsbsd.c (MY(canonicalize_reloc)): Likewise.
	* nlmcode.h (nlm_get_symtab_upper_bound): Likewise.
	(nlm_get_symtab): Likewise.
	(nlm_get_reloc_upper_bound): Likewise.
	(nlm_canonicalize_reloc): Likewise.
	* oasys.c (oasys_get_symtab_upper_bound): Likewise.
	(oasys_get_symtab): Likewise.
	(oasys_get_reloc_upper_bound): Likewise.
	(oasys_canonicalize_reloc): Likewise.
	* som.c (som_get_symtab_upper_bound): Likewise.
	(som_get_symtab): Likewise.
	(som_get_reloc_upper_bound): Likewise.
	(som_canonicalize_reloc): Likewise.
	* srec.c (srec_get_symtab_upper_bound): Likewise.
	(srec_get_symtab): Likewise.
	(srec_get_reloc_upper_bound): Define as bfd_0l.
	(srec_canonicalize_reloc): Likewise.
	* tekhex.c (tekhex_get_symtab): Return long, and -1 on errors.
	(tekhex_get_symtab_upper_bound): Likewise.
	(tekhex_get_reloc_upper_bound): Define as bfd_0l.
	(tekhex_canonicalize_reloc): Likewise.
	* libaout.h (NAME(aout,get_symtab_upper_bound)): Change
	declaration to return long.
	(NAME(aout,get_symtab)): Likewise.
	(NAME(aout,canonicalize_reloc)): Likewise.
	(NAME(aout,get_reloc_upper_bound)): Likewise.
	* libcoff-in.h (coff_get_symtab_upper_bound): Likewise.
	(coff_get_symtab): Likewise.
	(coff_get_reloc_upper_bound): Likewise.
	* libecoff.h (ecoff_get_symtab_upper_bound): Likewise.
	(ecoff_get_symtab): Likewise.
	(ecoff_canonicalize_reloc): Likewise.
	* libelf.h (bfd_elf32_get_symtab_upper_bound): Likewise.
	(bfd_elf32_get_symtab): Likewise.
	(bfd_elf32_get_reloc_upper_bound): Likewise.
	(bfd_elf32_canonicalize_reloc): Likewise.
	(bfd_elf64_get_symtab_upper_bound): Likewise.
	(bfd_elf64_get_symtab): Likewise.
	(bfd_elf64_get_reloc_upper_bound): Likewise.
	(bfd_elf64_canonicalize_reloc): Likewise.
	* libnlm.h (nlmNAME(get_symtab_upper_bound)): Likewise.
	(nlmNAME(get_symtab)): Likewise.
	(nlmNAME(get_reloc_upper_bound)): Likewise.
	(nlmNAME(canonicalize_reloc)): Likewise.
	* archive.c (compute_and_write_armap): Use error_return and
	no_memory_return labels rather than freeing information in various
	places.  Change storage, symcount and src_count to long.  Check
	errors from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
	* bout.c (b_out_relax_section): Change reloc_size to long.  Check
	for errors from bfd_get_reloc_upper_bound and
	bfd_canonicalize_reloc.
	(b_out_get_relocated_section_contents): Likewise.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
	Likewise.
	* elf32-mips.c: Likewise.
	* elf32-hppa.c (hppa_elf_stub_finish): Likewise.
	(hppa_look_for_stubs_in_section): Check for errors from
	bfd_get_symtab_upper_bound, bfd_canonicalize_symtab, and
	bfd_canonicalize_reloc.
	* ecofflink.c (bfd_ecoff_debug_accumulate_other): Check for errors
	from bfd_get_symtab_upper_bound and bfd_canonicalize_symtab.
	* linker.c (generic_link_read_symbols): Likewise.
	(_bfd_generic_final_link): Check for errors from
	bfd_get_reloc_upper_bound and bfd_canonicalize_reloc.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
	* reloc16.c (bfd_coff_reloc16_relax_section): Likewise.
	(bfd_coff_reloc16_get_relocated_section_contents): Likewise.
	* libbfd.c (bfd_0l): New function.
	* libbfd-in.h (bfd_0l): Declare.
	* aix386-core.c: Change get_symtab_upper_bound, get_symtab,
	get_reloc_upper_bound, and canonicalize_reloc to use bfd_0l rather
	than bfd_0u.
	* cisco-core.c, hppabsd-core.c, hpux-core.c: Likewise.
	* irix-core.c, osf-core.c, ptrace-core.c, trad-core.c: Likewise.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* libcoff.h: Rebuilt.

	* nlm32-sparc.c (nlm_sparc_read_reloc): Remove unused variables
	temp and name.
1994-03-30 22:15:07 +00:00
Ian Lance Taylor
728472f170 Minor cleanups suggested by CodeCenter.
* aoutx.h, coffgen.c, ecoff.c, ecofflink.c, elf.c, libbfd.c,
	linker.c, reloc.c, section.c, srec.c: Added /*ARGSUSED*/ as
	appropriate.
	* aoutx.h (struct external_exec): Removed unnecessary declaration.
	(NAME(aout,some_aout_object_p)): Set some tdata pointers to NULL.
	(adjust_z_magic): Removed useless variable data_vma.
	(stringtab_init): Initialize hash_zero.
	(add_to_stringtab): Removed unused fourth argument.
	(NAME(aout,swap_std_reloc_out)): Removed useless variable
	r_addend.
	(aout_link_input_section): Added some casts.
	* archive.c (get_extended_arelt_filename, do_slurp_coff_armap,
	bfd_ar_hdr_from_filesystem, bsd_write_armap, coff_write_armap):
	Minor code rewriting to make it more C like.
	(do_slurp_bsd_armap): Added some casts.
	* ecoff.c (ecoff_write_object_contents): Removed useless variable
	scn_base.
	(ecoff_write_armap): Added some casts.  Use "" rather than "\0".
	* ecofflink.c (bfd_ecoff_write_debug): Added a cast.
	* libaout.h (struct internal_exec): Removed unnecessary
	declaration.
	* linker.c (_bfd_generic_indirect_link_order): Added a cast.
	* opncls.c (new_bfd): Removed a cast.
	* reloc.c (bfd_generic_get_relocated_section_contents): Added
	some casts.
	* srec.c (internal_srec_write_object_contents): Removed useless
	variable bytes_written.
1993-12-31 21:51:05 +00:00
Ian Lance Taylor
4c3721d514 Extensive changes to move the bulk of the linker into BFD so that
more efficient backend code can be written for specific object
	files.  Only existing efficient backend is a.out.
	* seclet.c, seclet.h: Removed.
	* hash.c, linker.c, genlink.h: New files.
	* bfd-in.h: Removed bfd_error_vector.  Declared hash table
	structures and functions.
	(JUMP_TABLE): Removed bfd_seclet_link, added
	bfd_link_hash_table_create, bfd_link_add_symbols and
	bfd_final_link.
	* All backends: Changed accordingly.
	* bfd-in2.h: Rebuilt.
	* bfd.c (struct _bfd): Added link_next and archive_pass fields.
	Removed ld_symbols field.
	(bfd_nonrepresentable_section, bfd_undefined_symbol,
	bfd_reloc_value_truncated, bfd_reloc_is_dangerous,
	bfd_error_vector): Removed.
	(bfd_default_error_trap, bfd_error_trap,
	bfd_error_nonrepresentabltrap): Removed.
	(bfd_get_relocated_section_contents): Pass link_info.  Pass
	link_order instead of seclet.  Pass symbols.
	(bfd_relax_section): Pass link_info.
	(bfd_seclet_link): Removed.
	(bfd_link_hash_table_create, bfd_link_add_symbols,
	bfd_final_link): New macros.
	* libbfd-in.h: If __GNUC__ is defined and alloca is not, define
	alloca as __builtin_alloca.  Declare internal linking functions.
	* libbfd.h: Rebuilt.
	* libbfd.c (bfd_seek): Comment out fseek assertion.  It's worked
	for months.
	* reloc.c (reloc_howto_type): Added error_message argument to
	special_function field.  Changed all callers and all definitions.
	(bfd_get_reloc_size): Make argument a const pointer.
	(bfd_perform_relocation): Add error_message argument to hold
	string set if return value if bfd_reloc_dangerous.  Changed all
	callers.
	(_bfd_final_link_relocate, _bfd_relocate_contents): New functions.
	* section.c (asection): Renamed seclets_head and seclets_tail to
	link_order_head and link_order_tail.
	* targets.c (bfd_target): Replaced seclet argument with link_info
	and link_order and symbols arguments in
	bfd_get_relocated_section_contents.  Added symbols argument to
	bfd_relax_section.  Removed bfd_seclet_link.  Added
	bfd_link_hash_table_create, bfd_link_add_symbols and
	bfd_final_link.
	* libaout.h (struct aoutdata): Added external_syms,
	external_sym_count, external_strings, sym_hashes fields.
	(obj_aout_external_syms, obj_aout_external_sym_count,
	obj_aout_external_strings, obj_aout_sym_hashes): New accessor
	macros.
	(WRITE_HEADERS): Only output symbols if outsymbols is not NULL.
	* aoutx.h: Wrote new back end linker routines.
	(translate_to_native_sym_flags): Return boolean value.  Don't use
	bfd_error_vector.
	(NAME(aout,write_syms)): Return boolean value.  Check return value
	of translate_to_native_sym_flags and bfd_write.
	* aout-target.h (final_link_callback): New function.
	(MY_bfd_final_link): New function.
	* aout-adobe.c (aout_adobe_write_object_contents): Check return
	value of aout_32_write_syms.
	* hp300hpux.c (MY(write_object_contents)): Likewise.
	* i386lynx.c (WRITE_HEADERS): Likewise.
	* libaout.h (WRITE_HEADERS): Likewise.
	* bout.c: Changed functions to use link_info->callbacks rather
	than bfd_error_vector, and link_orders rather than seclets.
	* coff-alpha.c: Likewise.
	* coff-h8300.c: Likewise.
	* coff-h8500.c: Likewise.
	* coff-sh.c: Likewise.
	* coff-z8k.c: Likewise.
	* elf32-hppa.c: Likewise.
	* reloc16.c: Likewise.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Look
	up _gp in the hash table rather than in outsymbols.
	* coff-a29k.c (a29k_reloc): Pass errors back in new error_message
	argument rather than printing them.
	* coffcode.h (bfd_coff_reloc16_extra_cases): Take link_info and
	link_order arguments rather than seclet.  Changed all uses and
	definitions.
	(bfd_coff_reloc16_estimate): Pass link_info arguments.  Changed
	all uses and definitions.
	* libcoff.h: Rebuilt.
	* ecoff.c (ecoff_get_extr): If symbol is defined by linker, but
	not by ECOFF, make it scAbs.
	(ecoff_bfd_final_link): Renamed from ecoff_bfd_seclet_link and
	rewritten.
	* elf32-mips.c (mips_elf_final_link): Renamed from
	mips_elf_seclet_link and rewritten.
	* elf32-hppa.c (elf32_hppa_stub_description): Added link_info
	field.
	(new_stub, add_stub_by_name, hppa_elf_build_arg_reloc_stub,
	hppa_elf_build_long_branch_stub, hppa_look_for_stubs_in_section):
	Added link_info arguments.  Changed all callers.
	* elfcode.h (elf_slurp_symbol_table): Don't quit if outsymbols is
	not NULL.
	* oasys.c (oasys_write_sections): Return boolean value rather than
	using bfd_error_vector.
	(oasys_write_object_contents): Check return value of
	oasys_write_sections.
	* hosts/std-host.h: Don't declare qsort or strtol.
	* Makefile.in: Rebuild dependencies.
	(BFD_LIBS): Removed seclet.o.  Added hash.o and linker.o.
	(CFILES): Removed seclet.c.  Added hash.c and linker.c.
	(HFILES): Removed seclet.h.  Added genlink.h.
1993-12-30 19:56:50 +00:00
Ken Raeburn
c2623b7d30 comment branches in ARCH_SIZE test 1993-06-16 01:51:56 +00:00
Ken Raeburn
9eb73722ae add new field for subformat (for hp300 work) 1993-04-28 22:52:50 +00:00
John Gilmore
1f29e30b1f * aout-target.h, aoutf1.h, trad-core.c, coffcode.h, libaout.h:
Eliminate all PROTO calls, replace with PARAMS for readability.

* aoutx.h:  Add type to callback parameter.
* coff-mips.c:  Don't call trad-core.h, not needed.
* trad-core.c:  Incorporate trad-core.h declarations.  Fix comments.
* trad-core.h:  Eliminate, unused.
1992-11-28 13:00:18 +00:00
John Gilmore
f8e0194018 * aout-adobe.c, aoutf1.h, archive.c, bout.c, coff-rs6000.c,
coffcode.h, elf.c, ieee.c, libaout.h, libbfd.c, oasys.c,
sco-core.c:  Lint:  Second argument of bfd_seek is always file_ptr.
Third argument is SEEK_SET or SEEK_CUR.  Result is always 0 or -1.
1992-10-15 09:00:09 +00:00
Mark Eichin
7f90aa8b18 Linker now works for go32; other changes keep it from breaking the other
platforms (new backend_data "exec_header_not_counted") (from p3.)
1992-10-09 02:41:30 +00:00
Ken Raeburn
ce07dd7c0c [time to file a PR on cvs...]
Various changes to get linker working again for a.out:
 * don't set/adjust section file positions or vmas more than once
 * use correct page size and segment size when calculating them
 * deal with some variations in a.out implementations
Tested on sun4 and sun4->sun3 so far, will be testing further but
needed to get wider exposure&testing.  See ChangeLog for details.

Also:
* coffcode.h (coff_write_relocs): Write out swapped reloc, not
pre-swapped version.
* hosts/sparc.h (abort, exit): Hide these names if compiling with
gcc version 2, to avoid warnings.
1992-06-16 12:04:03 +00:00
Per Bothner
7de245d362 Moved bfd_stab_name() and bfd_stab_names[]
from syms.c to new file stab-syms.c.
	Renamed to  aout_stab_name() and aout_stab_names[].
	Also, since GNU extended type codes such as N_SETT are no longer
	in ../include/stab.def, include them manually.
1991-11-22 05:00:08 +00:00
John Gilmore
98d4310737 * libaout.h (WORK_OUT_FILE_POSITIONS): One more try at this
rather complicated seeming problem.  Eliminate LOGICAL_ versions,
just make N_XXX work by excluding the header from the text segment.
* aoutx.h:  Fix comments to match.
1991-11-21 19:52:23 +00:00
John Gilmore
0fa4f690d6 * host-aout.c: New strategy. We use common code, include files,
and data structures to handle the file, but set a few parameters
from the host's config file (page size, text start addr, etc).
* libaout.h:  Define HP BSD machine types.
1991-10-16 18:57:16 +00:00
John Gilmore
9e2dad8ed4 * bfd.c: Remove strerror() to libiberty.
* elf.c:  Remove elf_set_section_contents, use generic one.  Lint.
* libbfd-in.h, libbfd.c:  Add bfd_generic_set_section_contents.
* libbfd.c (bfd_generic_{get,set}_section_contents):  Check that
last byte of transfer, not first byte, is within the section.

* host-aout.c:  Remove `BSD' archive support.  Lint.

* archures.c: Rename `struct bfd_arch_info_struct' to `struct
bfd_arch_info'.  Rename `typedef bfd_arch_info_struct_type' to
`bfd_arch_info_type'.  All uses changed.
* reloc.c:  Rename `bfd_reloc_status_enum_type' to
`bfd_reloc_status_type'.  Rename `bfd_reloc_code_enum_real_type'
to `bfd_reloc_code_real_type'.  (This seems to be a misnomer,
it needs a better name.)  All uses changed.
* targets.c:  Rename `enum target_flavour_enum' to `enum
target_flavour', and remove the `_enum' from all of the enum
values themselves.  All uses changed.

* configure.in, config/h-i386mach:  i386 mach host.
* config/t-i386-aout:  Use host-aout.c.

* trad-core.c:  Give it its own xvec's to make it independent
of other file formats.
* ecoff.c, host-aout.c:  Remove refs to trad-core.
* config/t-dec3100, t-hp300bsd, t-tahoe, t-vax:  Define TRAD_CORE.
* targets.c:  #ifdef TRAD_CORE, include it in the vector.
1991-10-05 05:18:08 +00:00
John Gilmore
359f1dee91 Rename liba.out.h to libaout.h for brain death file systems. Change callers. 1991-05-29 02:44:10 +00:00
John Gilmore
c0e5039e64 Merge in changes from gdb-3.95 release into mainstream of BFD development.
Support defaulted (search all) targets and specific (only check one)
targets.
1991-05-29 00:20:02 +00:00
John Gilmore
69ebee8678 Split up a.out handlers into generic and target-specific.
Remove close_and_cleanup.  Lint.
1991-05-10 23:51:35 +00:00
John Gilmore
fc7233808a Merge devo/bfd with GDB's bfd.
Remove obstack.h to ../include and obstack.c to ../libiberty.
Move COFF symbol swapping code to coffswap.c where GDB can call it but it
won't be duplicated if we have N different COFF targets.
Add support for traditional Unix core files (with a upage).  This support
is from an Ultrix port, but is probably slightly broken now.
Improve bfd_release's of obstack'd items on error returns.
gcc -Wall fixes.
Handle section alignment slightly better in coff, and comment where it
needs more work (on page-aligning virtual vs file addresses for DPAGED).
Use set_tdata everywhere that tdata is set, to avoid "cast to the left
of assignment" problems with some compilers.
Move bfd_alloc, bfd_zalloc, bfd_realloc, and bfd_release into libbfd.h
(from bfd.h) since they are internal routines.
Remove the redundant suffix "_struct" from struct tags.
Set symbol count early in file reading, before slurping in the syms,
for GDB's use.
1991-05-02 04:11:40 +00:00
Steve Chamberlain
9846338e68 Merged in some changes from Intel,
Added some more prototypes.
1991-04-15 15:25:16 +00:00
David Henkel-Wallace
4a81b56152 Initial revision 1991-03-21 21:11:25 +00:00