Commit Graph

2050 Commits

Author SHA1 Message Date
Ian Lance Taylor c3d8e071bf Tue Jun 18 14:42:58 1996 Klaus Kaempf <kkaempf@progis.de>
Added support for Alpha OpenVMS:
	* evax.h, evax-alpha.c, evax-egsd.c, evax-emh.c: New files.
	* evax-etir.c, evax-misc.c, hosts/alphavms.h: New files.
	* config.h-vms, makefile.vms: New files.
	* config.bfd (alpha-*-*vms*): New target.
	* configure.in (evax_alpha_vec): New target vector.
	* configure: Rebuild.
	* reloc.c (BFD_RELOC_SWREL32, BFD_RELOC_SWREL64): Define.
	(BFD_RELOC_ALPHA_LINKAGE, BFD_RELOC_ALPHA_BASEREG): Define.
	* targets.c (bfd_target_evax_flavour): Define.
	(evax_alpha_vec): Declare.
	(bfd_target_vector): Add ecoffalpha_little_vec and evax_alpha_vec
	if BFD64 is defined.
	* bfd-in2.h, libbfd.h: Rebuild.
	* Makefile.in: Rebuild dependencies.
	(BFD64_BACKENDS): Add evax-alpha.o, evax-egsd.o, evax-etir.o,
	evax-emh.o, and evax-misc.o.
	(BFD64_BACKENDS_CFILES): Add evax-alpha.c, evax-egsd.c,
	evax-etir.c, evax-emh.c, and evax-misc.c.
	(HFILES): Add evax.h.
1996-06-18 19:07:51 +00:00
Ian Lance Taylor 142aa7d93a * coff-h8300.c (h8300_reloc16_extra_cases): Make name a const
pointer.
	(h8300_bfd_link_add_symbols): Likewise.
1996-06-18 17:56:53 +00:00
Jeff Law b658d64d9e * som.h (R_HPPA_BEGIN_TRY, R_HPPA_END_TRY): Define.
* som.c (som_write_fixups): Handle R_BEGIN_TRY and R_END_TRY.
gunk for EH on the PA.
1996-06-17 18:25:09 +00:00
Ian Lance Taylor 2df1e84b65 * elf32-mips.c (mips_elf_relocate_section): Don't create a reloc
for R_MIPS_REL32 and R_MIPS_32 relocs if no dynamic sections were
	created.
	(mips_elf_check_relocs): Only create .rel.dyn for R_MIPS_REL32 and
	R_MIPS_32 relocs if creating a shared library.
1996-06-17 16:54:39 +00:00
Ian Lance Taylor 51bc9642d9 * cofflink.c (_bfd_coff_final_link): Handle long section names.
* coffcode.h (coff_write_object_contents): If there are long
	section names, always set the f_symptr field, even if there are no
	symbols.
	* peicode.h (coff_swap_filehdr_in): Don't clear the f_symptr field
	if there are no symbols.
1996-06-13 18:07:39 +00:00
Ian Lance Taylor 8100e72c95 * coffgen.c (make_a_section_from_file): Check return value of
_bfd_coff_read_string_table.
	(coff_real_object_p): Check return value of
	make_a_section_from_file.
	(_bfd_coff_read_string_table): Check that there are some symbols
	before trying to read the string table size.
1996-06-13 17:40:58 +00:00
Ian Lance Taylor ed675a0409 * xcofflink.c (xcoff_link_add_symbols): When considering whether
to replace a symbol in a dynamic object with a symbol from another
	dynamic object, do the replacement if the existing symbol is
	global linkage code.
PR 9860.
Also fix a couple of comment typos and indentation problems.
1996-06-13 00:16:39 +00:00
Ian Lance Taylor 4914478412 * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Check explicitly
for _ptrgl, and treat it as global linkage code.
PR 9860.
1996-06-12 22:05:32 +00:00
Ian Lance Taylor 0e3bd85ee7 * aoutx.h (NAME(aout,find_nearest_line)): Notice if we find a
filename or N_SO symbol past the offset, and use it to indicate
	that there is no line number or function when appropriate.
1996-06-12 18:18:23 +00:00
Ian Lance Taylor a5c7acea2f * xcofflink.c (xcoff_build_ldsyms): Set XCOFF_DEF_REGULAR for a
common symbol defined by the linker.  Don't export function code
	even if export_defineds is set.
PR 9856.
1996-06-11 22:25:55 +00:00
Jeff Law 890f5b7f5a Opps. 1996-06-09 22:40:13 +00:00
Jim Wilson 4906b2a367 Kill r16/rce/acp stuff. 1996-06-08 03:45:18 +00:00
Ian Lance Taylor bbf7c3352c * ieee.c (ieee_write_object_contents): Put a timestamp in the file
to keep the HP emulator database happy.
PR 9493.
1996-06-06 23:57:18 +00:00
Ian Lance Taylor 0593fc16c4 Thu Jun 6 15:24:45 1996 Richard Henderson <rth@tamu.edu>
* ecoff.c (_bfd_ecoff_new_section_hook): Remove the _PDATA
 	alignment hack--we can get the lnnoptr info another way without
 	suddenly increasing the alignment requirements.  Set the flags for
	the _PDATA section.
	(ecoff_compute_section_file_positions): Do so.
1996-06-06 19:51:04 +00:00
Ian Lance Taylor 9b263b79b7 * config.bfd: Recognize powerpc-*-linux* and powerpcle-*-linux*.
From Kevin Buettner <kev@primenet.com>.
1996-06-06 15:30:28 +00:00
Ian Lance Taylor 26145b159a * linker.c (_bfd_generic_link_add_one_symbol): If notice_all is
set, always call the notice callback.

	* VERSION: Increment for bfdlink.h change.
