Commit Graph

1699 Commits

Author SHA1 Message Date
Jeff Law 515b81046b * som.c (som_decode_symclass): Handle absolute symbols by checking
the SOM type (since they will rarely if ever be in the absolute
	section).

Something Ian noticed.
1995-08-07 20:53:29 +00:00
Jeff Law 08683c8ae7 * som (som_get_reloc_upper_bound): Return -1 on error. Compute
return value with sizeof (arelent *), not sizeof (arelent).

Net bug and something I noticed while fixing it.
1995-08-05 06:07:33 +00:00
Ian Lance Taylor 981f444144 * ecofflink.c (_bfd_ecoff_locate_line): When handling stabs:
correct setting of sym_ptr_end to consider symbols skipped when
	setting sym_ptr; don't leave loop early unless an N_FUN is found
	with a larger value.
1995-07-24 21:42:41 +00:00
Ian Lance Taylor d06004cb3a * cofflink.c (coff_link_add_object_symbols): Call
_bfd_coff_get_external_symbols, not coff_link_get_symbols.  Call
	_bfd_coff_free_symbols, not coff_link_free_symbols.  Call
	_bfd_coff_read_string_table, not coff_read_string_table.
	(coff_link_check_archive_element): Likewise.
	(coff_link_input_bfd): Likewise.
	(coff_link_get_symbols): Move to coffgen.c.
	(coff_read_string_table): Likewise.
	(coff_link_free_symbols): Likewise.
	(_bfd_coff_internal_syment_name): New static function.
	(coff_link_check_ar_symbols): Use _bfd_coff_internal_syment_name.
	(coff_link_add_symbols): Likewise.
	(coff_link_input_bfd): Likewise.
	(_bfd_coff_generic_relocate_section): Likewise.
	(_bfd_coff_read_internal_relocs): New function.
	(coff_link_input_bfd): Use cached section contents if available.
	Use _bfd_coff_read_internal_relocs.
	* coffcode.h (coff_slurp_symbol_table): Don't call bfd_seek.
	(coff_bfd_get_relocated_section_contents): Only define if not
	already defined.
	(coff_bfd_relax_section): Likewise.
	* coffgen.c (build_string_table): Remove.
	(_bfd_coff_get_external_symbols): New function, moved in from old
	coff_link_get_symbols in cofflink.c.
	(_bfd_coff_read_string_table): New function, moved in from old
	coff_read_string_table in cofflink.c.
	(_bfd_coff_free_symbols): New function, moved in frmo old
	coff_link_free_symbols in cofflink.c.
	(coff_get_normalized_symtab): Use _bfd_coff_get_external_symbols
	rather than reading the symbols directly.  To free them, call
	_bfd_coff_free_symbols.  Use _bfd_coff_read_string_table rather
	than build_string_table.
	* libcoff-in.h (obj_coff_keep_syms): Define.
	(obj_coff_keep_strings): Define.
	(coff_data_type): Add fields keep_syms and keep_strings.
	(coff_section_tdata): Define new structure.
	(coff_section_data): Define.
	(_bfd_coff_get_external_symbols): Declare.
	(_bfd_coff_read_string_table): Declare.
	(_bfd_coff_free_symbols): Declare.
	(_bfd_coff_read_internal_relocs): Declare.
	* libcoff.h: Rebuild.
1995-07-24 19:23:53 +00:00
Jeff Law 297faf8cff * elf32-hppa.c (hppa_elf_gen_reloc_type): Add new (ignored)
argument.
        * elf32-hppa.h: Corresponding change.
1995-07-21 04:49:23 +00:00
Ken Raeburn 883e2f510d fix some compilation problems 1995-07-20 23:11:44 +00:00
Fred Fish e365a606ed * hosts/i386v4.h (getgid, getuid): Change prototypes to be
compatible with Unixware 1.x and Unixware 2.x, and probably other
	i386 svr4 versions as well.
1995-07-20 19:57:07 +00:00
Ken Raeburn dfdcff13c0 * targets.c (bfd_target_vector): Since armpe and armpei have been split into
big- and little-endian variants, list all of them, instead of the
now-nonexistant armpe[i]_vec.
1995-07-20 17:56:18 +00:00
Ian Lance Taylor b5727da67b * elf.c (bfd_section_from_phdr): Set lma based on p_paddr.
(elf_fake_sections): Set sh_addr based on lma, not vma.
PR 7478.
1995-07-20 04:10:18 +00:00
David Edelsohn d6fc77df4d * coff-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
* configure.in (armpe_vec, armpei_vec): Add bi-endian support.
	* configure: "regenerated".
	* pe-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
	(TARGET_LITTLE_NAME, TARGET_BIG_NAME): Replaces TARGET_NAME.
	* pei-arm.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Replaces TARGET_SYM.
	(TARGET_LITTLE_NAME, TARGET_BIG_NAME): Replaces TARGET_NAME.
	* targets.c (armpe_vec, armpei_vec): Deleted.
	(armpe_little_vec, armpe_big_vec, armpei_little_vec, armpei_big_vec):
	Added.
	* config/arm-pe.mt (DEFAULT_VECTOR): Default is armpe_little_vec.
	(SELECT_VECS): Add bi-endian support.
1995-07-19 23:02:21 +00:00
Ian Lance Taylor d0d491b17e * aoutx.h (KEEPIT): Change definition to udata.i.
(KEEPITTYPE): Remove.
	(NAME(aout,reloc_type_lookup)): Add cases to the
	extended reloc type switch: SPARC_GOT10, SPARC_GOT13, SPARC_GOT22,
	SPARC_PC10, SPARC_PC22, SPARC_WPLT30.
	(NAME(aout,swap_std_reloc_out)): Don't bother to use stoi when
	retrieving KEEPIT value.
	(NAME(aout,swap_ext_reloc_out)): Likewise.  Also, only add in
	output section VMA for section symbols, and check BSF_SECTION_SYM
	to control whether to set r_extern to 1.
