Commit Graph

2886 Commits

Author SHA1 Message Date
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