1996-06-04 23:11:00 +00:00
Ian Lance Taylor 9d17519894 * coff-sh.c (COFF_DEFAULT_SECTION_ALIGNMENT_POWER): Set to 4.
(sh_relax_delete_bytes): Correct handling of differently sized
	trailing alignment reloc.
1996-06-03 21:13:41 +00:00
Ian Lance Taylor 5a04f1bd73 * bfd-in.h: Use #error if BFD_HOST_64_BIT can not be defined.
* bfd-in2.h: Rebuild.
	* configure.in: Warn if there is no known 64 bit type.
	* configure: Rebuild.
1996-06-03 20:20:11 +00:00
Ian Lance Taylor 60c8b04f7a * Makefile.in: Rebuild dependencies.
(BFD32_BACKENDS): Add ppcboot.o.
	(BFD32_BACKENDS_CFILES): Add ppcboot.c.
1996-06-03 15:17:34 +00:00
Ian Lance Taylor 3a2080d837 * elf32-mips.c (mips_elf_size_dynamic_sections): Initialize c.
From Per Fogelstrom <per.fogelstrom@mailbox200.swipnet.se>.
1996-06-03 15:04:14 +00:00
Ian Lance Taylor 903612a2f4 * elf64-mips.c (bfd_mips_elf64_swap_reginfo_in)
(bfd_mips_elf64_swap_reginfo_out): Move from here...
	* elf32-mips.c (bfd_mips_elf64_swap_reginfo_in)
	(bfd_mips_elf64_swap_reginfo_out): ...to here.
1996-06-02 01:51:55 +00:00
Ian Lance Taylor bc05732be6 * elf64-mips.c: Improve reloc special_functions and handling of
SHT_MIPS_OPTIONS section.
	* elf32-mips.c (_bfd_mips_elf_hi16_reloc): Rename from
	mips_elf_hi16_reloc and make globally visible.
	(_bfd_mips_elf_lo16_reloc): Rename from mips_elf_lo16_reloc and
	make globally visible.
	(_bfd_mips_elf_got16_reloc): Rename from mips_elf_got16_reloc and
	make globally visible.
	(_bfd_mips_elf_gprel16_reloc): Rename from mips_elf_gprel16_reloc
	and make globally visible.
	(gprel16_with_gp): Check howto->src_mask before using value in
	insn.
	(_bfd_mips_elf_gprel32_reloc): Rename from mips_elf_gprel32_reloc
	and make globally visible.
	(gprel32_with_gp): Check howto->src_mask before fetching value.
	(bfd_mips_elf_swap_options_in): New function.
	(bfd_mips_elf_swap_options_out): New function.
	(_bfd_mips_elf_set_private_flags): Rename from
	mips_elf_set_private_flags and make globally visible.
	(_bfd_mips_elf_copy_private_bfd_data): Rename from
	mips_elf_copy_private_bfd_data and make globally visible.
	(_bfd_mips_elf_merge_private_bfd_data): Rename from
	mips_elf_merge_private_bfd_data and make globally visible.
	(_bfd_mips_elf_section_from_shdr): Accept .MIPS.options as a name
	for a SHT_MIPS_OPTIONS section.
	(mips_elf32_section_from_shdr): Handle SHT_MIPS_OPTIONS section.
	(_bfd_mips_elf_fake_sections): Consider .MIPS.options to be the
	name of a SHT_MIPS_OPTIONS section.
	(_bfd_mips_elf_set_section_contents): New function.
	(mips_elf32_section_processing): Set the GP value in a
	SHT_MIPS_OPTIONS section.
	(_bfd_mips_elf_find_nearest_line): Rename from
	mips_elf_find_nearest_line and make globally visible.
	(bfd_elf32_set_section_contents): Define.
	* elf-bfd.h (_bfd_mips_elf_hi16_reloc): Declare.
	(_bfd_mips_elf_lo16_reloc): Declare.
	(_bfd_mips_elf_gprel16_reloc): Declare.
	(_bfd_mips_elf_got16_reloc): Declare.
	(_bfd_mips_elf_gprel32_reloc): Declare.
	(_bfd_mips_elf_set_private_flags): Declare.
	(_bfd_mips_elf_copy_private_bfd_data): Declare.
	(_bfd_mips_elf_merge_private_bfd_data): Declare.
	(_bfd_mips_elf_find_nearest_line): Declare.
	(_bfd_mips_elf_set_section_contents): Declare.
1996-05-31 21:43:35 +00:00
Ian Lance Taylor 38893c8cb8 * elf32-hppa.c (elf32_hppa_info_to_howto): Rename from
elf_info_to_howto.
	(elf_info_to_howto): Define.
	* elf32-sparc.c (elf32_sparc_info_to_howto): Rename from
	elf_info_to_howto.
	(elf_info_to_howto): Define.
	* elf64-sparc.c (sparc64_elf_info_to_howto): Rename from
	elf_info_to_howto.
	(elf_info_to_howto): Define.