1995-07-14 23:52:34 +00:00
Ian Lance Taylor 80b44d8a2c * syms.c: Fix comments so that `make info' works. 1995-07-14 17:23:07 +00:00
Ian Lance Taylor 175b3c0f1e * elf32-mips.c (mips_elf_find_nearest_line): Set SEC_HAS_CONTENTS
in .mdebug section, in case backend linker has cleared it.
1995-07-14 17:15:07 +00:00
Michael Meissner 0c51f21a53 Fix PPC_ADDR16_HA relocations 1995-07-14 16:01:44 +00:00
Jeff Law d4654e380e * som.c (hppa_som_gen_reloc_type): Choose a reasonable field
selector relocation for the difference of two symbols.
1995-07-14 03:15:15 +00:00
Ian Lance Taylor 3fe22b980b * aoutx.h (NAME(aout,slurp_reloc_table)): Cast argument to size_t
for malloc.
	* coff-mips.c (mips_relocate_section): Likewise, for memmove.
	(mips_relax_section): Likewise, for malloc.
	* cofflink.c (process_embedded_commands): Likewise.
	(_bfd_coff_final_link): Likewise.
	* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
	(ecoff_final_link_debug_accumulate): Likewise.
	(ecoff_indirect_link_order): Likewise, for memcpy and malloc.
	(ecoff_reloc_link_order): Likewise, for malloc.
	* ecofflink.c (ecoff_align_debug): Likewise, for memset.
	(ecoff_write_symhdr): Likewise, for malloc.
	* elf32-hppa.c (elf32_hppa_read_symext_info): Likewise.
	* elf.c (assign_file_positions_except_relocs): Likewise, for
	qsort.
	* elf32-mips.c (mips_elf_read_ecoff_info): Likewise, for malloc.
	* elfcode.h (elf_slurp_reloc_table): Likewise.
	* elfcore.h (elf_corefile_note): Likewise.
	* elflink.h (elf_link_add_object_symbols): Likewise.
	(elf_link_read_relocs): Likewise.
	(NAME(bfd_elf,size_dynamic_sections)): Likewise, for memset.
	* i386linux.c (bfd_linux_size_dynamic_sections): Likewise.
	* ieee.c (do_with_relocs): Likewise.
	* linker.c (default_indirect_link_order): Likewise, for malloc.
	* nlmcode.h (nlm_object_p): Likewise.
	(nlm_write_object_contents): Likewise.
	* oasys.c (oasys_set_section_contents): Likewise, for memcpy.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise,
	for malloc.
	* section.c (bfd_get_section_contents): Likewise, for memcpy.
	* srec.c (srec_get_section_contents): Likewise.
	(srec_set_section_contents): Likewise.
	* sunos.c (bfd_sunos_size_dynamic_sections): Likewise, for
	realloc and memset.
	(sunos_scan_relocs): Likewise, for malloc.
	(sunos_scan_dynamic_symbol): Likewise, for realloc.
	* syms.c (_bfd_generic_read_minisymbols): Likewise, for malloc.
	* versados.c (versados_get_section_contents): Likewise, for
	memcpy.
1995-07-13 18:14:45 +00:00
Ian Lance Taylor c3246d9b00 * targets.c (bfd_target): Add fields _read_minisymbols and
_minisymbol_to_symbol.
	(BFD_JUMP_TABLE_SYMBOLS): Add _read_minisymbols and
	_minisymbol_to_symbol.
	(bfd_read_minisymbols): Define.
	(bfd_minisymbol_to_symbol): Define.
	* syms.c (_bfd_generic_read_minisymbols): Define.
	(_bfd_generic_minisymbol_to_symbol): Define.
	* libbfd-in.h (_bfd_nosymbols_read_minisymbols): Define.
	(_bfd_nosymbols_minisymbol_to_symbol): Define.
	(_bfd_generic_read_minisymbols): Declare.
	(_bfd_generic_minisymbol_to_symbol): Declare.
	* bfd-in2.h: Rebuild.
	* libbfd.h: Rebuild.
	* aoutx.h (MINISYM_THRESHOLD): Define.
	(NAME(aout,read_minisymbols)): New function.
	(NAME(aout,minisymbol_to_symbol)): New function.
	* libaout.h (NAME(aout,read_minisymbols)): Declare.
	(NAME(aout,minisymbol_to_symbol)): Declare.
	* aout-target.h (MY_read_minisymbols): Define.
	(MY_minisymbol_to_symbol): Define.
	* All targets: Define read_minisymbols and minisymbol_to_symbol.
PR 5332.
1995-07-13 14:46:06 +00:00
Ken Raeburn b818a3257f fix some compilation warnings from sun cc 1995-07-12 22:00:57 +00:00
Ian Lance Taylor f55900af7f * elf.c (bfd_section_from_shdr): In case SHT_REL[A], only get the
BFD section for the sh_link section if it is a SYMTAB section.
PR 7392.
1995-07-12 01:23:10 +00:00
Ian Lance Taylor 6c481b58a6 * aoutx.h (NAME(aout,link_add_symbols)): Don't bother to check
that archives hold a.out objects.
	* cf-i386lynx.c (coff_bfd_link_add_symbols): Don't define.
	(lynx_link_add_symbols): Remove.
	* cf-m68klynx.c (coff_bfd_link_add_symbols): Don't define.
	(lynx_link_add_symbols): Remove.
	* elflink.h (elf_bfd_link_add_symbols): Don't bother to check that
	archives hold ELF objects.
1995-07-11 21:22:17 +00:00
Ian Lance Taylor 0e75a8d6da * archive.c (bfd_generic_archive_p): If the archive has a map, and
the target was defaulted, but the first object in the archive can
	not be matched with that target, then return a bad format error.
1995-07-11 21:12:41 +00:00
Ian Lance Taylor 18bf5d5f2f * elf64-sparc.c (elf_sparc_howto_table): Set howto for WDISP16 to
elf64_wdisp16_reloc.
	(elf64_wdisp16_reloc): New static function.
	(elf64_sparc_relocate_section): New static function.
	(elf_backend_relocate_section): Define.
PR 7333.
1995-07-11 20:16:48 +00:00
Ian Lance Taylor cf9fb9f243 * libelf.h (struct elf_size_info): Change type of last argument to
swap_symbol_out from char * to PTR.
	(bfd_elf32_swap_symbol_out): Update declaration.
	(bfd_elf64_swap_symbol_out): Likewise.
	* elfcode.h (elf_swap_symbol_out): Change type of cdst from char *
	to PTR.
	* elf.c (swap_out_syms): Cast to PTR, not char *, when calling
	swap_symbol_out routine.
	* elflink.h (NAME(bfd_elf,size_dynamic_sections)): Likewise.
	(elf_link_output_sym): Likewise.
	(elf_link_output_extsym): Likewise.
	* elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Likewise.
1995-07-11 19:24:46 +00:00
Ian Lance Taylor 6f904fce87 Tue Jul 11 12:29:49 1995 Rick Sladkey <jrs@world.std.com>
* elf.c (_bfd_elf_find_nearest_line): Handle the simple case where
	there is no debugging information.
1995-07-11 16:31:39 +00:00
Ian Lance Taylor 9ab8a0e87b * coff-arm.c (PCRELOFFSET): Define if not already defined.
* Makefile.in: Rebuild dependencies.
	(BFD32_BACKENDS): Add coff-arm.o
	(CFILES): Add coff-arm.c, pe-arm.c, pei-arm.c.
1995-07-10 18:24:39 +00:00
Ian Lance Taylor 56fd39e800 * cofflink.c (_bfd_coff_generic_relocate_section): Remove unused
local i.
	* coff-arm.c (coff_arm_rtype_to_howto): Don't declare.
1995-07-10 18:16:25 +00:00
Ian Lance Taylor 921fc2819c * coff-i960.c (coff_i960_relocate): Correct typo: use ! on strcmp,
not on string.
1995-07-10 18:11:13 +00:00
Ian Lance Taylor e336470145 * aoutx.h (NAME(aout,link_hash_table_create)): Allocate hash table
using bfd_alloc, not malloc.
	* cofflink.c (_bfd_coff_link_hash_table_create): Likewise.
	* ecoff.c (_bfd_ecoff_bfd_link_hash_table_create): Likewise.
	* i386linux.c (linux_link_hash_table_create): Likewise.
	* linker.c (_bfd_generic_link_hash_table_create): Likewise.
	* sunos.c (sunos_link_hash_table_create): Likewise.
1995-07-10 18:07:17 +00:00
Ian Lance Taylor 951fe66d62 Based on patches from Eric Youngdale <eric@aib.com>:
* elflink.h (NAME(bfd_elf,size_dynamic_sections)): If -Bsymbolic,
	output a DT_SYMBOLIC dynamic entry.
	(elf_adjust_dynamic_symbol): If -Bsymbolic, don't require a PLT
	entry for a locally defined symbol.
	* elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, do warn
	about undefined symbols, and fill in the GOT entry for a symbol
	defined in a regular object file.
	(elf_i386_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
	reloc rather than a GLOB_DAT reloc for a symbol defined in a
	regular object file.
	* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, do warn
	about undefined symbols, and fill in the GOT entry for a symbol
	defined in a regular object file.
	(elf_m68k_finish_dynamic_symbol): If -Bsymbolic, output a RELATIVE
	reloc rather than a GLOB_DAT reloc for a symbol defined in a
	regular object file.
	* elf32-sparc.c (elf32_sparc_relocate_section): If -Bsymbolic, do
	warn about undefined symbols, and fill in the GOT entry for a
	symbol defined in a regular object file.
	(elf32_sparc_finish_dynamic_symbol): If -Bsymbolic, output a
	RELATIVE reloc rather than a GLOB_DAT reloc for a symbol defined
	in a regular object file.
1995-07-10 17:31:31 +00:00
Ken Raeburn 5b2c2b363d add binary.o, tekhex.o 1995-07-10 15:48:58 +00:00
Ian Lance Taylor d11d1fb673 * config/m68k-coff.mt (SELECT_VECS): Rename from SELECT_VECTORS.
Correct elements to be actual BFD vector names.
1995-07-10 15:12:33 +00:00
Ian Lance Taylor c7e76b5eea * coffgen.c (coff_renumber_symbols): Sort defined symbols that are
neither BSF_FUNCTION not BSF_NOT_AT_END just before undefined
	symbols.
	* coffcode.h (coff_slurp_symbol_table): Set BSF_FUNCTION as well
	as BSF_NOT_AT_END.
PR 5491.
1995-07-07 21:40:56 +00:00
Ken Raeburn 5375150754 clean up new config stuff for mostlyclean, distclean 1995-07-07 21:34:08 +00:00
Ian Lance Taylor 1d5d75e90a * elf32-i386.c (elf_i386_relocate_section): Revert May 24 patch.
Don't copy PC32 reloc against section into shared object.
PR 6997, 7381.
1995-07-06 19:40:51 +00:00
Ian Lance Taylor b10e9afbfd * Makefile.in: Rebuild dependencies.
(CFILES): Added elflink.c.
	(Makefile): Depend upon config.status, not configure.in.
	(config.status): New target; depend upon configure configure.host
	and config.bfd.
1995-07-06 18:39:19 +00:00
Ken Raeburn 0a8310aca8 * Makefile.in (BFD_LIBS): No, don't put elflink.o here.
* configure.in: Include it here whenever elf.o is specified.
1995-07-06 02:28:46 +00:00
Ken Raeburn ede4eed483 Added new files elflink.c, elflink.h, elfcore.h.
Moved some mostly size-independent stuff from elfcode.h to elf.c, adding a data
structure to elfcode.h with some misc data and callback functions.  Added a
pointer to that structure to the target back end data.  More work can be done
here.

Renamed generic elf routines (not cpu-specific stuff) to start with bfd_elf or
_bfd_elf.  Updated most call sites, sometimes defined some macros.

Moved some dynamic linking support code from m68k, sparc, i386 to common files,
using target back end flags to control behavior.  More work can probably be
done here too.

Moved core- and linker-support code out of elfcode.h to elf.c, elfcore.h,
elflink.h, or elflink.c.  Now elfcode.h contains only .o and executable
support, plus #includes of elfcore.h and elflink.h.  Much of the contents of
these other header files can probably still be moved from the .h files to the
.c files, to get compiled only once.

Cleaned up some "gcc -Wall" warnings regarding unused or uninitialized
variables, in generic and cpu-specific code.
1995-07-06 02:22:00 +00:00
Ian Lance Taylor 6c495350ae * elf32-mips.c (mips_elf_object_p): Unconditionally set
elf_bad_symtab, since sometimes the symbol table is messed up and
	the last symbol is global.
PR 6921.
1995-07-05 20:54:57 +00:00
Ian Lance Taylor a2546fcef7 * ecoff.c (_bfd_ecoff_bfd_is_local_label): New function.
* libecoff.h (_bfd_ecoff_bfd_is_local_label): Declare.
	* elf32-mips.c (mips_elf_is_local_label): New static function.
	(bfd_elf32_bfd_is_local_label): Define.
PR 6978.
1995-07-05 16:31:07 +00:00
Ian Lance Taylor 9525b61b1b * configure.in: Use $ac_config_sub, not $configsub.
* configure: Likewise.
1995-07-05 14:34:12 +00:00
Ken Raeburn b6113657eb don't define FASCIST_FDOPEN for i386aix host 1995-07-05 09:47:20 +00:00
Ken Raeburn 8c69366021 autoconfiscation 1995-07-05 09:32:47 +00:00
Ian Lance Taylor 27b1ec9478 * archive.c (_bfd_construct_extended_name_table): If
BFD_TRADITIONAL_FORMAT is set, limit the length of all file names
	to ar_max_namelen.
	(bfd_dont_truncate_arname): If BFD_TRADITIONAL_FORMAT is set, call
	bfd_bsd_truncate_arname.
PR 6888.
1995-07-04 20:22:43 +00:00
Ian Lance Taylor e510074320 * archive.c (_bfd_write_archive_contents): Revert June 1 change. 1995-07-04 18:07:47 +00:00
Ian Lance Taylor b5279eb6a9 * elfcode.h (NAME(bfd_elf,record_link_assignment)): Add provide
argument.
	* bfd-in.h (bfd_elf32_record_link_assignment): Update prototype.
	(bfd_elf64_record_link_assignment): Likewise.
	* bfd-in2.h: Rebuild.
PR 7164.
1995-07-04 17:43:05 +00:00
Ian Lance Taylor b176e1e92a * libelf.h (struct elf_link_hash_table): Add needed field. Remove
saw_needed field.
	* elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
	is an empty string, don't make a DT_NEEDED entry in the output
	file.  Record all DT_NEEDED entries found in input dynamic
	objects.
	(elf_link_output_extsym): Don't check saw_needed when issuing
	warnings.
	* elf.c (_bfd_elf_link_hash_table_init): Initialize needed, not
	saw_needed.
	(bfd_elf_get_needed_list): New function.
	* bfd-in.h (struct bfd_elf_link_needed_list): Define.
	(bfd_elf_get_needed_list): Define.
	* bfd-in2.h: Rebuild.
PR 7083.
1995-07-04 16:54:49 +00:00
Ian Lance Taylor 194fc93542 * ecoff.c (_bfd_ecoff_find_nearest_line): Also initialize
find_buffer and fdrtab_len fields of newly allocated
	find_line_info structure.
1995-07-04 16:23:58 +00:00
Jeff Law c40439a219 * som.c (hppa_som_gen_reloc_type): New argument "sym_diff",
nonzero when we're generating relocations for an expression
	using the difference of two symbols.  All callers changed.
	Handle difference of symbols for both R_HPPA and R_COMPLEX
	cases.
	(som_write_fixups): Handle R_COMP1, R_COMP2 and R_CODE_EXPR
	fixups.
1995-07-03 23:27:25 +00:00
Ian Lance Taylor 3a6eecd42f * ecoff.c (_bfd_ecoff_find_nearest_line): If we allocate
find_line_info, clear the fdrtab field.
1995-07-03 22:41:51 +00:00
Ian Lance Taylor 9fd10c34d0 x 1995-07-03 22:19:02 +00:00
Steve Chamberlain bd676d26ea Mon Jul 3 13:55:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
* config.bfd (win32): New configuration.
	* configure.host (pe): Changed to i386win32.
	* config/i386pe.mh: Deleted.
	* config/i386win32.mh: New file.
1995-07-03 21:11:15 +00:00
Ian Lance Taylor 3004a68c46 * elfcode.h (elf_link_add_object_symbols): Permit common and
indirect symbols in weakdefs BFD_ASSERT.
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Simplify
	BFD_ASSERT to permit some legal, but odd, cases.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
1995-07-03 17:57:25 +00:00
Ian Lance Taylor 30dc85f1b8 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Correct
BFD_ASSERT to handle __start_SECNAME symbols automatically defined
	by the linker.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
1995-07-03 17:05:56 +00:00
Ian Lance Taylor 8809320bb9 * Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add versados.o.
	(CFILES): Add pe-i386.c, pei-i386.c, and versados.c.
start-sanitize-arc
	(elf32-arc.o): New target.  This should be removed when
	elf32-arc.c can be added to CFILES.
end-sanitize-arc
1995-07-03 15:41:52 +00:00
Ian Lance Taylor be89267cfc * cofflink.c (_bfd_coff_generic_relocate_section): Cast base_file
to FILE * before using it.
	* stab-syms.c: Revert yesterday's patch.
1995-07-02 21:51:36 +00:00
Fred Fish 033d545b29 * stab-syms.c (stdio.h): Include prior to libaout.h, which
includes bfdlink.h, which now uses FILE.
1995-07-01 19:14:29 +00:00
Ken Raeburn 5cab016b72 removed unused elf_64_p field 1995-07-01 04:20:05 +00:00
Ken Raeburn b968e4f491 generate elf*-target.h from common elfxx-target.h source 1995-07-01 04:16:03 +00:00
Steve Chamberlain ece22cd04c Fri Jun 30 16:07:18 1995 Steve Chamberlain <sac@slash.cygnus.com>
* cofflink.c (_bfd_coff_generic_relocate_section): Compare
	the full text of .reloc or .edata section names.
1995-06-30 23:19:57 +00:00
Fred Fish d84d840f18 * cofflink.c (_bfd_coff_generic_relocate_section):
Remove extra '+'.
1995-06-30 22:53:13 +00:00
Steve Chamberlain 69b799dfd7 * coff-h8300.c (COFF_LONG_FILENAMES): Define. 1995-06-30 00:26:53 +00:00
Steve Chamberlain 89665c8562 Wed Jun 28 18:04:42 1995 Steve Chamberlain <sac@slash.cygnus.com>
* Makefile.in: versados.o is now conditionally built.
	* coffcode.h (add_data_entry): New function.
	(coff_write_object_contents): Clean up. Calculate
	data entries.
	* cofflink.c (_bfd_coff_generic_relocate_section):
	.reloc and .edata sections are IMAGE_BASED too.
	If there's a base_file then write out base information.
	* configure.host (i386-*-pe): New.
	* syms.c (coff_section_type): Only scan prefixes.
	* targets.c (bfd_target_vector): Versados is now conditionally
	built.
	* config/m68k-coff.mt: Build versados.o
	* hosts/i386pe.h: New file.
1995-06-29 01:17:58 +00:00
Jeff Law 6cb964d4ef * elf32-hpa.c (elf32_hppa_relocate_section): Close comment before
R_PARISC_DPREL21L handling.
1995-06-26 19:55:27 +00:00
Steve Chamberlain f4761bb244 * reloc.c (bfd_perform_relocation): Add case for -ve words. 1995-06-22 15:59:14 +00:00
Jeff Law 775d12552e * elf32-hppa.c (elf32_hppa_relocate_section): Don't try to apply a
relocation against an undefined symbols.
1995-06-21 19:14:39 +00:00
Steve Chamberlain 9eacc5c494 * versados.c: Second pass/rewrite. 1995-06-21 17:19:25 +00:00
Jeff Law 9fe4fade31 * elf32-hppa.c (elf32_hppa_size_stubs): Set the size of the stub
section if we get an error.
1995-06-18 03:39:23 +00:00
Jeff Law 9a6880571c * elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Don't mess
with the operands of an R_PARISC_DPREL21L relocation if the insn
        is not "addil <symbol>,%r27".
1995-06-17 15:43:06 +00:00
Stan Shebs 018dafca8a * bfd-in.h (NT_subsystem, NT_stack_heap): Declare but don't
define.
	* bfd-in2.h: Rebuilt.
	* bfd.c (NT_subsystem, NT_stack_heap): Define.
1995-06-16 22:08:26 +00:00
Jeff Law 31dabb6cc9 * elf32-hppa.c (elf32_hppa_bfd_link_link_relocate): Use the right
type field (there are two!) when checking to see if $global$ is
	defined.
1995-06-16 06:09:07 +00:00
Stan Shebs e0151f38e1 * bfd-in.h, bfd-in2.h (bfd_boolean): Rename bfd_true, bfd_false
to bfd_tttrue, bfd_fffalse so as not to conflict with functions.
	* coffswap.h (coff_swap_scnhdr_out): Remove version that was
	hacked for MPW C.
	* mpw-config.in: Set shell vars instead of pasting to makefile
	for each configuration, edit coffswap.h to make MPW C not choke.
	(i386-unknown-coff, sh-hitachi-hms): Recognize.
	* mpw-make.in (BFD_LIBS): Add versados.c.o.

	* versados.c (versados_scan): Properly cast results from bfd_alloc.
1995-06-15 21:18:17 +00:00
Jeff Law 080f1fcb8b * bfd-in.h (bfd_set_section_vma): Case true to a boolean.
(bfd_set_cacheable): Likewise.
	* bfd-in2.h: Rebuilt.
1995-06-12 18:12:00 +00:00
Jeff Law 6167a840e5 * targets.c: Add copy_private_symbol_data and link_split_section
to the target vector.
	* libbfd-in.h (_bfd_generic_bfd_copy_private_symbol_data): Define.
	(_bfd_nolink_bfd_link_split_section): Likewise.
	(bfd_generic_link_split_section): Declare.
	* syms.c (bfd_copy_private_symbol_data): Define.
	* linker.c (bf_link_split_section): Likewise.
	* som.c (som_bfd_copy_private_symbol_data): New function
	(som_bfd_link_split_section): Likewise.
	* All other targets updated with default versions of new routines.

	* Take out my braindamaged bfd_true/bfd_false changes from earlier
	today.  Replace with just:
	* bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if
	compiling with g++-2.6 or later.
	* bfd-in2.h: Rebuilt.
1995-06-10 00:05:51 +00:00
Jeff Law 9f28686c2b * bfd-in.h (bfd_true, bfd_false): Define these to true and false
if TRUE_FALSE_ALREADY_DEFINED is not defined.
        * bfd-in2.h: Rebuilt.
1995-06-09 19:40:00 +00:00
Steve Chamberlain d1ec549d7b * elfcode.h (elf_sort_hdrs): Rewrite to be symmetrical. 1995-06-09 19:21:47 +00:00
Jeff Law 3b1f83adad * bfd-in.h: (TRUE_FALSE_ALREADY_DEFINED): Define this if
compiling with g++-2.6 or later.
        (bfd_set_section_vma): Use bfd_true and bfd_false rather than
        true and false.
        (bfd_set_section_alignment): Likewise.
        (bfd_set_section_userdata): Likewise.
        (bfd_set_cacheable): Likewise.
        * bfd-in2.h: Rebuilt.
1995-06-09 19:16:33 +00:00
Steve Chamberlain e6304bc755 * versados.c (struct esd, get_4): Lint; use unsigned chars. 1995-06-09 15:24:09 +00:00
Steve Chamberlain 9ff2fb3d25 * coff-i960.c (coff_i960_relocate): Compare output section names
when converting for vxworks.
1995-06-09 14:57:17 +00:00
Ken Raeburn 0ef449dfad * elfcode.h (elf_fake_sections): Permit .scommon or COMMON sections as random
SHT_NOBITS sections, in case a linker script is strange.
1995-06-08 20:12:25 +00:00
Ken Raeburn 9e1b4d5750 Linker support for m68k-elf from Andreas Schwab
<schwab@issan.informatik.uni-dortmund.de>:

* elfcode.h (elf_link_add_object_symbols): Check for NULL when looping through
the symbol hashes.
(elf_bfd_final_link): When looking for _init and _fini don't use the symbol if
it is imported from another object.

* elf32-m68k.c: Relocation type changed from REL to RELA.  Regular and dynamic
linking support functions added, similar to other elf targets.
1995-06-05 07:04:51 +00:00
Ken Raeburn 1be0c30e50 change i386-gnu to elf 1995-06-05 06:36:11 +00:00
Steve Chamberlain c3c112fc84 *** empty log message *** 1995-06-03 02:26:19 +00:00
Steve Chamberlain fa29f969c1 Thu Jun 1 13:51:49 1995 Steve Chamberlain <sac@slash.cygnus.com>
* coffcode.h (sec_to_styp_flags, styp_to_sec_flags,
	coff_new_section_hook):  Any section that starts ".stab"
	is now marked as debugging.
1995-06-01 22:20:30 +00:00
Ken Raeburn db88e79a6a * archive.c (_bfd_write_archive_contents): Disable extended name table until it
can be made optional, so that native AR has half a chance on SunOS and HP/UX.
[PR binutils/6888]
1995-06-01 20:22:53 +00:00
Ken Raeburn 45fb9cd1ee * linker.c (_bfd_generic_link_output_symbols, case bfd_link_hash_indirect): Add
cast to correct pointer types.
1995-06-01 20:17:12 +00:00
Steve Chamberlain a3444c4926 Wed May 24 10:52:01 1995 Steve Chamberlain <sac@slash.cygnus.com>
pr ld/6997

	* elf32-i386.c (elf_i386_relocate_section): Give error
	message when linking to a shared reloc which isn't there.

Wed May 24 10:40:00 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	Support for ARM-PE.

	* Makefile.in, coffcode.h, config.bfd, configure.in, pe-arm.c,
	 pei-arm.c, reloc.c, targets.c, config/arm-pe.mt:
	 Support for ARM COFF/PE.
1995-05-24 18:14:23 +00:00
Jeff Law 58c56c60ca * Makefile.in: Install bfdlink.h too. 1995-05-23 22:01:20 +00:00
Steve Chamberlain 7cdedb42c1 * coffswap.h: (IMAGE_BASE): Define to 0 if not. 1995-05-19 17:01:27 +00:00
Ken Raeburn ff15324f63 Bunch of changes from Richard Earnshaw for generic bi-endian ARM aout targets.
Details in change logs.
1995-05-18 22:21:18 +00:00
Jim Kingdon 8558c4e316 * libbfd.c (bfd_stat): If bfd_cache_lookup returns an error,
return an error to the caller.  Call bfd_set_error on errors.
1995-05-18 05:20:37 +00:00
Steve Chamberlain b297038d0b Thu May 11 16:43:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
tekhex.c (first_phase): Understand type 0 symbols.
	(tekhex_write_object_contents): Fix typo in final record.

Thu May 11 16:43:14 1995  Steve Chamberlain  <sac@slash.cygnus.com>

	pr ld/6840

	* coff-i960.c (optcall_callback): don't try and optimize
	undefined refs.
	(coff_write_relocs): Search for broken relocs on the way
	out and fix them up.
	(coff_renumber_symbols): Calculate and return index of
	first undefined symbol.
	(coff_write_object_contents): Call coff_renumber_symbols
	and coff_write_relocs with the new args.
	* libcoff.h: (coff_renumber_symbols, coff_renumber_symbols):
	Modified prototypes.

Thu May 11 16:43:14 1995  Steve Chamberlain  <sac@slash.cygnus.com>
			  Tom Griest <griest@cs.yale.edu>

	Initial support for PE format.

	* Makefile.in, targets.c, configure.in, config.bfd:
	Add support for i386-*-winnt and i386-*-pe.
	* archive.c (do_slurp_coff_armap):  Understand NTPE format
	archives.
	(_bfd_slurp_extended_name_table): Turn \ in a filename
	into /.
	* bfd-in.h (bfd_link_subsystem, _bfd_link_stack_heap): New.
	* coff-i386.c  (howto_table): Conditionalize PCRELOFFSET.
	* coffcode.h (IMAGE_BASE): New.
	(coff_compute_section_file_positions): Throw away .junk
	sections for PE, align symbols.
	(coff_write_object_contents): Throw away .junk sections
	for PE. Remember info on .idata and .rsrc sections.
	Fill in the PE header.
	(coff_slurp_symbol_table): PE uses C_SECTION class.
	* cofflink.c (_bfd_coff_final_link): Keep PE info up to date.
	(_bfd_coff_generic_relocate_section): Cope with PE relocs.
	* coffswap.h (coff_swap_{aout/file/scn/sym}hdr_{in/out}):
	New code for PE headers.
1995-05-13 18:03:25 +00:00
Michael Meissner c7b44b0425 Add little endian PowerPC support. 1995-05-09 21:07:06 +00:00
Jason Molenda 0c3c868b2b * hosts/std-host.h: #include ansidecl.h 'cause PTR is used in
std-host.h.
1995-04-25 18:07:43 +00:00
Michael Meissner 423b654e17 Provide escape hatch for HAVE_PROCFS being defined. 1995-04-24 14:38:05 +00:00
Michael Meissner a96c03cca5 Do not continue processing unknown symbols. 1995-04-24 12:41:37 +00:00
Ken Raeburn 1f2025d9c1 Patches from H.J. Lu for Linux ELF core file support.
* elfcode.h (elf_core_file_matches_executable_p) [HAVE_PROCFS]: Use prpsinfo_t
instead of struct prpsinfo, for consistency.
* hosts/i386linux.h (HAVE_PROCFS): Define.
1995-04-21 16:53:57 +00:00
Steve Chamberlain 42aade756b Thu Apr 20 09:07:39 1995 Steve Chamberlain <sac@slash.cygnus.com>
* linker.c (link_action): Do the right thing when a undefined
	strong symbol appears after an undefined weak symbol.
1995-04-20 16:10:44 +00:00
Ken Raeburn 1b283698a7 * config.bfd: Add m68*-*-elf*.
* elf32-m68k.c: Filled out implementation, except for dynamic linking support.
* reloc.c (enum bfd_reloc_code_real): Added *_GOT_PCREL, *_GOTOFF, *_PLT_PCREL,
 *_PLTOFF, *_68K_* relocations for ELF.
* libbfd.h, bfd-in2.h: Regenerated.
1995-04-14 20:25:09 +00:00
Ken Raeburn 56e57a6be7 * aoutx.h (machine_type, case bfd_arch_mips): Treat R8000 like R6000 and R4000
for now.
1995-04-12 16:41:50 +00:00
Ian Lance Taylor e83f77457b Thu Mar 30 14:32:26 1995 H.J. Lu (hjl@nynexst.com)
* config.bfd: Change linux to default to elf.  Using
	i[345]86-*-linuxaout will build a library which defaults to a.out.
	* config/i386-laout.mt: Rename from old config/i386-linux.mt.
	* config/i386-linux.mt: Rename from old config/i386-lelf.mt.
	Comment out EXTRALIBS.
	* config/i386-lelf.mt: Remove.
1995-03-30 19:37:22 +00:00
Ian Lance Taylor 21e061e3f8 * coff-i960.c (coff_i960_relocate): Cache the section symbol in
the used_by_bfd field of the section, to avoid looping for each
	reloc.
PR 6638.
1995-03-29 18:20:33 +00:00
Ian Lance Taylor 75afa8846b * cpu-h8500.c (arch_info_struct): Change name from "H8/300" to
"h8300" for consistency with other cpu-* files.
1995-03-29 17:02:34 +00:00
Jeff Law 0cd908d2b9 Add entry I forgot to commit:
* som.c (som_set_reloc_info): Sign extend constants from
        R_DATA_OVERRIDE fixups.
        * libhppa.h (sign_extend): Renamed from sign_ext.  Fix.
        (low_sign_extend): Likewise.
1995-03-28 23:28:50 +00:00
Ian Lance Taylor 661cf37446 * bout.c (b_out_canonicalize_reloc): Handle SEC_CONSTRUCTOR
sections.
	(b_out_get_reloc_upper_bound): Likewise.
1995-03-28 20:27:35 +00:00
Ian Lance Taylor da7bfa91fb * linker.c (generic_link_add_symbol_list): Skip constructor
symbols which the main linker code did not do anything with.
	(_bfd_generic_link_output_symbols): Use udata.p if it is set,
	rather than looking the symbol up in the hash table.  Just pass
	through constructor symbols for which udata.p is not set.  If the
	linker defined the symbol, clear the constructor flag.
Fix -r for b.out file format when constructor symbols are defined.
1995-03-28 20:17:37 +00:00
Ian Lance Taylor 03788f0539 * elfcode.h (elf_bfd_link_add_symbols): An empty archive is OK. 1995-03-18 06:56:00 +00:00
Ian Lance Taylor 7fe4ed45e9 * elfcode.h (elf_link_add_object_symbols): Check whether a dynamic
object has already been included, and ignore it the second time.
1995-03-17 16:51:36 +00:00
Ken Raeburn 75236adbd2 stab-syms.c: Rewrite to improve performance. Shaves about 5% off gprof run
time, according to gprof itself, on i486-netbsd.
1995-03-14 11:02:19 +00:00
Ian Lance Taylor d042121899 * elfcode.h (write_relocs): Make static. Use PTR argument as a
pointer to a boolean variable set to true if something fails.
	Cast to PTR rather than void *.
	(sym_is_global): Rewrite for clarity.
	(map_program_segments): If the program header size is too small,
	call _bfd_error_handler and return failure rather than aborting.
	(NAME(bfd_elf,write_object_contents)): Pass boolean variable when
	calling write_relocs.
	(elf_symbol_from_bfd_symbol): Use BFD_ASSERT rather than abort.
	(struct elf_info_failed): Define.
	(NAME(bfd_elf,size_dynamic_sections)): Declare variables in inner
	blocks.  Pass elf_info_failed structure when calling
	elf_export_symbol and elf_adjust_dynamic_symbol.
	(elf_export_symbol): Treat data argument as elf_info_failed rather
	than bfd_link_info.  Set failed field on error.
	(elf_adjust_dynamic_symbol): Likewise.
	(struct elf_finfo_failed): Define.
	(elf_bfd_final_link): Pass elf_finfo_failed structure when calling
	elf_link_output_extsym.  Use BFD_ASSERT rather than abort.
	(elf_link_output_extsym): Treat data argument as elf_finfo_failed
	rather than elf_final_link_info.  Set failed field on error.
	(elf_link_input_bfd): Use BFD_ASSERT rather than abort.
	(elf_reloc_link_order): Likewise.
1995-03-13 21:55:44 +00:00
Ian Lance Taylor f786a73f08 * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Only write
out PLTRELSZ, PLTREL and JMPREL relocs if there is a .rela.plt
	section.  Solaris 2.4 apparently does not handle empty reloc
	information correctly.
1995-03-13 20:39:36 +00:00
Ian Lance Taylor c4299ed83a * archive.c (bsd_write_armap): Cast getuid and getgid results to
long, and print with %ld.
1995-03-13 18:49:44 +00:00
David Edelsohn 890b53ef65 * elf32-arc.c (elf_arc_howto_table): Relocs with implicit addends
don't work too well with zero src_masks.  Correct values.
1995-03-12 13:26:57 +00:00
Ian Lance Taylor 6a107a2838 * aoutx.h (translate_to_native_sym_flags): Always use the output
section if it is not NULL.
PR 6477.
1995-03-10 21:43:02 +00:00
Ian Lance Taylor 99514eec14 * coffswap.h (coff_swap_scnhdr_out): If the line number count or
the reloc count does not fit, print an error and return 0.
	* coffcode.h (coff_write_object_contents): Check return value of
	coff_swap_scnhdr_out.
	* ecoff.c (_bfd_ecoff_write_object_contents): Check return value
	of bfd_coff_swap_scnhdr_out.
1995-03-09 22:58:14 +00:00
Ian Lance Taylor 0318ed3109 * bfd.c: Include <stdarg.h> or <varargs.h>, depending upon
ANSI_PROTOTYPES.
	(bfd_error_handler_type): New global type.
	(_bfd_error_program_name): New static variable.
	(_bfd_default_error_handler): New static function.
	(_bfd_error_handler): New BFD private global variable.
	(bfd_set_error_handler): New globally visible function.
	(bfd_set_error_program_name): New globally visible function.
	* libbfd-in.h (_bfd_error_handler): Declare.
	* bfd-in2.h, libbfd.h: Rebuild.
1995-03-09 22:16:40 +00:00
Ian Lance Taylor 2f6754271f * aoutx.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter,
and use it instead of bfd_get_symcount.  Check r_index after
	setting r_extern based on whether this is a base relative reloc.
	(NAME(aout,swap_std_reloc_IN)): Add symcount parameter, and use it
	instead of bfd_get_symcount.
	(NAME(aout,slurp_reloc_table)): Pass bfd_get_symcount to reloc
	swap routines.
	* libaout.h (NAME(aout,swap_ext_reloc_in)): Add symcount parameter
	to declaration.
	(NAME(aout,swap_std_reloc_in)): Likewise.
	* sunos.c (sunos_canonicalize_dynamic_reloc): Pass
	info->dynsym_count to reloc swap routines.
	* aout-ns32k.c (MY_swap_std_reloc_in): Add symcount parameter.
	* hp300hpux.c (MY(swap_std_reloc_in)): Likewise.
	(MY(slurp_reloc_table)): Pass bfd_get_symcount to reloc swap
	routine.
	* i386lynx.c (NAME(lynx,swap_ext_reloc_in)): Add symcount
	parameter.
	(NAME(lynx,swap_std_reloc_in)): Likewise.
	(NAME(lynx,slurp_reloc_table)): Pass bfd_get_symcount to reloc
	swap routines.
1995-03-09 20:14:04 +00:00
Ian Lance Taylor 0f6020cb02 * cpu-mips.c (arch_info_struct): Add mips:8000 entry. 1995-03-08 20:47:26 +00:00
Ian Lance Taylor a48769bfbf * elfcode.h (swap_out_syms): Mark an undefined BSF_WEAK symbol as
STB_WEAK rather than STB_GLOBAL.
1995-03-08 05:56:53 +00:00
David Edelsohn 917666603b * configure.in (SELECT_VECS): Split bfd_elf32_arc_vec into big/little.
* targets.c (bfd_target_vector): Likewise.
	* elf32-arc.c (TARGET_BIG_SYM): Define.
	(TARGET_BIG_NAME): Define.
	* config/arc-elf.mt (DEFAULT_VECTOR): Set to bfd_elf32_littlearc_vec.
	(SELECT_VECS): Add bfd_elf32_bigarc_vec.
1995-03-08 04:41:13 +00:00
Ian Lance Taylor f135c69272 * coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_adjust_symndx.
	(bfd_coff_adjust_symndx): Define.
	(coff_adjust_symndx): Define as NULL if not already defined.
	(bfd_coff_std_swap_table): Initialize new field to
	coff_adjust_symndx.
	* cofflink.c (coff_link_input_bfd): Call coff_adjust_symndx if it
	is defined.
	* coff-a29k.c (coff_a29k_adjust_symndx): New static function.
	(coff_adjust_symndx): Define before including coffcode.h.
	* libcoff.h: Rebuild.
1995-03-07 19:56:31 +00:00
Ian Lance Taylor 597e3d58ba * format.c (bfd_check_format_matches): Skip binary_vec when
searching through bfd_target_vector.
1995-03-07 19:32:39 +00:00
Ian Lance Taylor d211786089 * elfcode.h (elf_sort_hdrs): Check SHT_NOBITS before checking
sh_size.
1995-03-07 17:25:07 +00:00
David Edelsohn df168c35f9 * elfcode.h (elf_sort_hdrs): Keep SHT_NOBITS sections after
!SHT_NOBITS ones.
1995-03-07 07:34:21 +00:00
Jeff Law 0f4161ddd0 * cpu-hppa.c (arch_info_struct): Support both PA1.0 and PA1.1
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.
1995-03-06 17:00:18 +00:00
Ian Lance Taylor 773033d2d2 * aoutx.h (NAME(aout,set_section_contents)): Double check that the
caller is writing to a valid section.
PR 5996 cleanup.
1995-03-02 21:00:39 +00:00
Ian Lance Taylor c9f92c114b Thu Mar 2 14:37:57 1995 Bryan Ford <baford@cs.utah.edu>
* 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.
1995-03-02 20:04:07 +00:00
Michael Meissner 3598343227 Warn if GOT16 overflows. 1995-03-01 22:34:34 +00:00
Jason Molenda 8760f77caf Wed Mar 1 11:52:55 1995 Jason Molenda <crash@phydeaux.cygnus.com>
* configure.host: Recognize powerpc-*-aix*.

for sludge.cygnus.com.
1995-03-01 19:55:05 +00:00
Ian Lance Taylor 46cde09506 * coff-i960.c (COFF_PAGE_SIZE): Define. 1995-03-01 18:06:13 +00:00
Ian Lance Taylor d842ea0b17 * configure.in: Rewrite output of TDEFAULTS to avoid relying on
semantics of single quotes in parameter substitution.
1995-03-01 16:58:57 +00:00
Ian Lance Taylor afbc1a16b3 * elfcode.h (elf_sort_hdrs): Sort empty sections before non-empty
sections, if they have the same VMA.
1995-02-28 19:33:51 +00:00
Ian Lance Taylor c47c90f441 * config.bfd (i[345]86-*-linuxelf*): New target. Use i386-lelf.
(i[345]86-*-gnuelf*): New target.  Use i386-gelf.
	* config/i386-lelf.mt: New file.
	* config/i386-gelf.mt: New file.
1995-02-28 17:54:37 +00:00
Kung Hsu 490d89a787 * config.bfd: add a29k-*-vxworks configuration. 1995-02-27 20:59:54 +00:00
Ian Lance Taylor 19a681380e * bout.c (b_out_slurp_reloc_table): Don't return an error if asked
for relocations for the .bss section.
PR 6377.
1995-02-22 02:20:51 +00:00
Jeff Law ee4d24c613 * som.c (som_bfd_ar_write_symbol_stuff): Handle objects with odd
lengths.
1995-02-21 22:15:19 +00:00
Jeff Law 312eb91b73 Add missed log entry for som.c. 1995-02-21 05:12:58 +00:00
Ian Lance Taylor ebb6075d2a * hosts/sysv4.h: Include <unistd.h>, <stdlib.h>, and <time.h>.
Only define SEEK_SET and SEEK_CUR if they are not already defined.
	Remove all external function declarations.
1995-02-17 18:35:40 +00:00
Michael Meissner eaba51690a Make GOT relocs offset by 32768, which allows the table to double in size. 1995-02-17 17:41:08 +00:00
Ian Lance Taylor cd0456a208 * syms.c (bfd_decode_symclass): Return 'W' for a weak symbol. 1995-02-17 17:26:48 +00:00
Ian Lance Taylor 6936966a62 * coffgen.c (coff_real_object_p): Set start address and flags
before calling coff_mkobject_hook.  Restore them on failure.
	* ecoff.c (_bfd_ecoff_mkobject_hook): If not ECOFF_AOUT_ZMAGIC,
	clear D_PAGED.
PR 6341.
1995-02-17 16:57:18 +00:00
Ian Lance Taylor 6dc6a81a7c * coffgen.c: Reindented. 1995-02-17 16:46:52 +00:00
David Edelsohn b596295f13 * reloc.c (bfd_perform_relocation): Don't use bitpos in overflow calculations.
(bfd_install_relocation): Likewise.
1995-02-16 22:40:19 +00:00
Ian Lance Taylor fe46552d89 * hosts/std-host.h: Remove all function declarations which return
int or void, except the one for free.
1995-02-16 18:23:57 +00:00
Michael Meissner bcbe2c719c Fix powerpc PC relative reloc & add some 16 bit relocs. 1995-02-15 19:57:56 +00:00
Michael Meissner 8c9bfee312 Reconize old versions of the PowerPC machine code (EM_PPC_OLD and EM_CYGNUS_POWERPC). 1995-02-14 19:20:16 +00:00
Ian Lance Taylor aed592693f * aoutf1.h (MACHTYPE_OK): Don't define if already defined. Don't
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.
1995-02-14 17:49:30 +00:00
Ian Lance Taylor 1f9327360d * aoutx.h (NAME(aout,swap_ext_reloc_in)): Don't return a pointer
to garbage if the symbol index is out of range.
	(NAME(aout,swap_std_reloc_in)): Likewise.
1995-02-14 04:27:39 +00:00
Ian Lance Taylor 405affccae Revert this patch, since it breaks linking PIC code with no dynamic
objects:
	* elfcode.h (elf_bfd_final_link): Add assertion to make sure that
	dynamic and dynobj are in synch.
1995-02-13 19:04:05 +00:00
David Edelsohn 866da18e1f * archures (bfd_mach_arc_base): #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.
1995-02-10 01:40:36 +00:00
Ken Raeburn 10bf6ddf08 * Makefile.in (BFD32_BACKENDS): Add i386msdos.o. 1995-02-10 00:17:32 +00:00
Ian Lance Taylor c93e959c81 * i386linux.c (NEEDS_SHRLIB): Define.
(linux_tally_symbols): Crash if a NEEDS_SHRLIB symbol is
	undefined.  From hjl@nynexst.com (H.J. Lu).
1995-02-09 17:19:53 +00:00
Ian Lance Taylor 62e5acdce9 * elfcode.h (elf_bfd_final_link): Add assertion to make sure that
dynamic and dynobj are in synch.
1995-02-09 17:03:47 +00:00
Ian Lance Taylor 6581a70a9a * linker.c (generic_link_check_archive_element): Allocate common
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.
1995-02-08 22:57:48 +00:00
David Edelsohn 121a846514 elfcode.h (elf_sort_hdrs): Put SHT_NOBITS sections after !SHT_NOBITS. 1995-02-08 20:58:01 +00:00
Jeff Law 28860f46fa * som.c (som_bfd_find_nearest_line): Just return false, don't
abort.
1995-02-07 23:29:08 +00:00
Ken Raeburn 2559e01429 clean up mechanics of mosberger-tang's changes 1995-02-07 20:06:28 +00:00
Ian Lance Taylor 95b0f14bce * ecoffswap.h (ecoff_swap_pdr_in): Zero out intern before setting
any of the fields.
1995-02-07 19:22:43 +00:00
Ken Raeburn 97d5a14949 ecoff gprof related fixes & improvements from David Mosberger-Tang 1995-02-07 01:06:25 +00:00
Ian Lance Taylor 5947417403 * libelf.h (struct elf_link_hash_table): Add saw_needed field.
* 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.
1995-02-06 23:23:37 +00:00
Ian Lance Taylor 0bef7f7266 * libelf.h (ELF_LINK_HASH_DEFINED_WEAK): Don't define.
* elfcode.h (elf_link_add_object_symbols): Don't clear or set
	ELF_LINK_HASH_DEFINED_WEAK.
	(elf_link_output_extsym): Don't check ELF_LINK_HASH_DEFINED_WEAK.
1995-02-06 21:34:44 +00:00
Ian Lance Taylor 6c97aedf26 Distinguish a weak defined symbol from a regular defined symbol.
* linker.c (enum link_action): Add DEFW.
	(link_action): Add bfd_link_hash_defweak column.
	(_bfd_generic_link_add_one_symbol): Add DEFW case.  Handle
	bfd_link_hash_defweak in a few other cases.
	* Many files (bfd_link_hash_undefweak): Renamed from
	bfd_link_hash_weak.
	* aoutx.h (aout_link_write_symbols): Handle bfd_link_hash_defweak.
	(aout_link_write_other_symbol): Likewise.
	(aout_link_input_section_std): Likewise.
	(aout_link_input_section_ext): Likewise.
	* bout.c (get_value): Likewise.
	* coff-a29k.c (coff_a29k_relocate_section): Likewise.
	* coff-alpha.c (alpha_convert_external_reloc): Likewise.
	(alpha_relocate_section): Likewise.
	* coff-mips.c (mips_relocate_section): Likewise.
	(mips_relax_section): Likewise.
	(bfd_mips_ecoff_create_embedded_relocs): Likewise.
	* cofflink.c (coff_write_global_sym): Likewise.
	(_bfd_coff_generic_relocate_section): Likewise.
	* ecoff.c (ecoff_link_add_externals): Likewise.
	(ecoff_link_write_external): LIkewise.
	* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
	(elf32_hppa_size_stubs): Likewise.
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	* elf32-mips.c (mips_elf_output_extsym): Likewise.
	(mips_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
	(elf32_sparc_relocate_section): Likewise.
	* elfcode.h (elf_link_add_object_symbols): Likewise.
	(elf_adjust_dynamic_symbol): Likewise.
	(elf_bfd_final_link): Likewise.
	(elf_link_output_extsym): Likewise.
	* i386linux.c (linux_add_one_symbol): Likewise.
	(linux_tally_symbols): Likewise.
	(linux_finish_dynamic_link): Likewise.
	* linker.c (_bfd_generic_link_output_symbols): Likewise.
	(set_symbol_from_hash): Likewise.
	* reloc16.c (bfd_coff_reloc16_get_value): Likewise.
	(bfd_perform_slip): Likewise.
	* sunos.c (sunos_add_one_symbol): Likewise.
	(sunos_scan_std_relocs): Likewise.
	(sunos_scan_ext_relocs): Likewise.
	(sunos_scan_dynamic_symbol): Likewise.
	(sunos_write_dynamic_symbol): Likewise.
1995-02-06 20:01:08 +00:00
Ken Raeburn 5dc8db4897 msdos .exe file support from bryan ford 1995-02-06 08:31:27 +00:00
Jeff Law 9ea5de84ab * som.c (som_object_setup): More heruistics to detect the
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.
1995-02-01 08:35:40 +00:00
David Edelsohn ef6fb95dea * libelf.h (struct elf_obj_tdata): New member program_header_size.
* 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.
1995-02-01 05:56:53 +00:00
Ian Lance Taylor 5945db2997 * elfcode.h (map_program_segments): Add sorted_hdrs parameter.
Search through it rather than through unsorted section headers.
	(assign_file_positions_except_relocs): Pass sorted_hdrs to
	map_program_segments.
1995-01-31 20:55:25 +00:00
Ken Raeburn 3e46110757 * ecoff.c (_bfd_ecoff_find_nearest_line): Fix problems in range checking.
Expect argument OFFSET to be section-relative.  From David Mosberger-Tang,
davidm@piston.cs.arizona.edu.
1995-01-31 03:57:31 +00:00
Jeff Law 8bc3e02c9d * som.c (compare_subspaces): New function to sort subspaces by
their location in the object file.
	(setup_sections): When computing the index for each subspace,
	handle case where setup_sections reads the subspaces in a
	different order that they appear in the object file.
	(som_is_space): Also examine the output section for the containing
	section.
	(som_is_subspace, som_is_container): Likewise.
	(som_begin_writing): Don't prepare or write fixups here.  When
	writing the symbol strings, use the unsorted symbol table.
	(som_write_object_contents): Don't write the symbol table here.
	(som_finish_writing): Prepare and write the fixups here.  Likewise
	for the symbol table.
	(som_bfd_derive_misc_symbol_info): Undefined symbols always have
	type SS_UNSAT regardless of BSF_EXPORT.
	(som_set_reloc_info): Unpack and attach argument location
	information for R_PCREL_CALL and R_ABS_CALL relocations.
1995-01-29 06:37:35 +00:00
Jeff Law fede999213 * som.c (som_object_setup): New heuristic to determine if the
entry and flags fields are switched in the exec header.
1995-01-28 19:50:52 +00:00
Ian Lance Taylor cd9dba7b37 * elfcode.h (elf_link_add_object_symbols): Use *sym_hash instead
of h if we might not be doing an ELF link.
1995-01-28 05:17:04 +00:00
Ian Lance Taylor cea133af7f * elf32-mips.c (mips_elf_final_link): If the size of an input
.reginfo section is zero, force it to the correct size, since the
	linker emulation code may have clobbered it.
1995-01-27 21:27:33 +00:00
Ian Lance Taylor 6977046f0f * elfcode.h (elf_sort_hdrs): Correct SHF_ALLOC test.
(assign_file_positions_except_relocs): Free sorted_hdrs.
1995-01-27 21:24:28 +00:00
Steve Chamberlain 7896128dfa * srec.c (srec_set_section_contents): Fix off by
one end address calculation.
1995-01-27 16:41:11 +00:00
Ian Lance Taylor 4b412ed189 * elfcode.h (elf_link_add_object_symbols): Only examine weakdef if
we are using an ELF hash table.
1995-01-26 21:48:14 +00:00
Steve Chamberlain 61a914c923 * config.bfd: (m68*-est-coff): New configuration. 1995-01-26 17:37:31 +00:00
Ian Lance Taylor e83e94effd * aoutx.h (NAME(aout,some_aout_object_p)): Always set EXEC_P if
the start address is in the .text section, even if STAT_FOR_EXEC
	is set.  Just use STAT_FOR_EXEC as an additional test.
1995-01-26 16:43:54 +00:00
Michael Meissner c6d729b375 Add new relocs for PowerPC Elf support.
Add eabi support.
1995-01-26 16:31:24 +00:00
Ian Lance Taylor e079cfe890 * coff-sh.c (CALC_ADDEND): Don't define.
(coff_sh_relocate_section): Remove.
	(coff_relocate_section): Use _bfd_coff_generic_relocate_section.
1995-01-26 04:27:50 +00:00
Ian Lance Taylor 16fe8950ad * elf32-mips.c (mips_elf_output_extsym): Set the value of the
ECOFF symbol from the hash table entry.
1995-01-24 19:27:35 +00:00
Steve Chamberlain c525c3afcb Mon Jan 23 14:53:35 1995 Steve Chamberlain <sac@splat>
* coff-sh.c (coff_sh_relocate_section):  Don't subtract
	vma twice.
1995-01-23 22:57:30 +00:00
Ian Lance Taylor 6e3acf74d0 * coff-sh.c (sh_reloc): Don't ignore the previous contents of an
R_SH_IMM32 reloc.
PR 6215.
1995-01-23 22:32:18 +00:00
Ian Lance Taylor 6e7f3f077b x 1995-01-23 19:01:41 +00:00
Ian Lance Taylor 123bfaa5ec * opncls.c (bfd_openstreamr): Call bfd_cache_init. 1995-01-23 18:35:07 +00:00
Ian Lance Taylor 04dc16b76b * sunos.c (sunos_add_one_symbol): Only set the sunos specific
fields if we are doing a sunos link.
1995-01-20 16:57:34 +00:00
Ian Lance Taylor d01a0278a0 * bfd-in.h (bfd_byte, reloc_howto_type): Define here, not...
* reloc.c (bfd_byte, reloc_howto_type): here.
	* Changed all occurrences of ``const struct reloc_howto_struct''
	to be ``reloc_howto_type'' instead.
	* bfd-in2.h, libbfd.h, libcoff.h: Rebuilt.
Avoids problems with the native Irix 5 compiler.
1995-01-17 21:16:53 +00:00
Ian Lance Taylor 8a51b06cf6 * opncls.c (bfd_openstreamr): New function.
* bfd-in2.h: Rebuilt.
1995-01-17 19:26:56 +00:00
Ian Lance Taylor 6a5848cd10 * elf32-mips.c (enum reloc_type): Define new relocs used on Irix.
(elf_mips_howto_table): Add entries for new relocs.
	(mips_elf_section_from_shdr): Handle SHT_MIPS_MSYM,
	SHT_MIPS_DWARF, and SHT_MIPS_EVENTS.
	(mips_elf_fake_sections): Handle sections named .msym, .debug_*
	and .MIPS.events.*.
1995-01-17 15:55:55 +00:00
Steve Chamberlain c21b376fc6 * archures.c, Makefile.in, targets.c, bfd-in2.h, coffcode.h,
config.bfd, configure.in, config/w65.mt: Initial support for the W65.
1995-01-16 05:39:06 +00:00
Steve Chamberlain 9560e662d0 Sun Jan 15 13:57:45 1995 Steve Chamberlain <sac@splat>
* opncls.c (bfd_fdopenr): Configure for WIN32.
1995-01-15 22:04:02 +00:00
Ken Raeburn c3fcc07805 Makefile changes for arc, rce, diststuff.
Const fixes and hex_value changes to various files.
1995-01-12 21:46:17 +00:00
Peter Schauer b69fe36371 * hosts/symmetry.h: Redefine `shared' to enable compilation
with the native Dynix cc compiler.
	* i386dynix.c:  Include aoutx.h instead of using routines
	from aout32.c.