1996-05-31 18:12:22 +00:00
Ian Lance Taylor 0017655509 * elf64-mips.c: Extensive additions to provide better support for
writing files and for gas.
	* elf32-mips.c (_bfd_mips_elf_object_p): New function, broken out
	of mips_elf_object_p.
	(mips_elf32_object_p): Rename from mips_elf_object_p; call
	_bfd_mips_elf_object_p.
	(_bfd_mips_elf_final_write_processing): Rename from
	mips_elf_final_write_processing and make globally visible.
	(_bfd_mips_elf_fake_sections): Rename from
	mips_elf_fake_sections and make globally visible.
	(_bfd_mips_elf_section_from_bfd_section): Rename from
	mips_elf_section_from_bfd_section and make globally visible.
	(_bfd_mips_elf_section_processing): New function, broken out of
	mips_elf_section_processing.
	(mips_elf32_section_processing): Rename from
	mips_elf_section_processing; call
	_bfd_mips_elf_section_processing.
	(_bfd_mips_elf_symbol_processing): Rename from
	mips_elf_symbol_processing and make globally visible.
	(_bfd_mips_elf_read_ecoff_info): Rename from
	mips_elf_read_ecoff_info and make globally visible.
	(mips_elf32_ecoff_debug_swap): Rename from
	mips_elf_ecoff_debug_swap.
	* elf.c (_bfd_elf_symbol_from_bfd_symbol): Use asymbol rather than
	struct symbol_cache_entry.
	(_bfd_elf_validate_reloc): New function, moved in from
	elfcode.h:validate_reloc.
	* elfcode.h (validate_reloc): Remove; moved into elf.c and renamed
	to _bfd_elf_validate_reloc.  Change all callers.
	* elf-bfd.h (bfd_section_from_shdr): Declare.
	(_bfd_elf_symbol_from_bfd_symbol): Declare.
	(_bfd_elf_validate_reloc): Declare.
	(_bfd_mips_elf_object_p): Declare.
	(_bfd_mips_elf_fake_sections): Declare.
	(_bfd_mips_elf_section_from_bfd_section): Declare.
	(_bfd_mips_elf_section_processing): Declare.
	(_bfd_mips_elf_symbol_processing): Declare.
	(_bfd_mips_elf_read_ecoff_info): Declare.
	(_bfd_mips_elf_final_write_processing): Declare.
	* elfxx-target.h (bfd_elfNN_get_reloc_upper_bound): Don't define
	if already defined.
1996-05-30 22:33:51 +00:00
Ian Lance Taylor cabd8fa0cb * elf32-mips.c (mips_elf_object_p): Handle E_MIPS_ARCH_4.
(mips_elf_final_write_processing): Likewise.
1996-05-30 16:43:11 +00:00
Ian Lance Taylor d1bf45aa94 64-bit MIPS ELF ABI objdump support:
* elf64-mips.c: New file.
	* Makefile.in: Rebuild dependencies.
 	(BFD64_BACKENDS): Add elf64-mips.o.
	(BFD64_BACKENDS_CFILES): Add elf64-mips.c.
	* config.bfd (mips*el-*-elf*) Add bfd_elf64_bigmips_vec and
	bfd_elf64_littlemips_vec to targ_selvecs.
	(mips*-*-elf*): Likewise.
	* confingure.in: Add bfd_elf64_bigmips_vec and
	bfd_elf64_littlemips_vec to vector switch.
	* configure: Rebuild.
	* elf32-mips.c (_bfd_mips_elf_section_from_shdr): New function,
	broken out of mips_elf_section_from_shdr.
	(mips_elf32_section_from_shdr): Rename from
	mips_elf_section_from_shdr.  Call new function.
	(elf_backend_section_from_shdr): Update name of renamed function.
	* elf-bfd.h (struct elf_size_info): Change second parameter of
	write_out_phdrs to be const.  Likewise for second parameter of
	swap_symbol_out.
	(struct bfd_elf_section_data): Add rel_hdr2 field.
	(bfd_elf32_swap_symbol_in): Change second parameter to be const.
	(bfd_elf32_swap_symbol_out): Likewise.
	(bfd_elf32_swap_reloc_in): Likewise.
	(bfd_elf32_swap_reloc_out): Likewise.
	(bfd_elf32_swap_reloca_in): Likewise.
	(bfd_elf32_swap_reloca_out): Likewise.
	(bfd_elf32_swap_phdr_in): Likewise.
	(bfd_elf32_swap_phdr_out): Likewise.
	(bfd_elf32_swap_dyn_in): Likewise.
	(bfd_elf32_swap_dyn_out): Likewise.
	(bfd_elf32_slurp_symbol_table): Declare.
	(bfd_elf32_write_shdrs_and_ehdr): Declare.
	(bfd_elf32_write_out_phdrs): Declare.
	(bfd_elf64_swap_symbol_in): Change second parameter to be const.
	(bfd_elf64_swap_symbol_out): Likewise.
	(bfd_elf64_swap_reloc_in): Likewise.
	(bfd_elf64_swap_reloc_out): Likewise.
	(bfd_elf64_swap_reloca_in): Likewise.
	(bfd_elf64_swap_reloca_out): Likewise.
	(bfd_elf64_swap_phdr_in): Likewise.
	(bfd_elf64_swap_phdr_out): Likewise.
	(bfd_elf64_swap_dyn_in): Likewise.
	(bfd_elf64_swap_dyn_out): Likewise.
	(bfd_elf64_slurp_symbol_table): Declare.
	(bfd_elf64_write_shdrs_and_ehdr): Declare.
	(bfd_elf64_write_out_phdrs): Declare.
	(_bfd_mips_elf_section_from_shdr): Declare.
	* elf.c (bfd_section_from_shdr): Remove assertion requiring
	SHT_REL/SHT_RELA to match use_rela_p.  If there is already a reloc
	section for the section, add the new one to rel_hdr2.  Increment
	reloc_count rather than setting it.
	* elfcode.h (elf_slurp_symbol_table): Define name as macro.
	Remove static declaration.
	(elf_write_shdrs_and_ehdr): Define name as macro.
	(elf_write_out_phdrs): Likewise.
	(elf_swap_ehdr_in, elf_swap_ehdr_out): Declare.
	(elf_swap_shdr_in, elf_swap_shdr_out): Declare.
	(elf_swap_symbol_in): Change second parameter to be const.
	(elf_swap_symbol_out): Likewise.
	(elf_swap_ehdr_in, elf_swap_ehdr_out): Likewise.
	(elf_swap_shdr_in, elf_swap_shdr_out): Likewise.
	(elf_swap_phdr_in, elf_swap_phdr_out): Likewise.
	(elf_swap_reloc_in, elf_swap_reloc_out): Likewise.
	(elf_swap_reloca_in, elf_swap_reloca_out): Likewise.
	(elf_write_out_phdrs): Rename from write_out_phdrs.  Change second
	parameter to be const.  Make non-static.
	(elf_write_shdrs_and_ehdr): Rename from write_shdrs_and_ehdr.
	Make non-static.
	(elf_slurp_symbol_table): Make non-static.
	(NAME(_bfd_elf,size_info)): Update names of renamed functions.
	* elfxx-target.h (elf_info_to_howto): Define if not defined.
	(elf_backend_size_info): Likewise.
	(elfNN_bed): Use elf_backend_size_info.
	* targets.c (bfd_elf64_bigmips_vec): Declare.
	(bfd_elf64_littlemips_vec): Declare.
	(bfd_target_vector): Add bfd_elf64_bigmips_vec and
	bfd_elf64_littlemips_vec if BFD64 is defined.
1996-05-29 20:33:00 +00:00
Ian Lance Taylor 076929515b * coff-sh.c (sh_relax_delete_bytes): Insert nop instructions, not
zeroes, in alignment holes.
1996-05-28 19:34:07 +00:00
Ian Lance Taylor a4322a77b4 * configure: Rebuild with autoconf 2.10. 1996-05-28 16:41:17 +00:00
Ian Lance Taylor 7dd3d45a45 * aoutx.h (NAME(aout,find_nearest_line)): Make room for the
potential leading underscore in the allocated buffer.
1996-05-28 15:48:13 +00:00
Michael Meissner 0293d5b019 Do not put small common symbols into .sbss if ld -r 1996-05-24 18:30:52 +00:00
Ian Lance Taylor a5d0cd5037 * xcofflink.c (_bfd_ppc_xcoff_relocate_section): Warn about
undefined symbols when creating a shared library.
PR 9751.
1996-05-23 19:28:18 +00:00
Ian Lance Taylor c403d3581c * cache.c (bfd_open_file): Unlink the file before opening it for
write.  From Marty Leisner <leisner@sdsp.mc.xerox.com>.

	* opncls.c (bfd_fdopenr): Set opened_once.
1996-05-16 20:49:38 +00:00
Ian Lance Taylor ff60fc3aec * som.c (som_slurp_reloc_table): Clear external_relocs cache after
freeing it.
PR 9693.
1996-05-14 22:31:11 +00:00
Ian Lance Taylor 2f710e178f * libbfd.c: Remove #ifdef FILE_OFFSET_IS_CHAR_INDEX, and compile
the code unconditionally.
1996-05-14 16:55:42 +00:00
Ian Lance Taylor efb33f6b07 * libcoff-in.h (struct pei_section_tdata): Define structure.
(pei_section_data): Define macro.
	* libcoff.h: Rebuild.
	* coffcode.h (coff_set_alignment_hook): If COFF_IMAGE_WITH_PE,
	store s_paddr field in pei_section_data.
	(coff_compute_section_file_positions): Use pei_section_data rather
	than _cooked_size, and don't overwrite an existing value.
	(coff_write_object_contents): If COFF_OBJ_WITH_PE, set s_paddr to
	0.  If COFF_IMAGE_WITH_PE, set s_paddr to pei_section_data.
	* peicode.h (coff_bfd_copy_private_section_data): Define if
	COFF_IMAGE_WITH_PE.
 	(pe_bfd_copy_private_section_data): New static function if
	COFF_IMAGE_WITH_PE.
PR 9667.
1996-05-14 00:25:50 +00:00
Ian Lance Taylor db1e2aa7e4 * srec.c (srec_set_arch_mach): Write as a function rather than a
macro definition.
PR 9637.
1996-05-08 20:56:53 +00:00
Ian Lance Taylor 5ecd6d7f3b * xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): If an archive has
no map, just check each member in turn to see whether it is
	required.
PR 9520.
1996-05-08 20:11:29 +00:00
Michael Meissner aefee5c89f Fixes for ppcboot 1996-05-08 13:41:00 +00:00
Michael Meissner 0d1fcbbb90 Add PPCbug boot record support 1996-05-07 20:20:55 +00:00
Jeff Law f4597f8c05 * coff-h8300.c (howto_table): Update names to match recent
changes to include/coff/internal.h.  Fix minor errors in the
        existing relocs.  Add R_MOVL1 and R_MOVL2.
        (rtype2howto): Similarly.
        (h8300_reloc16_estimate): Rewrite to simplify, fix bugs in the
        existing relaxing code  and peform more relaxing.
        (h8300_reloc16_extra_cases): Likewise.
Simplify, cleanup, fix bugs and improve existing relaxing code.