1995-01-12 18:33:52 +00:00
Ken Raeburn 9c84b228d8 Forgot an entry in last checkin:
* ecoff.c (ecoff_type_to_string): Local variable `buffer1' doesn't
	need to be static.
1995-01-12 02:44:45 +00:00
Ken Raeburn 82b1edf7b9 Change "reloc_howto_type" typedef to be "const", since all uses of it are (or
should be) anyways.
1995-01-12 02:41:04 +00:00
Ian Lance Taylor 788d94361f * sunos.c (sunos_add_one_symbol): Don't core dump if a multiple
definition of an absolute symbol is encountered.
1995-01-11 19:42:28 +00:00
Ian Lance Taylor 040c913e18 * linker.c (_bfd_generic_link_add_one_symbol): Ignore
redefinitions of an absolute symbol to the same value.
PR 6159.
1995-01-11 19:38:06 +00:00
Ian Lance Taylor f78b396350 * elfcode.h (elf_link_add_object_symbols): It's reasonable for no
flags to be set, so don't insist otherwise.
1995-01-09 20:52:59 +00:00
Ian Lance Taylor 42cf6d7950 * elfcode.h (elf_slurp_symbol_table): Don't set BSF_GLOBAL for an
undefined or common symbol.
	(elf_link_add_object_symbols): Likewise.
1995-01-06 21:50:28 +00:00
Jeff Law eb57c77670 * som.c (bfd_section_from_som_symbol): Only return sections which
correspond to subspaces.
1995-01-05 00:34:07 +00:00
Jeff Law 1b56797098 * som.c (som_begin_writing): Don't forget to bump the
total_subspaces when writing the unloadable subspaces.
1995-01-04 21:15:42 +00:00
Jeff Law c3a1888801 * som.c (som_write_fixups): Use SEC_HAS_CONTENTS to identify
bss-like sections.
	(som_get_section_contents): Likewise.
	(som_set_section_contents): Likewise.
1994-12-29 03:56:20 +00:00
Ken Raeburn 8675437ee1 coffgen.c changes checked in last tuesday -- forgot to check in the log entry 1994-12-27 21:41:33 +00:00
Jeff Law 5faa346b63 * som.c (setup_sections): Turn off SEC_HAS_CONTENTS for bss-like
sections.
1994-12-27 21:05:10 +00:00
Ian Lance Taylor f10d31aa32 * i386linux.c (linux_add_one_symbol): Don't do anything Linux
specific if this is not a Linux hash table.  From Eric Youngdale
	<eric@aib.com>.
1994-12-21 00:46:03 +00:00
Ian Lance Taylor 182b9e9f52 Patches from kkojima@mix.or.jp (Kazumoto Kojima):
* mipsbsd.c (mips_howto_table_ext): Change sizes of memory relocs
	apply to from two bytes to four bytes.
	* MY(reloc_howto_type_lookup): Handle BFD_RELOC_CTOR.
1994-12-21 00:36:26 +00:00
Ken Raeburn 85200ebce9 * elfcode.h (assign_file_positions_except_relocs): In assertion, force all
values to the same type.
1994-12-20 20:31:36 +00:00
Steve Chamberlain e7d9ee909c * coff-h8300.c (howto_table): All relocs get a special function.
(special): Never do anything when linking -r.
1994-12-20 19:13:55 +00:00
Ian Lance Taylor 9b09a01580 * elf32-i386.c (elf_i386_relocate_section): Correct and expand the
list of cases for which relocation need not be computed.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1994-12-20 19:07:11 +00:00
Jeff Law 5874427fb9 * elf32-hppa.c (elf32_hppa_read_symext_info): Delete do_locals and
do_globals arguments, always read symbol extension information for
	globals and locals.  All callers changed.
	(elf32_hppa_size_stubs): Rework to only read symbol extension
	information once for each input bfd.  Another 10% improvement in
	linker performance.
1994-12-20 06:17:09 +00:00
Ian Lance Taylor 963747b358 * elfcode.h (elf_section_from_bfd_section): Check
bfd_is_abs_section, etc., only after checking for the section in
	the BFD and after calling the backend routine.
1994-12-16 17:30:08 +00:00
Ian Lance Taylor 2f19e36d97 * elfcode.h (elf_map_symbols): Only use section symbols whose
value is the start of the section, checking output_offset when
	using output_section.  When creating a new symbol, set the value
	to 0, since BFD symbol values are section relative.
1994-12-15 04:41:39 +00:00
Ian Lance Taylor f5202354c3 * elfcode.h (elf_map_symbols): Only use section symbols whose
value is the start of the section.
1994-12-15 01:23:40 +00:00
Ian Lance Taylor 1088e1483c * cpu-z8k.c (arch_info_struct): Make z8002 the default
architecture.
1994-12-13 18:33:05 +00:00
Ian Lance Taylor a0020ea1a4 * aoutx.h (NAME(aout,link_add_symbols)): Similar change if the
first object is not an a.out object.
1994-12-09 22:18:49 +00:00
Ian Lance Taylor 4c124191db * elfcode.h (elf_bfd_link_add_symbols): If the first object in the
archive is not an ELF object, pass the archive to the add_symbols
	entry point appropriate for the first object.  From Eric Youngdale
	<eric@aib.com>.
1994-12-09 17:57:47 +00:00
Ian Lance Taylor aeec67f08c * elf32-i386.c (elf_i386_relocate_section): Don't compute
relocation in cases where we won't use it.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1994-12-09 17:44:45 +00:00
Ken Raeburn f8368802df * pc532-mach.c (NAME): Define to use ns32kaout prefix.
* ns32knetbsd.c (NAME): Ditto.
(ns32kaout_32_get_section_contents): Define to standard aout-32 version.
1994-12-08 20:47:46 +00:00
Ian Lance Taylor 729850916c * coff-sh.c: Use _bfd_dummy_target instead of no_archive. 1994-11-30 19:14:23 +00:00
David Edelsohn 20e5867807 * config/arc-elf.mt: New file. 1994-11-30 01:35:40 +00:00
David Edelsohn 05cedcf6c1 Initial ARC support. 1994-11-30 01:29:26 +00:00
J.T. Conklin 5b0f1ab5f1 * config.bfd (i[345]86-*-freebsd*): Use i386-bsd as bfd_name.
* configure.host (i[345]86-*-freebsd*): Use i386bsd as my_host.
CVSn:
1994-11-29 22:24:39 +00:00
J.T. Conklin 382229dc12 * config/m68k-nbsd.mt (DEFAULT_VECTOR): set to m68knetbsd_vec.
* Makefile.in: Rebuilt dependancies.
  (CFILES): Added m68knetbsd.c.
  (HFILES): Added netbsd.h.
1994-11-28 23:43:02 +00:00
Steve Chamberlain 7a1d45675e * coff-sh.c (shlcoff_vec): New target vector.
(no_archive): New function.
	* coffcode.h (coff_set_arch_mach_hook, coff_set_flags): Handle
	little endian SH.
	* configure.in: Handle shl.
	* targets.c (bfd_target_vector): Add shlcoff_vec.
	* config/sh-coff.mt (SELECT_VECS): Handle shl_coff_vec.
1994-11-24 03:33:48 +00:00
Jeff Law 150bd9910b * elf32-hppa.c (elf32_hppa_bfd_final_link_relocate): Do not add
input_section->vma to the relocation's offset.
1994-11-23 06:36:43 +00:00
Ian Lance Taylor ba3eb9c013 * srec.c (srec_get_reloc_upper_bound): Define.
(srec_canonicalize_reloc): Define.
	(srec_bfd_reloc_type_lookup): Define.
	(srec_vec, symbolsrec_vec): Use BFD_JUMP_TABLE_RELOCS (srec).
PR 5975.
1994-11-21 17:42:04 +00:00
Peter Schauer ae4471f628 * configure.host (i[345]86-*-solaris*): Use solaris2 to
enable extraction of procfs info from core file for GDB.
1994-11-19 11:14:01 +00:00
Ken Raeburn fca2b81b88 * reloc.c (bfd_reloc_code_type): Add new value BFD_RELOC_12_PCREL.
* bfd-in2.h, libbfd.h: Rebuilt.
1994-11-17 22:46:22 +00:00
Jeff Law b68a74d193 * bfd/elf32-hppa.c (elf32_hppa_bfd_final_link_relocated): Use the
vma from the output_section containing $global$ when computing
        global_vlaue.
1994-11-17 20:14:19 +00:00
Ian Lance Taylor cf9557f5ea * archive.c (_bfd_write_archive_contents): Round up the archive
header size of the extended name table to an even number.
1994-11-17 19:32:06 +00:00
Ken Raeburn f6f350fe5b * coff-sh.c: Deleted some code that was commented out or inside "#if 0".
(COFF_LONG_FILENAMES): Define.

* cpu-sh.c (arch_info_struct): Convert name to lowercase, for consistency with
other architectures.
1994-11-16 22:28:22 +00:00
Ian Lance Taylor e6fb0df7c0 * elfcode.h (elf_export_symbol): Also export symbols which are
referenced by a regular file.
1994-11-13 04:51:53 +00:00
Ian Lance Taylor 11bb5591d6 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add
export_dynamic argument, and handle it.
	(elf_export_symbol): New function.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf64_size_dynamic_sections): Update declaration.
	* bfd-in2.h: Rebuild.
1994-11-12 20:55:33 +00:00
Jeff Law 63ba709f37 * hpux-core.c (hpux_core_struct): Delete handles for the
data, reg and stack sections.  They're never used.  Delete
	accessor macros.
	(make_bfd_asection): Use bfd_make_section_anyway since debugging
	cores from dynamic executables may have several sections with the
	same logical name.
	(hpux_core_core_file_p): Don't save handles to data, reg and
	stack sections.  Handle CORE_TEXT, CORE_MMF and CORE_SHM.
1994-11-11 17:40:27 +00:00
Ian Lance Taylor 0631def34c * bout.c (callj_callback): Add new argument shrinking. Change all
callers.  Handle relocs against section symbols correctly.  If not
	shrinking, don't subtract out dstidx; the subtraction is already
	in the object file.
PR 5883.
1994-11-08 18:05:43 +00:00
Ken Raeburn 30d1f88c98 configure.in: fix ns32knetbsd_vec -> pc532netbsd_vec 1994-11-04 00:02:18 +00:00
Ken Raeburn 9e6473f52a aoutx.h fixes from net 1994-11-03 23:52:52 +00:00
Ken Raeburn 72f2e98420 go32 patches from dj 1994-11-03 23:50:48 +00:00
Ken Raeburn 1ef625b778 Makefile.in (ALL_MACHINES): Include m68knetbsd.o. 1994-11-03 23:49:17 +00:00
Ken Raeburn 2c5cdec23d i386linux.mh: include -lm in EXTRALIBS 1994-11-03 23:21:32 +00:00
Ian Lance Taylor 9cb8eb5c28 * archive.c (normalize): Change to take a BFD as an argument.
Change VMS version to use bfd_alloc rather than malloc, so that we
	don't lose the memory forever.
	(_bfd_construct_extended_name_table): Check the name of an archive
	entry which is not being extended, and correct it if it is wrong.
	This is necessary in case the archive was constructed by another
	program which put an entry in the extended name table which we
	don't plan to put in ourselves.  From jjc@jclark.com (James
	Clark).
	(bfd_dont_truncate_arname): Check return value of normalize.
1994-11-02 20:29:18 +00:00
Ian Lance Taylor b531cfe94e * elf32-hppa.c (ELF32_PARISC_SX_SIZE): Define.
(ELF32_PARISC_SX_GET, ELF32_PARISC_SX_PUT): Define.
	(symextn_entry): Don't define.
	(symext_chain_size): Change type to bfd_size_type.
	(symextn_contents): Change type to bfd_byte *.
	(elf32_hppa_backend_begin_write_processing): Use
	ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS).
	(elf32_hppa_size_symext): Likewise.  Also, change type of sizep to
	bfd_size_type *.
	(elf_hppa_tc_make_sections): Cast symextn_contents assignment to
	bfd_byte *.  Use ELF32_PARISC_SX_PUT instead of direct assignment.
	(elf32_hppa_backend_symbol_table_processing): Use
	ELF32_PARISC_SX_SIZE instead of sizeof (symext_entryS).  Use
	ELF32_PARISC_SX_GET insetad of direct assignment.
	(elf32_hppa_read_symext_info): Change type of contents, and its
	assignment cast, to bfd_byte *.  Use ELF32_PARISC_SX_SIZE instead
	of sizeof (symextn_entry).  Use symext_entryS instead of
	symextn_entry.  Use ELF32_PARISC_SX_GET instead of direct
	assignment.
1994-11-01 04:46:07 +00:00
Ian Lance Taylor da6c4a8b3c * archive.c (bfd_dont_truncate_arname): Add the ar padding
character, if there is room for it, even if the name is the
	maximum length.
PR 5859.
1994-10-31 20:23:47 +00:00
Ian Lance Taylor 2d2d08ed7b * elfcode.h (assign_file_positions_except_relocs): Sort the ELF
headers by section address when assigning file positions.
	(elf_sort_hdrs): New static function.
1994-10-31 19:21:40 +00:00
Ian Lance Taylor 197e30e560 * elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Create DT_INIT
and DT_FINI dynamic entries based on the existence of _init and
	_fini symbols, not on the .init and .fini sections.  This is
	compatible with some SVR4 linkers.
	(elf_bfd_final_link): Corresponding change.
1994-10-31 00:04:03 +00:00
Ian Lance Taylor dd4219176d * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't move a
symbol with a PLT entry into the .plt section if it is defined in
	a regular file.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
1994-10-30 03:41:50 +00:00
Ian Lance Taylor 54f16fc4bb * linker.c (_bfd_generic_link_add_archive_symbols): It's not an
error if an empty archive has no symbol table.
	* ecoff.c (ecoff_link_add_archive_symbols): Likewise.
	* elfcode.h (elf_link_add_archive_symbols): Likewise.
1994-10-29 16:20:41 +00:00
J.T. Conklin ec35a1c2f3 NetBSD/m68k support, based on work by mikeb@snow.datametrics.com:
* config.bfd (m68*-*-netbsd*): Use m68k-nbsd as bfd_name.
* configure.in (m68knetbsd_vec): Added.
* targets.c (bfd_m68knetbsd_vec): Added.
* hosts/m68knbsd.h, config/m68k-nbsd.mt, m68knetbsd.c: New files.
* Makefile.in (BFD32_BACKENDS, CFILES): Add m68knetbsd.c.

miscellaneous cleanup required by all netbsd targets, based on work
by Andrew Cagney <cagney@highland.com.au>:
* netbsd.h (N_MAGIC, N_SET_MAGIC, N_GETMAGIC, N_GETMAGIC2, N_TXTADDR,
  N_TXTOFF, N_ALIGN, N_DATADDR, N_DATOFF): Removed.  Generic a.out
  definitions work.
* i386nbsd.c, ns32knbsd.c, sparcnbsd.c (__LDPGSZ): Removed.
  (MY(write_object_contents)): Use NetBSD's magic numbers
1994-10-28 18:11:15 +00:00
Ian Lance Taylor 14cac507a8 * libelf.h (struct bfd_elf_section_data): Add field dynindx.
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Don't finalize
	the .dynsym, .dynstr or .hash sections until after the backend
	size_dynamic_sections routine, so that it can add dynamic symbols
	if it wants to.
	* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't define the
	symbol to be in the .plt section when generating a shared library
	if it is a defined symbol.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
	(elf32_sparc_size_dynamic_sections): When generating a shared
	library, allocate space for a dynamic symbol for each output
	section, storing the index in the dynindx field of the ELF section
	data.  Adjust the other dynindx fields to account for this.
	(elf32_sparc_adjust_dynindx): New static function.
	(elf32_sparc_relocate_section): When copying a reloc into a shared
	library, use the original addend as appropriate.  Convert an
	R_SPARC_32 reloc into an R_SPARC_RELATIVE reloc.  Use the dynamic
	symbol index of the output section, not the normal symbol index.
	(elf32_sparc_finish_dynamic_sections): Don't die if a section does
	not exist when setting the value of the dynamic tags.  Write out
	a dynamic symbol for each output section.
1994-10-27 21:25:31 +00:00
Ian Lance Taylor 875e471661 * aoutx.h (aout_link_input_section): Don't bother to read or write
the relocs if there aren't any.
1994-10-26 05:17:08 +00:00
Ian Lance Taylor 9c26be63fd * linker.c (enum link_action): Add CIND.
(link_action): Change COMMON_ROW\indr from MDEF to CREF.  Change
	INDR_ROW\common from MDEF to CIND.
	(_bfd_generic_link_add_one_symbol): In CREF case, handle an
	existing symbol which is indirect rather than defined.  Add new
	CIND case.
1994-10-25 15:47:59 +00:00
Ian Lance Taylor fd9a6abc83 Change S-record backend to use multiple sections to handle gaps in
file.
	* srec.c (srec_data_list_struct): Move field next from last place
	to first.  Change type of data to bfd_byte *.
	(struct srec_symbol): Define.
	(tdata_type): Remove done_symbol_read, count, strings, symbol_idx,
	string_size, string_idx.  Change type of symbols to struct
	srec_symbol *.  Add symtail and csymbols.
	(low, high): Remove.
	(size_symbols, fillup_symbols, size_srec, fillup): Remove.
	(white, skipwhite, pass_over, object_p): Remove.
	(srec_mkobject): Call srec_init.  Adjust tdata initialization for
	field changes.
	(srec_get_byte, srec_bad_byte): New static functions.
	(srec_new_symbol, srec_scan): New static functions.
	(srec_object_p): Change type of b to bfd_byte.  Explicitly set
	wrong_format error.  Call srec_mkobject and srec_scan instead of
	object_p.
	(symbolsrec_object_p): Likewise.  Also, change b to be only two
	bytes.
	(srec_read_section): New static function.
	(srec_get_section_contents): Call srec_read_section rather than
	pass_over.  Handle zero length section correctly.
	(set_set_arch_mach): Change from function to macro.
	(srec_set_section_contents): Change data to bfd_byte *.
	(srec_write_record): Change data, end and src to bfd_byte *.
	(srec_write_header): Change buffer and dst to bfd_byte *.
	(srec_write_section): Change location to bfd_byte *.
	(srec_write_terminator): Change buffer to bfd_byte *.
	(srec_get_symtab_upper_bound): Don't call
	srec_get_section_contents.
	(srec_get_symtab): Rewrite.
1994-10-24 20:08:33 +00:00
Ian Lance Taylor a56f23aeb9 * ecoff.c (ecoff_set_symbol_info): Set udata.i to 0, not NULL. 1994-10-24 19:37:18 +00:00