Add code for changing a 24/32bit absolute address into a 16bit absolute
address.

HMSE.
1996-05-07 17:17:11 +00:00
Jeff Law 0dc70e1a36 * reloc16.c (bfd_coff_reloc16_get_value): Handle common
symbols correctly.
For the H8/300 relaxing linker.
1996-05-07 00:26:16 +00:00
Peter Schauer d1b8ccb09f * elfcode.h (elf_object_p): Reject generic ELF target if
e_machine matches an alternate machine code in a specific backend.

	* netbsd-core.c (netbsd_core_vec):  Remove initializer for
	obsolete align_power_min field.
1996-05-04 12:40:46 +00:00
Jeff Law c9f5444e0a * coff-h8300.c (reloc_howto_type): Add howto entry for
R_PCRWORD_B.
        (rtype2howto): Handle R_PCRWORD_B.
        (h8300_reloc16_extra_cases): Handle R_PCRWORD_B.
        (h8300_reloc_16_estimate): Likewise.  Try to turn a 16bit
        pc-relative branch (R_PCRWORD) into an 8bit pc-relative
        branch (R_PCWORD_B).
So we can turn 16bit pcrel branches into 8bit pcrel branches on the H8/300H.
HMSE.
1996-05-03 19:07:31 +00:00
Ian Lance Taylor 340d654fd3 * aoutx.h (translate_from_native_sym_flags): Set the section for
BSF_CONSTRUCTOR symbols.
1996-05-03 17:58:30 +00:00
Ian Lance Taylor 4ad842aa28 * cofflink.c (_bfd_coff_link_input_bfd): Correct setting of
last_bf_index.
1996-05-03 17:48:41 +00:00
Ian Lance Taylor 9aac8e83a0 * coffcode.h (styp_to_sec_flags): Handle long symbol names
when looking for the section symbol.
1996-05-02 02:56:14 +00:00
David Edelsohn 9c7a574803 * coffcode.h (coff_write_object_contents): In comdat section lookup,
stop looking when section is found.
1996-05-02 02:41:20 +00:00
Ian Lance Taylor e8f3bb64b5 * coffcode.h (STRING_SIZE_SIZE): Define.
(bfd_coff_backend_data): Add _bfd_coff_long_section_names field.
	(bfd_coff_long_section_names): Define.
	(coff_write_object_contents): Handle long section names.
	(bfd_coff_std_swap_table): Initialize new field.
	* libcoff.h: Rebuild.
	* coffgen.c (make_a_section_from_file): Handle long section
	names.
	(coff_write_symbols): Handle long section names.
	* coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
	* pe-arm.c (COFF_LONG_SECTION_NAMES): Define.
	* pei-arm.c (COFF_LONG_SECTION_NAMES): Define.
	* pe-i386.c (COFF_LONG_SECTION_NAMES): Define.
	* pei-i386.c (COFF_LONG_SECTION_NAMES): Define.
	* pe-ppc.c (COFF_LONG_SECTION_NAMES): Define.
	* pei-ppc.c (COFF_LONG_SECTION_NAMES): Define.
1996-05-02 02:27:55 +00:00
Ian Lance Taylor 622c93a360 * bout.c (b_out_callback): Set lma of sections.
(b_out_bfd_get_relocated_section_contents): Rename in_abfd
	parameter to output_bfd.  Used input_bfd instead of output_bfd in
	several places.
1996-05-01 21:22:28 +00:00
Ian Lance Taylor b7d1158a90 * aoutx.h (translate_from_native_sym_flags): Don't create
SEC_CONSTRUCTOR sections.
	* ecoff.c (ecoff_set_symbol_info): Likewise.
1996-05-01 01:01:50 +00:00
Ian Lance Taylor 6b725f83fa * elf32-mips.c (mips_elf_copy_private_bfd_data): Copy elf_gp.
From Don Bowman <bowman@waterloo.hp.com>.
1996-05-01 00:57:36 +00:00
David Edelsohn e28a1e7729 * coff-arm.c (armcoff_little_vec): If COFF_WITH_PE is defined, add
SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags.
1996-05-01 00:08:41 +00:00
Ian Lance Taylor abec70b998 * elf32-mips.c (struct mips_elf_link_hash_entry): Add
mips_32_relocs field.
	(mips_elf_link_hash_newfunc): Initialize mips_32_relocs field.
	(mips_elf_relocate_section): Copy R_MIPS_REL32 and R_MIPS_32
	relocs against a global symbol which is not defined in a regular
	file.
	(mips_elf_check_relocs): For a R_MIPS_REL32 or R_MIPS_32 reloc
	against a global symbol, increment mips_32_relocs.
	(mips_elf_adjust_dynamic_symbol): If mips_32_relocs is set, and
	the symbol is not defined in a regular file, make room in the
	.rel.dyn section.
1996-04-29 17:27:02 +00:00
Ian Lance Taylor 656c5b6d7e * ecoff.c (ecoff_compute_section_file_positions): Track the real
file position and the virtual file position separately.  Set
	filepos information bsaed on the real file position.
	(_bfd_ecoff_set_section_contents): Handle .lib sections like the
	Jan 23 change to coffcode.h.
Make Irix 4 shared libraries work again.
1996-04-26 23:16:52 +00:00
Ian Lance Taylor ecba7a3a1a * som.c (som_slurp_symbol_table): Set the symbol count to the
number of BFD symbols created.
PR 5332.
1996-04-26 22:01:22 +00:00
Michael Meissner e25a798839 Forward relocs to output if -Bshared 1996-04-26 16:36:14 +00:00
Michael Meissner 3f7ca26b1c Add support for linking against shared libraries 1996-04-25 18:24:05 +00:00
Michael Meissner 5c28a96e46 Do not make _SDA_BASE{,2}_ a dynamic symbol. 1996-04-25 17:27:31 +00:00
Ian Lance Taylor f5d6548535 * xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Look through the
members of an archive for dynamic objects with no symbols, and
	pass them directly to check_archive_element.
	(xcoff_link_check_ar_symbols): Pass dynamic objects to
	xcoff_link_check_dynamic_ar_symbols.
	(xcoff_link_check_dynamic_ar_symbols): New static function.
The above is for PR 9520.

	* coff-rs6000.c (rs6000coff_vec): Change BFD_JUMP_TABLE_DYNAMIC
	from _bfd_nodynamic to _bfd_xcoff.
	* libcoff-in.h (_bfd_xcoff_get_dynamic_symtab_upper_bound):
	Declare.
	(_bfd_xcoff_canonicalize_dynamic_symtab): Declare.
	(_bfd_xcoff_get_dynamic_reloc_upper_bound): Declare.
	(_bfd_xcoff_canonicalize_dynamic_reloc): Declare.
	* libcoff.h: Rebuild.
	* xcofflink.c (xcoff_swap_ldrel_in): New static function.
	(xcoff_get_section_contents): New static function.
	(_bfd_xcoff_get_dynamic_symtab_upper_bound): New function.
	(_bfd_xcoff_canonicalize_dynamic_symtab): New function.
	(_bfd_xcoff_get_dynamic_reloc_upper_bound): New function.
	(xcoff_dynamic_reloc): New static variable.
	(_bfd_xcoff_canonicalize_dynamic_reloc): New function.
	(xcoff_link_add_dynamic_symbols): Use xcoff_get_section_contents.
1996-04-24 18:10:46 +00:00
David Edelsohn 34249b2faf * elf32-sparc.c (_bfd_sparc_elf_howto_table): Fix spelling of
R_SPARC_GLOB_JMP.
	* elf64-sparc.c (sparc64_elf_howto_table): Likewise.
	Add entries for R_SPARC_[56].
	(sparc_reloc_map): Add entries for R_SPARC_[56].
1996-04-23 01:33:32 +00:00
Ian Lance Taylor 1726b8f0a4 Optimize linking of stabs in sections as used in ELF and COFF.
* stabs.c: New file.
	* libbfd-in.h (_bfd_link_section_stabs): Declare.
	(_bfd_write_section_stabs): Declare.
	(_bfd_write_stab_strings): Declare.
	* libbfd.h: Rebuild.
	* libcoff-in.h (struct coff_section_tdata): Add stab_info field.
	(struct coff_link_hash_table): Add stab_info field.
	* libcoff.h: Rebuild.
	* cofflink.c (_bfd_coff_link_hash_table_init): Initialize
	stab_info field.
	(coff_link_add_symbols): Call _bfd_link_section_stabs if
	appropriate.
	(_bfd_coff_final_link): Write out stab strings hash table.
	(_bfd_coff_link_input_bfd): Handle optimized stabs sections.
	* coff-ppc.c (ppc_bfd_coff_final_link): Write out stab strings
	hash table.
	* elf-bfd.h (struct elf_link_hash_table): Add stab_info field.
	(struct bfd_elf_section_data): Add stab_info field.
	* elf.c (_bfd_elf_link_hash_table_init): Initialize stab_info
	field.
	* elflink.h (elf_link_add_object_symbols): If appropriate, call
	_bfd_link_section_stabs.
	(elf_bfd_final_link): Write out stab strings hash table.
	(elf_link_input_bfd): Handle optimized stabs sections.
	* reloc.c (_bfd_final_link_relocate): Check address against
	_raw_size rather than _cooked_size.
	* Makefile.in: Rebuild dependencies.
	(BFD_LIBS): Add stabs.o
	(BFD_LIBS_CFILES): Add stabs.c.
1996-04-22 22:35:53 +00:00
Ian Lance Taylor af50cd9170 * coffgen.c (coff_renumber_symbols): Correct handling of
BSF_NOT_AT_END common symbols.
1996-04-22 19:10:10 +00:00
Ian Lance Taylor f9fa5df367 * coff-ppc.c (record_toc): Add cast to avoid warning.
(ppc_allocate_toc_section): Likewise.
	(coff_ppc_relocate_section): Remove ANSI C string concatenation.
	(ppc_coff_reloc_type_lookup): Remove unreached code.
	* coffcode.h (coff_write_object_contents): Don't take the address
	of an array.
	* peicode.h (pe_print_idata): Add casts to avoid warning.
	(pe_print_edata): Likewise.
	(pe_print_reloc): Remove ANSI C string concatenation.
1996-04-19 23:24:41 +00:00
Ian Lance Taylor d6e0e2f786 * libcoff-in.h (struct coff_final_link_info): Add last_bf_index
and last_bf fields.
	* libcoff.h: Rebuild.
	* coffswap.h (coff_swap_aux_in): Swap endndx field for C_FCN
	symbols.
	(coff_swap_aux_out): Likewise.
	* peicode.h (coff_swap_aux_in): Likewise.
	(coff_swap_aux_out): Likewise.
	* coffgen.c (coff_pointerize_aux): Check endndx field for C_FCN
	symbols.
	* cofflink.c (_bfd_coff_final_link): Initialize last_bf_index
	field.
	(_bfd_coff_link_input_bfd): Check endndx field for C_FCN symbols.
	Fix up .bf endndx link fields.
	* coff-ppc.c (ppc_bfd_coff_final_link): Initialize last_bf_index
	field.
	* xcofflink.c (xcoff_link_input_bfd): Check endndx field for C_FCN
	symbols.
PR 9467.
1996-04-18 22:55:54 +00:00
Ian Lance Taylor f97fca7872 * xcofflink.c (xcoff_link_input_bfd): Check for TOC overflow. 1996-04-17 21:09:34 +00:00
Michael Meissner 221d1e19de Update for Solaris 1996-04-17 19:05:20 +00:00
Ian Lance Taylor 8f9a56c65c * linker.c (_bfd_generic_link_add_one_symbol): When calling the
callback routines, pass h->root.string rather than name, in case
	copy is true and name is transient.
1996-04-17 17:21:52 +00:00
Stu Grossman 603fdf1679 * elfcore.h: Add support for core files with multiple threads.
(Primarily for Solaris.)
1996-04-16 23:39:54 +00:00
Ian Lance Taylor cdf235577b * aoutx.h (NAME(aout,squirt_out_relocs)): Don't do anything if
section->orelocation is NULL.
1996-04-16 21:21:26 +00:00
Ian Lance Taylor a2d914e15e * coffgen.c (bfd_coff_get_syment): New function.
(bfd_coff_get_auxent): New function.
	* bfd-in.h (bfd_coff_get_syment): Declare.
	(bfd_coff_get_auxent): Declare.
	* bfd-in2.h: Rebuild.
1996-04-16 17:46:54 +00:00
Ian Lance Taylor 5cf36a322a * elf32-mips.c (struct mips_hi16): Define.
(mips_hi16_addr, mips_hi16_addend): Remove.
	(mips_hi16_list): New static variable.
	(mips_elf_hi16_reloc): Maintain a list of unmatched HI16 relocs.
	(mips_elf_lo16_reloc): Process mips_hi16_list.
	(mips_elf_relocate_section): Permit an arbitrary number of HI16
	relocs before the associated LO16 reloc.
1996-04-15 23:10:52 +00:00
Ian Lance Taylor 176512da76 * versados.c (versados_scan): Check bfd_alloc return value.
(versados_object_p): Check all bfd_read return values.  Require
	that lang field be less than 10, to avoid confusion with Intel Hex
	files.
1996-04-10 18:21:08 +00:00
Ian Lance Taylor 18de3f1908 * libaout.h (WRITE_HEADERS): Write out the relocs even if there
aren't any symbols.
	* aoutx.h (NAME(aout,swap_std_reloc_out)): Set r_index to N_ABS,
	not 0, for an absolute symbol.
	(NAME(aout,swap_ext_reloc_out)): Likewise.
PR 7387.
1996-04-10 18:11:00 +00:00
Ian Lance Taylor 66ab4152a0 * ihex.c (ihex_scan): Accept a length of 4 for record type 5.
(ihex_write_object_contents): For a large start address, output
	the full 32 bit address in record type 5.
PR 9422.
1996-04-10 17:01:35 +00:00
Ian Lance Taylor b7fce5bec1 * ieee.c (ieee_write_byte): Change second parameter from bfd_byte
to int to avoid promotion problems in prototype.
1996-04-10 04:26:18 +00:00
Ian Lance Taylor f400f35863 * configure.host: Use ${srcdir} when looking for picfrag. 1996-04-09 16:09:14 +00:00
Ian Lance Taylor 3d9a598662 * configure.host: Switch on ${libdir}, not $(libdir). From
alan@spri.levels.unisa.edu.au (Alan Modra).
1996-04-09 16:01:26 +00:00
Ian Lance Taylor f1b45745b4 * aoutx.h (aout_link_add_symbols): Always call add_dynamic_symbols
entry point, not just for DYNAMIC objects.
	* sunos.c (sunos_add_dynamic_symbols): Always call
	sunos_create_dynamic_sections.  If called with a non DYNAMIC
	object, don't do anything else.
	(sunos_add_one_symbol): Don't call sunos_create_dynamic_sections.
1996-04-09 15:46:41 +00:00
Ian Lance Taylor 639b5a093c * configure.in: Permit --enable-shared to specify a list of
directories.
	* configure: Rebuild.
1996-04-08 18:01:49 +00:00
Ian Lance Taylor 6f21f2e307 * configure.host: Set HLDFLAGS and SHLIB_CFLAGS for *-dec-osf*
host when configuring with --enable-shard.
1996-04-08 16:22:17 +00:00
Ian Lance Taylor 1ac75f5cdb * config.bfd: Add i[345]86-*-freebsdelf* target; from John Polstra
<jdp@polstra.com>.
1996-04-05 19:28:51 +00:00
Ian Lance Taylor 1a9951a942 * linker.c (link_action): For WARN_ROW/warn, use MWARN, not CYCLE,
to avoid crashing in bfd_hash_replace.
1996-04-05 17:51:28 +00:00
Ian Lance Taylor f1ac3acb3e * sysdep.h: Use #ifdef, not #if. 1996-04-05 17:29:06 +00:00
Ian Lance Taylor 3f5f565b69 * sysdep.h: Use #ifdef,not #if. 1996-04-05 17:25:03 +00:00
Ian Lance Taylor eb5f58e0e0 * config.in: Rebuild. 1996-04-05 04:32:47 +00:00
Fred Fish ab1aa5cd6c * configure.in (mips-sony-bsd*): Fix typo in AC_DEFINE.
(AC_CHECK_HEADERS): Check for sys/time.h
	(AC_HEADER_TIME): Add macro.
	* configure: Rebuild.
	* sysdep.h: Use TIME_WITH_SYS_TIME and HAVE_SYS_TIME_H
	to control what combination of <time> and <sys/time.h>
	get included.
1996-04-05 04:14:36 +00:00
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 19bfbcbecf * elf-bfd.h (struct elf_link_hash_table): Add hgot field.
* elf.c (_bfd_elf_link_hash_table_init): Initialize hgot field.
	* elflink.c (_bfd_elf_create_got_section): Store the
	_GLOBAL_OFFSET_TABLE_ hash table entry in the hgot field.
	* elf32-sparc.c (elf32_sparc_check_relocs): If the size of the
	global offset table goes over 0x1000, set the value of
	_GLOBAL_OFFSET_TABLE_ to 0x1000 into the section.
	(elf32_sparc_relocate_section): Subtract the offset of
	_GLOBAL_OFFSET_TABLE_ when handling GOT relocations.
PR 9323.
1996-04-02 19:57:33 +00:00
Ian Lance Taylor 1dad72bde5 * elfcode.h: Don't include <string.h>. 1996-04-02 05:36:45 +00:00
Ian Lance Taylor aad53b0d59 * aoutx.h (aout_link_input_section_std): When reporting an
overflow error, use the name of the symbol in the hash table if
	available.
	(aout_link_input_section_ext): Likewise.
1996-04-01 22:33:05 +00:00
Jeff Law ca4e2190ce * linker.c (_bfd_generic_link_hash_newfunc): Renamed from
generic_link_hash_newfunc.  All references changed.
        * genlink.h (_bfd_generic_link_hash_newfunc): Declaration
        moved here from libbfd-in.h.
        * libbfd-in.h: Corresponding changes.
        * libbfd.h: Regenerated.
Minor changes suggested by Ian.
1996-04-01 17:50:13 +00:00
Ian Lance Taylor ce6a773183 * elflink.h (elf_adjust_dynamic_symbol): If a common symbol got
defined in a regular file, set ELF_LINK_HASH_DEF_REGULAR.
1996-04-01 17:42:59 +00:00
Steve Chamberlain 323b430fc4 * peicode.h (coff_swap_aouthdr_out): Delete test for .junk.
* coffcode.h (coff_compute_section_file_positions): Likewise.
	(coff_write_object_contents): Likewise.
1996-03-31 10:01:29 +00:00
Ian Lance Taylor 5a28331f6d * section.c (SEC_LINK_ONCE): Define.
(SEC_LINK_DUPLICATES): Define.
	(SEC_LINK_DUPLICATES_DISCARD): Define.
	(SEC_LINK_DUPLICATES_ONE_ONLY): Define.
	(SEC_LINK_DUPLICATES_SAME_SIZE): Define.
	(SEC_LINK_DUPLICATES_SAME_CONTENTS): Define.
	* bfd-in2.h: Rebuild.
	* coffcode.h (sec_to_styp_flags): If COFF_WITH_PE, turn
	SEC_LINK_ONCE into IMAGE_SCN_LNK_COMDAT.
	(styp_to_sec_flags): If COFF_WITH_PE, turn IMAGE_SCN_LNK_REMOVE
	into SEC_EXCLUDE.  If IMAGE_SCN_LNK_COMDAT is set, set
	SEC_LINK_ONCE, and look through the symbol table for the setting
	for SEC_LINK_DUPLICATES.
	(coff_write_object_contents): If COFF_WITH_PE, if SEC_LINK_ONCE is
	set for a section, find the section symbol in the symbol table,
	and set the aux entry based on SEC_LINK_DUPLICATES.
	* coffgen.c (coff_print_symbol): Add a space before "checksum".
	* coff-arm.c (armcoff_big_vec): If COFF_WITH_PE is defined, add
	SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags.
	* coff-i386.c (i386coff_vec): Likewise.
	* coff-ppc.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
1996-03-29 21:33:59 +00:00
Ian Lance Taylor 7fc1cd1666 * VERSION: Bump to 2.6.1.
* Makefile.in (stamp-h): Depend upon VERSION.
1996-03-29 18:09:06 +00:00
Jeff Law 9399a257b1 opps. forgot to commit the changelog entries for the function
vector changes.
1996-03-29 06:56:50 +00:00
Ian Lance Taylor 506f2bb4a9 * libhppa.h: If gcc 2.7 or higher, declare all the functions with
__attribute__ ((__unused__)) so that -Wall doesn't warn about
	them.
	(hppa_rebuild_insn): Pass pointer to correct type to
	low_sign_unext and dis_assemble_21.
1996-03-28 22:46:06 +00:00
Ian Lance Taylor f68990e6a2 revert yesterdays change 1996-03-28 19:18:09 +00:00
David Edelsohn 05a84ae164 * config.bfd (sparc64-{sysv4*,solaris2*}): Delete.
Stick with sparc-*-{sysv4*,solaris2*}.
1996-03-28 19:02:45 +00:00
Ian Lance Taylor 8230f31c92 * peicode.h (coff_swap_aux_in): Swap in extra PE x_scn fields.
(coff_swap_aux_out): Swap out extra PE x_scn fields.
	* coffswap.h (coff_swap_aux_in): Zero out extra PE x_scn fields.
	* coffgen.c (coff_print_symbol): If any of the extra PE x_scn
	fields is non-zero, print them.
1996-03-27 22:53:16 +00:00