Commit Graph

3017 Commits

Author SHA1 Message Date
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
Jeff Law 39f2796643 * libbfd-in.h (generic_link_hash_newfunc): Add declaration.
* libbfd.h: Rebuilt.
        * linker.c (generic_link_hash_newfunc): No longer static.
        * coffcode.h (coff_bfd_link_hash_create): Allow specific targets
        to override.
        * coff-h8300.c: Add two derived hash tables and their associated
        funtions and #defines for use by the h8300 linker.
        (h8300_reloc16_extra_cases, case R_MEM_INDIRECT): Create entries in
        the function vector as needed.  Place the address of the function
        vector entry in the location specified by the R_MEM_INDIRECT reloc.
        Rewrite the vectors section contents as necessary.
        (h8300_bfd_link_add_symbols): New function for the h8300 linker.
        (coff_bfd_link_add_symbols): Define to use h8300 specific version.
        (coff_bfd_link_hash_table_create): Likewise.

Linker changes for function vectors.  HMSE.
1996-03-29 06:56:02 +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
David Edelsohn 1d8eda7ab4 * coffgen.c (coff_bfd_make_debug_symbol): Improve comment.
* coffcode.h (coff_new_section_hook): Ditto.
1996-03-28 03:34:05 +00:00
Ian Lance Taylor d3e572fefc update copyrights 1996-03-27 23:04:01 +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
Ian Lance Taylor ff0e4a9341 Remove SEC_LINKER_MARK, and add a linker_mark bitfield to the asection
structure instead.
1996-03-27 22:23:18 +00:00
Ian Lance Taylor 9addd1d4fd * coff-ppc.c (ppc_record_toc_entry): Put inside COFF_IMAGE_WITH_PE
ifdef.  Remove unused variables.
	(ppc_record_data_in_toc_entry): Ifdef out.  Removed unused
	variables.
	(ppc_mark_symbol_as_glue): Put inside COFF_IMAGE_WITH_PE ifdef.
	(get_symbol_value): Ifdef out.
	(pe_ppc_reloc): Ifdef out.  Remove unused variables.
	(coff_ppc_relocate_section): Remove unused variables.  Make
	fprintf strings and argument types correspond.  Put before_addr in
	DEBUG_RELOC ifdef.
	(ppc_reflo_reloc): Ifdef out.
	(ppc_addr32nb_reloc): Ifdef out.
	(ppc_coff_rtype2howto): Make fprintf strings and argument types
	correspond.
	(coff_ppc_rtype_to_howto): Likewise.
	(ppc_coff_swap_sym_in_hook): Remove unused variables.
1996-03-27 20:50:53 +00:00
Ian Lance Taylor 187783e019 * peicode.h (pe_print_idata): Move otherwise unused variables into
the #ifdef where they are used.  Always return a value.
	(pe_print_edata): Change fprintf strings and add cast to make
	fprintf strings correspond to actual types.  Always return a
	value.
	(pe_print_pdata): Removed unused variable addr_value.  Always
	return a value.
	(pe_print_reloc): Remove unused variable onaline.  Make fprintf
	strings and arguments correspond.  Always return a value.
1996-03-27 20:29:15 +00:00
Ian Lance Taylor 1680791e64 * libhppa.h: Define HINLINE rather than INLINE. Define it to
extern inline if using gcc and to static INLINE otherwise.  Change
	all functions from static INLINE to HINLINE.
1996-03-27 20:08:04 +00:00
Ian Lance Taylor c877bdf1a5 * ns32k.h: New file.
* cpu-ns32k.h: Include ns32k.h.  Rename externally visible
	functions to start with _bfd_.
	* aout-ns32k.c: Include ns32k.h.  Change references to renamed
	functions in cpu-ns32k.h.
	* Makefile.in: Rebuild dependencies.
	(HFILES): Add ns32k.h.
1996-03-27 19:57:34 +00:00
Ian Lance Taylor 7ec49f9133 * section.c (SEC_LINKER_MARK): Define.
* bfd-in2.h: Rebuild.
	* aoutx.h (NAME(aout,final_link)): Mark sections included in the
	link.
	(aout_link_input_bfd): Don't link unmarked sections.
	* cofflink.c (_bfd_coff_final_link): Mark sections included in the
	link.
	(_bfd_coff_link_input_bfd): Don't link unmarked sections.
	* coff-ppc.c (ppc_bfd_coff_final_link): Mark sections included in
	the link.
	* elflink.h (elf_bfd_final_link): Mark sections included in the
	link.
	(elf_link_input_bfd): Don't link unmarked sections.
	* xcofflink.c (_bfd_xcoff_bfd_final_link): Mark sections included
	in the link.
	(xcoff_link_input_bfd): Don't link unmarked sections.
1996-03-27 19:21:19 +00:00
Ian Lance Taylor 919cf4b52c * coffswap.h (coff_swap_scnhdr_out): Include section name in
overflow error messages.
1996-03-27 15:44:18 +00:00
Ian Lance Taylor fd681dcdaf * bfd.c (_bfd_default_error_handler): If _bfd_error_program_name
is not set, print "BFD: " before the error message.
1996-03-26 23:00:56 +00:00
Ian Lance Taylor 986cf3b852 * configure.in: Use AC_CHECK_TOOL to find ar and ranlib. From
Miles Bader <miles@gnu.ai.mit.edu>.
	* configure: Rebuild.
1996-03-26 20:47:22 +00:00
Ian Lance Taylor c3dffbd7cd * xcofflink.c (xcoff_link_input_bfd): Fix scan for C_BINCL/C_EINCL
symbols.
1996-03-22 19:59:20 +00:00
Ian Lance Taylor 3998d526b9 * config.bfd: Add ieee_vec to targ_selvecs for i960 targets and
m68k-aout, m68k-coff, and m68k-elf targets.
1996-03-22 17:21:03 +00:00
Ian Lance Taylor e4d27380de Fri Mar 22 11:33:44 1996 Martin Anantharaman <martin@goofy.imech.uni-duisburg.de>
* ieee.c: Changed #ifdef KEEPMINUSPCININST to #if KEEPMINUSPCININST.
	(ieee_generic_stat_arch_elt): Restructured to prevent
	ieee_object_p from being called repeatedly.
1996-03-22 16:46:34 +00:00
Steve Chamberlain 51776a11a6 * coffcode.h (coff_write_object_contents): Allocate
buffers large enough for any FILEHDR or AOUTHDR.
1996-03-22 00:32:05 +00:00
Michael Meissner 9e4ebb1b3a Warn if the .pdata section is not a multiple of 20 bytes 1996-03-21 20:00:30 +00:00
Ian Lance Taylor 9e7427a439 * coffcode.h (coff_compute_section_file_positions): If not
producing a final executable, don't consider sofar when aligning
	the section to the correct size.
1996-03-21 18:56:12 +00:00
Ian Lance Taylor e7f9ba4fa1 * elf32-mips.c (mips_elf_gprel32_reloc): Initialize gp if
output_bfd is not NULL.
1996-03-18 18:12:36 +00:00
David Edelsohn 34c4d647ed * coffgen.c (coff_get_normalized_symtab): Call bfd_zalloc instead
of bfd_alloc (fixes fix_line not being initialized).
	Delete zeroing of fix_{value,tag,end,scnlen} fields.
1996-03-15 01:12:57 +00:00
Jeff Law 57289b5c5d * coffcode.h: Allow specific backends to override the
bfd_link_add_symbols routine.
Not used yet, but it will be soon for hmse.
1996-03-14 23:17:50 +00:00
Jeff Law 4e05424729 * coff-h8300.c: Include genlink.h.
(howto_table): Add R_MEM_INDIRECT.
        (rtype2howto): Support R_MEM_INDIRECT.
        (h8300_reloc16_extra_cases): Handle R_MEM_INDIRECT like R_RELBYTE
        for now.
hmse
1996-03-14 23:06:51 +00:00
Ian Lance Taylor 8881b321e0 * linker.c (bfd_wrapped_link_hash_lookup): New function.
(_bfd_generic_link_add_one_symbol): Remove BFD_ASSERT on hash
	table string.  Use bfd_wrapped_link_hash_lookup.
	(_bfd_generic_link_write_global_symbol): Remove BFD_ASSERT on hash
	table string.
	* aoutx.h (aout_link_write_symbols): Use the name from the hash
	table, if any, when writing out symbols.
	(aout_link_input_section_std): Use the name from the hash table,
	if any, when reporting undefined symbols.
	(aout_link_input_section_ext): Likewise.
	(aout_link_reloc_link_order): Use bfd_wrapped_link_hash_lookup.
	* bout.c (get_value): Likewise.
	* cofflink.c (_bfd_coff_reloc_link_order): Likewise.
	* ecoff.c (ecoff_reloc_link_order): Likewise.
	* elflink.h (elf_link_add_object_symbols): Likewise.
	(elf_reloc_link_order): Likewise.
	* linker.c (_bfd_generic_link_output_symbols): Likewise.
	(_bfd_generic_reloc_link_order): Likewise.
	(default_indirect_link_order): Likewise.
	* reloc16.c (bfd_coff_reloc16_get_value): Likewise.
	* sunos.c (sunos_add_one_symbol): Likewise.
	* xcofflink.c (xcoff_link_add_symbols): Likewise.
	(bfd_xcoff_link_count_reloc): Likewise.
	(xcoff_reloc_link_order): Likewise.
1996-03-12 23:14:58 +00:00
Ian Lance Taylor a10d3dec45 Tue Mar 12 12:41:17 1996 David Mosberger-Tang <davidm@koala.azstarnet.com>
* coff-alpha.c (alpha_relocate_section): Use
	info->callbacks_warning, rather than _bfd_error_handler, for
	"multiple gp" warning.
1996-03-12 17:42:19 +00:00
Ian Lance Taylor ea2488ad2e * configure: Rebuild with autoconf 2.8. 1996-03-12 17:22:07 +00:00
Ian Lance Taylor c189fdfb8e * stab-syms.c (__define_stab_duplicate): Define.
(bfd_get_stab_name): Rename from aout_stab_name.  Rewrite to use a
	switch.
	* bfd-in.h (bfd_get_stab_name): Declare.
	* bfd-in2.h: Rebuild.
	* Makefile.in: Rebuild dependencies.
	(BFD_LIBS): Add stab-syms.o.
	(BFD_LIBS_CFILES): Add stab-syms.c.
	(BFD32_BACKENDS): Remove stab-syms.o.
	(BFD32_BACKENDS_CFILES): Remove stab-syms.c.
	* configure.in: Don't list stab-syms.o in bfd_backends.
	* configure: Rebuild.
	* libaout.h (aout_stab_name): Don't declare.
	* aoutx.h (NAME(aout,get_symbol_info)): Call bfd_get_stab_name,
	not aout_stab_name.
1996-03-11 17:33:43 +00:00
Ian Lance Taylor 8f218e05fc * configure.in: Don't set SHLIB or SHLINK to an empty string,
since they appear as targets in Makefile.in.
	* configure: Rebuild.
1996-03-05 20:52:52 +00:00
Ian Lance Taylor c5bde1ef85 * sunos.c (sunos_scan_ext_relocs): If not making a shared library,
don't fiddle with a symbol which is not defined anywhere.
1996-03-05 17:03:18 +00:00
Ian Lance Taylor 4e59f52302 * xcofflink.c (xcoff_mark): Treat undefined imported symbols as
though they are defined in a shared library.
	(xcoff_build_ldsyms): Likewise.
1996-03-05 01:01:11 +00:00
Ian Lance Taylor ea2504d592 * coffgen.c (coff_find_nearest_line): Don't look at the line
numbers for the section if section->lineno is NULL.
1996-03-04 23:42:12 +00:00
Ian Lance Taylor cb84f0284f * elf.c (_bfd_elf_symbol_from_bfd_symbol): Print a useful error
message rather than calling BFD_ASSERT.
	* elfcode.h (write_relocs): Check return value of
	_bfd_elf_symbol_from_bfd_symbol.
1996-03-04 17:50:38 +00:00
Michael Meissner 6e036cf7f6 When putting common items in .sdata, make sure SEC_LOAD flag is cleared 1996-03-01 14:47:46 +00:00
Jeff Law d08435de5e * libhppa.h (hppa_reloc_field_selector_type): Add R_HPPA_NLSEL
and R_HPPA_NLRSEL.
        (e_nsel, e_nlsel, e_nlrsel): Undefine.  Add to
        hppa_reloc_field_selector_type_alt.
        (hppa_field_adjust): Handle e_nlsel, e_nlrsel.  Fix e_nsel handling.
        * som.c (hppa_som_gen_reloc_type): Handle N', NL' NLR' field
        selectors.
        (som_write_fixups): Finish handling of R_N0SEL and R_N1SEL.
More hpux10 crud.
1996-02-28 18:27:51 +00:00
Ian Lance Taylor 0960941513 * elf.c (assign_file_positions_for_segments): Adjust the segment
memory size for the alignment of a SEC_ALLOC section, not just a
	SEC_LOAD section.
1996-02-28 16:01:04 +00:00
Ian Lance Taylor 55626bf086 Tue Feb 27 14:17:31 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* m68klinux.c: New file.
	* hosts/m68klinux.h: New file.
	* config.bfd (m68*-*-linuxaout*, m68*-*-linux*): New targets.
	* configure.in (m68*-*-linux*): New native host.
	(m68klinux_vec): New vector.
	* configure: Rebuild.
	* targets.c (m68klinux_vec): Declare.
	* i386linux.c (bfd_i386linux_size_dynamic_sections): Renamed from
	bfd_linux_size_dynmic_sections to avoid clash with m68klinux.c.
	* bfd-in.h (bfd_i386linux_size_dynamic_sections): Rename
	declaration from bfd_linux_size_dynamic_sections.
	(bfd_m68klinux_size_dynamic_sections): Declare.
	* bfd-in2.h: Rebuild.
	* Makefile.in: Rebuild dependencies.
	(BFD32_BACKENDS): Add m68klinux.o.
	(BFD32_BACKENDS_CFILES): Add m68klinux.c.
1996-02-27 19:31:29 +00:00
Jeff Law 6c7b309055 * libhppa.h (pa_arch): Add pa20.
(hppa_reloc_field_selector_type): Add R_HPPA_NSEL.
        (e_nsel): Undefine.  Add to hppa_reloc_field_selector_type_alt.
        (hppa_field_adjust): Handle e_nsel.
        * som.c: Provide default definitions for many new relocs found only
        in hpux10 include files.
        (som_fixup_formats): Add several new relocs from hpux10.
        (som_hppa_howto_table): Add hpux10 relocs.
        (som_write_fixups): Handle R_N0SEL and R_N1SEL hpux10 relocs.
Quick stab at handling some of the new hpux10 features.
1996-02-27 18:50:42 +00:00
Ian Lance Taylor 8835846954 * cofflink.c (_bfd_coff_link_input_bfd): When merging, skip names
starting with '$' the way we skip names starting with '.'.  When
	updating x_endndx, don't be fooled by an index which has been
	merged.
PR 9024.
1996-02-26 22:27:30 +00:00
Stan Shebs 14fd46168d * mpw-make.sed: Edit out recent shared library support, and
rules to rebuild .h files using doc/chew.
1996-02-26 20:59:24 +00:00
Ian Lance Taylor 3d9f042ca8 Mon Feb 26 14:48:39 1996 David Mosberger-Tang <davidm@AZStarNet.com>
* ecoff.c (ecoff_compute_section_file_positions): Adjust the file
	size even of sections with no contents.
1996-02-26 19:54:58 +00:00
Ian Lance Taylor bdec62283a * cofflink.c (_bfd_coff_link_input_bfd): Don't try to optimize a
struct/union/enum type with no elements.
PR 9024.
1996-02-26 19:01:53 +00:00
Ian Lance Taylor 15f4406cf8 * bfd.c (bfd_errmsg): Handle a NULL return from strerror. 1996-02-24 23:58:44 +00:00
Ian Lance Taylor c843513316 * archive.c (bfd_generic_archive_p): If the first file in the
archive can not be recognized as an object, don't assume that this
	is the wrong format.
PR 9082.
1996-02-24 20:45:20 +00:00
Ian Lance Taylor 053ae1d77a * elf.c (bfd_elf_set_dt_needed_name): Don't do anything if the
format is not bfd_object.
	(bfd_elf_get_dt_soname): Likewise.
1996-02-24 20:03:55 +00:00
Ian Lance Taylor ea74d97907 * coff-sh.c (sh_relax_delete_bytes): Correct range of R_SH_USES
reloc.
PR 9043.
1996-02-21 18:59:56 +00:00
Ian Lance Taylor fe6fc35fdb * sunos.c (SUNOS_CONSTRUCTOR): Define.
(sunos_add_one_symbol): Don't let a symbol from a dynamic object
	override a constructor symbol.  Set SUNOS_CONSTRUCTOR when
	appropriate.
1996-02-21 02:51:02 +00:00
J.T. Conklin 871a3f3b24 * bfd.c (tdata): Add netbsd_core_data.
* bfd-in2.h: Regenerated.
1996-02-21 00:29:38 +00:00
Fred Fish d378530148 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents):
Remove duplicate definition of gp.
1996-02-20 16:31:32 +00:00
Ian Lance Taylor 81bdcecf63 * coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Don't
assume that we can set the GP value and then get the same value,
	since it won't be true if the output file is neither ELF nor
	ECOFF.
	* coff-mips.c (mips_adjust_reloc_in): Don't bother to use
	_bfd_get_gp_value here.
	(mips_gprel_reloc): Don't assume we can set and get the GP value.
	* elf32-mips.c (mips_elf_hi16_reloc): Get gp value from
	mips_elf_final_gp.
	(mips_elf_lo16_reloc): Likewise.
	(mips_elf_final_gp): Add pgp parameter.  Set it to the GP value.
	Don't require that the BFD be ELF.
	(mips_elf_gprel16_reloc): Get gp value from mips_elf_final_gp.
	(mips_elf_gprel32_reloc): Likewise.
	(mips_elf_relocate_section): Don't assume we can set and get the
	GP value.
	(mips_elf_finish_dynamic_symbol): Don't bother to use
	_bfd_get_gp_value here.

	* elf32-mips.c (mips_elf_create_procedure_table): Initialize sv.
	Don't change epdr between malloc and free.  Be careful not to free
	NULL pointers.  Zero out the first RPDR.
1996-02-19 21:12:48 +00:00
Ian Lance Taylor 7b61165adc * configure.host: On Linux, only pass -rpath option if $(libdir)
is neither /lib nor /usr/lib.  From Alan Modra
	<alan@mullet.Levels.UniSA.Edu.Au>.
1996-02-19 17:45:28 +00:00
Ian Lance Taylor 60a49e7f8a * elf-bfd.h (struct elf_obj_tdata): Rename dt_needed_name to
dt_name.
	(elf_dt_name): Rename from elf_dt_needed_name.
	* elf.c (bfd_elf_set_dt_needed_name): Use elf_dt_name, not
	elf_dt_needed_name.
	(bfd_elf_get_dt_soname): New function.
	* elflink.h (elf_link_add_object_symbols): Use elf_dt_name, not
	elf_dt_needed_name.  Save the SONAME back in elf_dt_name.
	* bfd-in.h (bfd_elf_get_dt_soname): Declare.
	* bfd-in2.h: Rebuild.
1996-02-19 17:41:04 +00:00
David Edelsohn b268e26104 * elf32-sparc.c (elf32_sparc_reloc_type_lookup): Renamed from
_bfd_sparc_elf_reloc_type_lookup.
	(bfd_elf32_bfd_reloc_type_lookup): Update.
	* elf64-sparc.c (SPARC64_OLD_RELOCS): Define.
	(sparc64_elf_howto_table): Define.
	(sparc_reloc_map): Define.
	(sparc64_elf_reloc_type_lookup): New function.
	(sparc_elf_wdisp16_reloc): New function.
	(elf_info_to_howto): Use sparc64_elf_howto_table.
	(sparc64_elf_relocate_section): Likewise.
	(bfd_elf64_bfd_reloc_type_lookup): Update.
1996-02-19 10:58:20 +00:00
Ian Lance Taylor 9e2ef09802 * configure.host: Check for 'do not mix' from native linker before
trying to use -rpath.
1996-02-18 20:06:40 +00:00
Ian Lance Taylor cba3f8a9be * bfd.c (_bfd_get_gp_value): New function.
(_bfd_set_gp_value): New function.
	* libbfd-in.h (_bfd_get_gp_value): Declare.
	(_bfd_set_gp_value): Declare.
	* libbfd.h: Rebuild.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Use
	_bfd_get_gp_value and _bfd_set_gp_value rather than referring
	directly to the fields in the tdata information.
	(alpha_relocate_section): Likewise.
	* coff-mips.c (mips_adjust_reloc_in): Likewise.
	(mips_gprel_reloc): Likewise.
	(mips_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_hi16_reloc): Likewise.
	(mips_elf_lo16_reloc): Likewise.
	(mips_elf_final_gp): Likewise.
	(mips_elf_gprel16_reloc): Likewise.
	(mips_elf_gprel32_reloc): Likewise.
	(mips_elf_relocate_section): Likewise.
	(mips_elf_finish_dynamic_symbol): Likewise.
PR 8449.
1996-02-16 19:29:01 +00:00
Ian Lance Taylor 4c70373f84 * bout.c (b_out_set_arch_mach): Recognize bfd_mach_i960_jx. 1996-02-16 17:48:04 +00:00
Ian Lance Taylor f54c748237 modify last change 1996-02-15 22:09:10 +00:00
Ian Lance Taylor 65eed09595 * configure.in: Call AC_PROG_CC before configure.host. Don't
substitute CFLAGS.
	* configure: Rebuild.
	* configure.host: Don't set information which autoconf should
	figure out, namely CC, CFLAGS, LDFLAGS, AR, and RANLIB.
	* Makefile.in (CFLAGS): Set to -g, not @CFLAGS@.
1996-02-15 22:05:32 +00:00
Ian Lance Taylor 1429341983 * configure.host: Remove go32 and win32 host information, since it
should no longer be needed.
1996-02-15 21:28:48 +00:00
Ian Lance Taylor edf3fe4885 * elf.c (map_sections_to_segments): If we have a .dynamic section,
then start a new segment rather than put a writable section in a
	readonly segment.
1996-02-15 20:27:29 +00:00
Ian Lance Taylor b5e4f36959 * configure.host: Set RPATH_ENVVAR. 1996-02-15 18:56:03 +00:00
Ian Lance Taylor f2e33e27a1 * Makefile.in: Rebuild dependencies. 1996-02-15 17:48:14 +00:00
Ian Lance Taylor a0a2dd54fd * elflink.c (_bfd_elf_create_linker_section): Remove unused
zero_section variable.
1996-02-15 16:32:47 +00:00
Ian Lance Taylor 52c6bc4d97 Thu Feb 15 10:39:17 1996 H.J. Lu <hjl@zoom.com>
* Makefile.in ($(srcdir)/bfd-in2.h): Rename target from bfd-in2.h.
	($(srcdir)/libbfd.h): Rename from libbfd.h.
	($(srcdir)/libcoff.h): Rename from libcoff.h.
1996-02-15 15:42:10 +00:00
Ian Lance Taylor cb50baeab0 Wed Feb 14 16:29:07 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
* ieee.c (ieee_write_expression): Only use an R variable for a
	local symbol.  Don't output a zero offset.  Handle a zero address.
	(SRC_MASK, PCREL_OFFSET): Define based on KEEPMINUSPCININST.
	(rel32_howto, rel16_howto, rel8_howto): Use SRC_MASK and
	PCREL_OFFSET.
	(parse_expression): Don't try to handle multiple occurrences of a
	P variable.  Handle I variables differently from X variables.  Fix
	the order of minus expressions.
	(ieee_slurp_external_symbols): Generate an I variable for an NN
	record.  Fix handling of ATI and ATX records.
	(ieee_slurp_sections): Only set minimal section attributes.
	Adjust them later, based on the section contents.
	(ieee_object_p): Read in the file until just after the ME record.
	Call ieee_slurp_section_data to set the section flags.
	(do_one): Add iterations parameter.  Only repeat the first load
	item.  Set the section and file reloc flags.
	(ieee_slurp_section_data): Set section flags.  Pass iterations to
	do_one.
	(ieee_canonicalize_reloc): Handle I variables.
	(do_with_relocs): Only emit relocation size when necessary.
	Increase MAXRUN to 127.  Change ov to be assigned, and take
	src_mask and pcrel_offset into account.
	(ieee_write_data_part): Skip sections that are not loaded.
	(ieee_write_external_part): Don't output optional last entry of WX
	records.
	(ieee_write_me_part): Make setting of me_record neater.
	(ieee_generic_stat_arch_elt): Get the size of an archive element.
1996-02-14 22:40:17 +00:00
Ian Lance Taylor c9e5279f23 Wed Feb 14 16:29:07 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
* syms.c (stt): Add entries for zerovars, vars, and code.

	* elfcode.h (validate_reloc): New static function.
	(write_relocs): Call validate_reloc for non ELF relocs.

	* elfxx-target.h (elf_symbol_leading_char): Define if not defined.
	(TARGET_BIG_SYM): Use elf_symbol_leading_char.
	(TARGET_LITTLE_SYM): Likewise.

	* config.bfd (m68*-*-psos*): New target.
1996-02-14 21:32:24 +00:00
Ian Lance Taylor b7384d226b Add reloc.c entries MIPS_CALL_HI16/MIPS_CALL_LO16. 1996-02-14 01:36:01 +00:00
Ian Lance Taylor e9f03cd450 * reloc.c (BFD_RELOC_MIPS_GOT_HI16): Define.
(BFD_RELOC_MIPS_GOT_LO16): Define.
	* bfd-in2.h, libbfd.h: Rebuild.
	* elf32-mips.c (mips_reloc_map): Map new relocs.
1996-02-13 22:08:52 +00:00
Ian Lance Taylor d9d65be670 Tue Feb 13 15:56:22 1996 Bryan Ford <baford@snake.cs.utah.edu>
* i386msdos.c: Remove some #if 0 code.
	(msdos_write_object_contents): Don't include empty sections in the
	size computation, regardless of their address.
1996-02-13 21:00:00 +00:00
Ian Lance Taylor fe7c066a10 * configure.host: Set HDLFLAGS for *-*-hpux with --enable-shared. 1996-02-13 20:24:10 +00:00
Ian Lance Taylor 1ab628e46b * Makefile.in ($(SHLINK)): Check ts against $(SHLIB), not
$(SHLINK).
1996-02-13 20:14:54 +00:00
Ian Lance Taylor db5970c7cc * ieee.c (get_symbol): Set the section to bfd_abs_section.
(do_with_relocs): If EXEC_P is set and there are no relocs, use a
	simple number for the section address, rather than an expression.
	Limit the number of bytes between relocs to MAXRUN.
	(ieee_write_me_part): Set me_record to the file offset after the
	start address.
	(ieee_write_processor): New static function.
	(ieee_write_object_contents): Use ieee_write_processor.
1996-02-13 19:37:40 +00:00
Ian Lance Taylor 318b7c1833 * coff-aux.c: Change include of aux.h was to aux-coff.h. 1996-02-09 15:53:53 +00:00
Ian Lance Taylor 56b6469038 Thu Feb 8 14:01:03 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf32-m68k.c (elf_m68k_relocate_section): For a R_68K_RELATIVE
	relocation put the addend both in the reloc entry and the data.
	(elf_m68k_finish_dynamic_symbol): Likewise.  Mask out marker in
	GOT offset value.

	* elf32-m68k.c (elf_m68k_relocate_section): If -Bsymbolic, resolve
	a R_68K_PCxx reloc against a defined global symbol directly.
	(elf_m68k_check_relocs): Don't count such a reloc.

	* elf32-m68k.c (elf_m68k_check_relocs): Don't record a symbol with
	a PLTxx reloc as dynamic.  Disallow PLTxxO reloc against a local
	symbol for now, otherwise always record the symbol as dynamic.
	(elf_m68k_adjust_dynamic_symbol): If a symbol with a PLTxx reloc
	is not referenced by a dynamic object, and we are not making a
	shared object, then don't make a PLT entry.  If we do make a PLT
	entry, make sure the symbol has been recorded as dynamic.
1996-02-08 19:07:20 +00:00
Ian Lance Taylor 5d649ca82a * configure.host: When making a shared library, set HLDFLAGS to
pass an appropriate -rpath option.  Use the make variable SONAME
	as the shared library soname, rather than computing it here.  On
	SunOS, build stamp-tshlink in place of $(SHLINK).
	* Makefile.in (SONAME): New variable.
	($(SHLINK)): Make a link to the transformed name, as well.
	(stamp-tshlink): New target.
	(install): Skip stamp-tshlink during install.
1996-02-07 18:59:11 +00:00
Michael Meissner 8cc98cd5c1 Fix WRS bug where -Ttext 0x10000 left first program header invalid 1996-02-07 18:41:52 +00:00
J.T. Conklin fe16107dfa * configure.in (*-*-netbsd*): Set COREFILE to netbsd-core.c.
don't define TRAD_HEADER.
* configure: Rebuild.
* netbsd-core.c: New file, support for NetBSD core files.
* hosts/*nbsd.h: Removed.
1996-02-06 22:19:05 +00:00
David Edelsohn f178301669 * reloc.c (BFD_RELOC_SPARC_[567]): New reloc types.
(BFD_RELOC_SPARC_LO7 reloc type): Deleted.
	* libbfd.h, bfd-in2.h: Regenerated.
	* elf32-sparc.c (_bfd_sparc_elf_reloc_type_lookup): Renamed from
	bfd_elf32_bfd_reloc_type_lookup.
	(reloc_type{,_names}): Deleted.
	(_bfd_sparc_elf_howto_table): Renamed from elf_sparc_howto_table.
	Add sparc64 relocs.
	(sparc_reloc_map): Add sparc64 relocs.
	(sparc_elf_notsupported_reloc): New static function.
	(sparc_elf_wdisp16_reloc): New static function.
	(elf32_sparc_check_relocs): Handle R_SPARC_WDISP{16,19}.
	(elf32_sparc_relocate_section): Likewise.
	(bfd_elf32_bfd_reloc_type_lookup): Define.
	* elf64-sparc.c (sparc64_elf_wdisp16_reloc): Deleted.
	(reloc_type{,_names}): Deleted.
	(elf_sparc_howto_table): Deleted.
	(sparc_reloc_map): Deleted.
	(_bfd_sparc_elf_howto_table): Renamed from elf_sparc_howto_table.
	(bfd_elf64_bfd_reloc_type_lookup): Change from function to #define.
1996-02-06 20:23:08 +00:00
Ian Lance Taylor 047c57ac71 Rename XL to JX, and remove sanitization. 1996-02-06 19:15:26 +00:00
Ian Lance Taylor 2300e21774 * configure.host: Make SHLIB_CFLAGS include $(PICFLAG) on a
*-*-hpux* host.
1996-02-06 17:34:18 +00:00
Ian Lance Taylor 48fd00b6d8 * Makefile.in (program_transform_name): New variable.
(install): Transform library name before installing it.
1996-02-06 17:27:44 +00:00
Ian Lance Taylor cbe75cb664 * archures.c (bfd_mach_i960_hx): Define.
* bfd-in2.h: Rebuild.
	* cpu-i960.c (scan_960_mach): Accept machine "hx".
	(MATRIX): Expand entries for HX.
	(arch_info_struct): Add i960:hx entry.
	* bout.c (b_out_set_arch_mach): Handle bfd_mach_i960_hx.
	* coffcode.h (coff_set_arch_mach_hook): Handle F_I960HX.
	(coff_set_flags): Handle bfd_mach_i960_hx.
1996-02-05 23:57:39 +00:00
Ian Lance Taylor 44f795f7fe Support for building as a shared library, based on patches from
Alan Modra <alan@spri.levels.unisa.edu.au>:
	* configure.in: Add AC_ARG_ENABLE for shared and commonbfdlib.
	New substitutions: ALLLIBS, PICFLAG, SHLIB, SHLIB_CC,
	SHLIB_CFLAGS, COMMON_SHLIB, PICLIST, SHLINK.
	* configure: Rebuild.
	* configure.host: If --enable-shared, adjust shared library stuff
	based on the host.  If the host is SunOS, and the linker supports
	-rpath, set HLDFLAGS to use it.
	* Makefile.in (ALLLIBS): New variable.
	(PICFLAG, SHLIB, SHLIB_CC, SHLIB_CFLAGS): New variables.
	(COMMON_SHLIB, SHLINK): New variables.
	(.c.o): If PICFLAG is set, compile twice, once PIC, once normal.
	(STAGESTUFF): Remove variable.
	(all): Depend upon $(ALLLIBS) and @PICLIST@ rather than
	$(TARGETLIB).
	(stamp-ofiles): New target, like old ofiles target, but build
	using a temporary file and move-if-change, and touch stamp-ofiles
	when done.
	(ofiles): Just depend upon stamp-ofiles.
	(stamp-piclist, piclist): New targets.
	($(SHLIB), $(SHLINK)): New targets.
	(targets.o, archures.o): Build twice if PICFLAG is set.
	(do_mostlyclean): Remove pic/*.o.
	(do_clean): Remove stamp-ofiles, $(SHLIB), $(SHLINK), piclist, and
	stamp-piclist.
	(do_distclean): Remove pic and stamp-picdir.
	(install): Install shared libraries.
	($(OFILES)): Depend upon stamp-picdir.
	(stamp-picdir): New target.
1996-02-05 21:14:14 +00:00
Ian Lance Taylor cb62d2bc1e * libcoff-in.h: Add comment reminding people that libcoff.h is a
generated file.
	* libcoff.h: Rebuild.
1996-02-05 16:11:08 +00:00
Ian Lance Taylor 8adca58251 * elf32-mips.c (mips_elf_create_dynamic_sections): Clear
ELF_LINK_NON_ELF flag.
	(mips_elf_create_got_section): Likewise.

	* elf.c: Revert last change, since it breaks dynamic linking.
	* elf-bfd.h (struct elf_backend_data): Remove want_hdr_in_seg
	field.
	* elf32-mips.c (elf_backend_want_hdr_in_seg): Don't define.
	* elfxx-target.h (elf_backend_want_hdr_in_seg): Don't define.
	(elfNN_bed): Don't initialize want_hdr_in_seg field.
1996-02-05 15:48:59 +00:00
Ian Lance Taylor e303e2e358 * elflink.h (elf_adjust_dynamic_symbol): Don't try to get the
flavour of a section with no owner.
1996-02-05 15:47:53 +00:00
Ian Lance Taylor 0f09ddd4d2 * coffcode.h: Move today's libcoff.h change into coffcode.h. 1996-02-04 04:01:36 +00:00
Fred Fish b48f10bacc * libcoff.h (bfd_coff_link_add_one_symbol): Combine macro args back into
one line.  Some compilers (sunos 4.1.3 for example) won't accept args
	split across more than one line.
1996-02-03 23:47:12 +00:00
Steve Chamberlain 50761d3b66 * aclocal.m4 (BFD_BINARY_FOPEN): Understand cygwin32.
* configure: Regenerate.
1996-02-02 19:45:14 +00:00
Jeff Law 9dce8260d4 * elf32-hppa.c (elf32_hppa_backend_symbol_table_processing): Don't
try to do arithmetic on a void *, cast it to a unsigned char * first.
Some solaris compilers don't like void * arithmetic.
1996-02-02 19:14:40 +00:00
Ian Lance Taylor 869b7d80d3 * elf-bfd.h (ELF_LINK_NON_ELF): Define.
* elf.c (_bfd_elf_link_hash_newfunc): Set elf_link_hash_flags to
	ELF_LINK_NON_ELF.
	* elflink.h (elf_link_add_object_symbols): Reset ELF_LINK_NON_ELF
	flag for a newly defined symbol.
	(NAME(bfd_elf,record_link_assignment)): Likewise.
	(elf_adjust_dynamic_symbol): If ELF_LINK_NON_ELF is set, try to
	set the DEF or REF_REGULAR flags correctly.
1996-02-01 23:15:23 +00:00
Ian Lance Taylor 6f6956c63c * Makefile.in (bfd-in2.h): Make bfd.h, not protos, in docdir.
(libbfd.h, libcoff.h): Corresponding change.
1996-02-01 21:34:29 +00:00
Ian Lance Taylor 6c55897c9f * elf32-i386.c (elf_i386_check_relocs): Don't record a symbol with
a PLT32 reloc as dynamic.
	(elf_i386_adjust_dynamic_symbol): If a symbol with a PLT32 reloc
	is not referenced by a dynamic object, and we are not making a
	shared object, then don't make a PLT entry.  If we do make a PLT
	entry, make sure the symbol has been recorded as dynamic.
1996-02-01 21:05:52 +00:00
Steve Chamberlain b06136f240 * coff-i386.c (coff_i386_reloc_type_lookup): Add BFD_RELOC_32_PCREL.
* config.bfd (i[345]86-*-win32): Becomes i[345]86-*-cygwin32.
	(powerpcle-*-cygwin32): New.
	* peicode.h (add_data_entry): Get address from vma.
1996-02-01 01:26:15 +00:00
Michael Meissner 5c867ecd01 If _SDA_BASE_ has already been created as an undefined symbol, treat like it has never been created 1996-01-31 22:13:09 +00:00
Ian Lance Taylor 28c16b5525 * elflink.h (elf_bfd_final_link): Don't output initial dummy
symbol or section symbols if stripping all symbols and this is not
	a relocateable link.  Don't output the symbol string table if
	there are no symbols.
	(elf_link_flush_output_syms): Don't do anything if there are no
	symbols to flush.
1996-01-31 21:22:02 +00:00
Ian Lance Taylor d19df9b51f Wed Jan 31 12:55:49 1996 Richard Henderson <rth@tamu.edu>
* coff-aux.c: New file.
	* hosts/m68kaux.h: New file.
	* config.bfd (m68*-apple-aux*): New target.
	* configure.in (m68*-apple-aux*): New native host.
	(m68kaux_coff_vec): New vector.
	* configure: Rebuild.
	* targets.c (m68kaux_coff_vec): Declare.
	* coffcode.h (bfd_coff_backend_data): Add field
	_bfd_coff_link_add_one_symbol.
	(bfd_coff_link_add_one_symbol): Define.
	(compare_arelent_ptr): New static function if TARG_AUX.
	(coff_write_relocs): If TARG_AUX, sort the relocs.
	(coff_write_object_contents): Set A/UX aouthdr magic number.
	(coff_link_add_one_symbol): Define if not defined.
	(bfd_coff_std_swap_table): Initialize new field.
	* libcoff.h: Rebuild.
	* cofflink.c (coff_link_add_symbols): Call
	bfd_coff_link_add_one_symbol rather than
	_bfd_generic_link_add_one_symbol.
	* coff-m68k.c (COFF_PAGE_SIZE): Don't define if already defined.
	* coff-alpha.c (alpha_ecoff_backend_data): Initialize new field.
	* coff-mips.c (mips_ecoff_backend_data): Likewise.
	* Makefile.in: Rebuild dependencies.
	(BFD32_BACKENDS): Add coff-aux.o.
	(BFD32_BACKENDS_CFILES): Add coff-aux.c.
1996-01-31 18:17:12 +00:00
Ian Lance Taylor a796aafdd7 Wed Jan 31 11:37:46 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf32-m68k.c (elf_m68k_relocate_section): Fix R_68K_GOT*
	relocation; ignore addend with R_68K_{GOT,PLT}*O relocation.
1996-01-31 16:38:20 +00:00
Ian Lance Taylor 66761e5994 * Makefile.in (do_maintainer_clean): Remove $(srcdir)/bfd-in2.h,
$(srcdir)/libbfd.h and $(srcdir)/libcoff.h.
	(maintainer-clean): Warn about deleting special files.
	(bfd-in2.h, libbfd.h, libcoff.h): New targets.
1996-01-30 18:49:10 +00:00
Ian Lance Taylor cf5138e388 * elf32-hppa.c (elf32_hppa_relocate_section): Handle indirect and
warning symbols correctly.
	* elf32-i386.c (elf_i386_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
1996-01-30 18:18:17 +00:00
Ian Lance Taylor a8763553e4 * syms.c (_bfd_stab_section_find_nearest_line): Add casts to avoid
warnings.
1996-01-30 17:09:29 +00:00
Ian Lance Taylor eb5bc1f397 From Basim Kadhim <kadhim@spock.cs.colorado.edu>:
* ecoff.c (struct extsym_info): Define.
	(_bfd_ecoff_bfd_final_link): Pass a pointer to struct extsym_info
	to ecoff_link_write_external.
	(ecoff_link_write_external): Accept a struct extsym_info pointer.
	Strip symbols when appropriate.
1996-01-30 00:01:44 +00:00
Ian Lance Taylor f104a86e1b update copyright 1996-01-29 22:09:49 +00:00
Ian Lance Taylor 052b35d2e7 Based on patches from Ronald F. Guilmette <rfg@monkeys.com>:
* syms.c (BSF_OBJECT): Define.
	(bfd_print_symbol_vandf): Print 'O' for BSF_OBJECT.
	* bfd-in2.h: Rebuild.
	* elfcode.h (elf_slurp_symbol_table): Set BSF_OBJECT for an
	STT_OBJECT symbol.
	* elf.c (swap_out_syms): Only set type to STT_OBJECT if BSF_OBJECT
	is set.
1996-01-29 22:04:32 +00:00
Ian Lance Taylor 53787b2316 * elf32-i386.c (elf_i386_relocate_section): If -Bsymbolic, when
copying relocs into a shared object, treat a defined global symbol
	as a local symbol.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mips.c (mips_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
1996-01-29 20:01:29 +00:00
Kim Knuttila bdd2e7f179 Fixed exported names, removed a bad define 1996-01-29 19:31:34 +00:00
Ian Lance Taylor d2bb6c7900 * elflink.h (elf_link_add_object_symbols): Only set weakdef to a
real defined symbol, not to a weak defined symbol.
1996-01-29 18:09:20 +00:00
Kim Knuttila 13d1a4dda9 Removed a ppc hack from cofflink, promoted some types to libcoff-in.h 1996-01-29 17:44:41 +00:00
Ian Lance Taylor 86aac8eabe * syms.c: Include "bfdlink.h".
(struct stab_find_info): Define.
	(_bfd_stab_section_find_nearest_line): New function.
	* libbfd-in.h (_bfd_stab_section_find_nearest_line): Declare.
	* libbfd.h: Rebuild.
	* elf-bfd.h (struct elf_obj_tdata): Add line_info field.
	* elf.c (_bfd_elf_find_nearest_line): Try calling
	_bfd_stab_section_find_nearest_line before searching the ELF
	symbol table.  Find the closest STT_FUNC symbol, not the last one.
	* libcoff-in.h (coff_data_type): Add line_info field.
	* libcoff.h: Rebuild.
	* coffgen.c (coff_find_nearest_line): Try calling
	_bfd_stab_section_find_nearest_line before searching the COFF
	symbol table.
	* Makefile.in: Rebuild dependencies.
1996-01-26 23:42:58 +00:00
Ian Lance Taylor f0a97077c8 * libcoff-in.h (struct xcoff_tdata): Remove toc_section and
entry_section fields.  Add sntoc and snentry fields.
	* libcoff.h: Rebuild.
	* coffcode.h (coff_mkobject_hook): Initialize sntoc and snentry,
	not toc_section and entry_section (the COFF file does not have any
	sections at this point).
	(coff_write_object_contents): Set o_snentry and o_sntoc from
	snentry and sntoc rather than entry_section and toc_section.
	* coff-rs6000.c (xcoff_copy_private_bfd_data): Copy sntoc and
	snentry, not toc_section and entry_section.
	* xcofflink.c (bfd_xcoff_size_dynamic_sections): Don't set
	entry_section from hentry.
	(xcoff_link_input_bfd): If a defined symbol has XCOFF_ENTRY set,
	set snentyr.
	(xcoff_link_input_bfd): Set sntoc, not toc_section.
	(xcoff_write_global_symbol): Get toc_section from sntoc, rather
	than using toc_section directly.
1996-01-25 22:51:06 +00:00
Michael Meissner c1e65e244c Make eabi error messages include symbol name if it is an external symbol 1996-01-25 22:35:51 +00:00
Ian Lance Taylor 9b4598d0a8 * archures.c: Add missing `.' in enum bfd_architecture.
* bfd-in2.h: Rebuild.
1996-01-25 20:05:29 +00:00
Ian Lance Taylor 43d36aad03 * config.bfd (i[345]86-*-sco*elf*): Use bfd_elf32_i386_vec. From
Robert Lipe <robertl@arnet.com>.
1996-01-25 17:18:42 +00:00
Michael Meissner eb82bc605f Add more eabi relocations 1996-01-25 17:15:24 +00:00
Michael Meissner 9d621c7d32 Fix typo in eabl relocations 1996-01-25 01:46:57 +00:00
Ian Lance Taylor c703f5399e remove incorrect BFD_ASSERT from last patch 1996-01-24 22:01:29 +00:00
David Edelsohn 72c513bc76 * config.bfd (sparc64-*-{sysv4*,solaris2*}): Comment out
bfd_elf64_sparc_vec support.
1996-01-24 19:19:22 +00:00
David Edelsohn 75c9ddc9c5 * elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Delete checking
of flags, only flags used are controlled by mach number.  Bump up
	output file mach number to highest of input file mach numbers.
	(elf32_sparc_object_p): Watch for EF_SPARC_SUN_US1.
	(elf32_sparc_final_write_processing): Set EF_SPARC_SUN_US1 if v8plusa.
Also, delete v8plus sanitization.
1996-01-24 18:45:50 +00:00
Ian Lance Taylor 4a3d3b42bd * coffcode.h (coff_new_section_hook): Don't try to align the
.stabstr section.
1996-01-23 22:27:47 +00:00
Ian Lance Taylor 5a4d8c4070 tipo 1996-01-23 20:53:31 +00:00
Michael Meissner d8fd85ada3 Implement R_PPC_EMB_{SDA21,RELSDA} relocations 1996-01-23 20:11:13 +00:00
Michael Meissner 3cbe19d280 Do not complain if some objects have the embedded bit set and others do not. 1996-01-23 19:35:11 +00:00
Ian Lance Taylor 5eb83edeab * coffcode.h (coff_set_section_contents): Fix the handling of the
.lib section to work even if the entire section contents are
	written at once.  From Gvran Uddeborg <gvran@uddeborg.pp.se> and
	Robert Lipe <robertl@arnet.com>.
1996-01-23 19:26:01 +00:00
David Edelsohn 049f3d4c75 * bfd-in2.h: Regenerated. 1996-01-23 00:44:17 +00:00
Michael Meissner 05f927dd46 Make 64k .sdata and .sdata2 sections work; fix typos 1996-01-22 23:55:25 +00:00
David Edelsohn 768b8ade69 (sparc_compatible): New function. 1996-01-22 21:06:43 +00:00
Michael Meissner e37a16442a Fix typo in last change 1996-01-22 20:10:51 +00:00
David Edelsohn e8bea13fa7 Move v8plus stuff around so sanitized code works. 1996-01-22 19:00:40 +00:00
David Edelsohn 5a5bac6471 * elflink.h (elf_finish_pointer_linker_section): Fix typo. 1996-01-22 18:17:16 +00:00
David Edelsohn d3366d234d * elf64-sparc.c (sparc64_elf_object_p): bfd_mach_sparc64 renamed to
bfd_mach_sparc_v9.
1996-01-22 17:18:05 +00:00
David Edelsohn 5bc513b4fb * archures.c (bfd_mach_sparc_v9): Renamed from bfd_mach_sparc64.
start-sanitize-v8plus
	(bfd_mach_sparc_{v8plus,v8plusa}): Define.
end-sanitize-v8plus
	(bfd_mach_sparc_v9a): Define.
	* bfd-in2.h: Regenerated.
	* aoutx.h (aout,machine_type): bfd_mach_sparc64 renamed to
	bfd_mach_sparc_v9.
	* config.bfd (sparc64-*-sysv4*,sparc64-*-solaris2*): Set targ_defvec
	to bfd_elf32_sparc_vec.
	* cpu-sparc.c (arch_info_struct): Renamed from sparc_arch_info.
start-sanitize-v8plus
	Add v8plus{,a} support.
end-sanitize-v8plus
	Add v9a support.
start-sanitize-v8plus
	* elf32-sparc.h: #include "elf/sparc.h".
	(elf32_sparc_set_private_flags, elf32_sparc_copy_private_bfd_data,
	elf32_sparc_merge_private_bfd_data, elf32_sparc_object_p,
	elf32_sparc_final_write_processing): New functions.
	(bfd_elf32_bfd_set_private_flags, bfd_elf32_bfd_copy_private_bfd_data,
	bfd_elf32_bfd_merge_private_bfd_data, elf_backend_object_p,
	elf_backend_final_write_processing): Define.
end-sanitize-v8plus
1996-01-22 17:15:49 +00:00
Michael Meissner 3b3753b874 snapshot of eabi relocation support. 1996-01-22 16:43:35 +00:00
David Edelsohn 904ae08389 Update copyright. 1996-01-20 17:35:22 +00:00
David Edelsohn 065822fc3d Oops. Forgot sanitization. 1996-01-20 17:05:56 +00:00
David Edelsohn 6b3eb07e98 * elf32-sparc.c (ELF_MACHINE_ALT1): Define. 1996-01-20 16:53:44 +00:00
Kim Knuttila e7894f6b5d Numerous PowerPC PE fixes 1996-01-19 00:16:31 +00:00
Ian Lance Taylor 80b99ca092 * elfcore.h: Include <signal.h> before <sys/procfs.h>.
PR 8807.
1996-01-18 22:42:41 +00:00
Ian Lance Taylor df96df4caf * cpu-powerpc.c (arch_info_struct): Change last entry to not point
back to first.
	(bfd_powerpc_arch): Point at first entry in arch_info_struct.
1996-01-17 17:48:30 +00:00
Ian Lance Taylor d49ddb8575 * elf.c (assign_file_positions_for_segments): Don't increment file
offset for a segment which contains no loadable sections.
1996-01-16 20:53:04 +00:00
Michael Meissner 4500a1128e Add new PPC relocations 1996-01-15 22:50:07 +00:00
Ian Lance Taylor 20ab764e38 * aoutx.h (howto_table_ext): Fix RELOC_BASE10 and RELOC_BASE22
entries.
1996-01-15 22:37:16 +00:00
Ian Lance Taylor 0a4ffa2dc4 * sunos.c (sunos_scan_ext_relocs): Don't fail assert if
info->shared.
1996-01-15 22:00:38 +00:00
Ian Lance Taylor 6014cea70c update copyrights 1996-01-15 21:06:31 +00:00
Ian Lance Taylor 45ca3195d5 * coffgen.c (coff_find_nearest_line): Don't try to cache
information in sections that are not owned by a BFD.  From Richard
	Henderson <richard@atheist.tamu.edu>.
1996-01-15 20:47:32 +00:00
Ian Lance Taylor 252239f877 * elf32-mips.c: Numerous changes to dynamic linking code, mostly
from Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
	* elflink.h (elf_link_output_extsym): Remove special check for
	_rld_new_interface.
1996-01-15 20:25:53 +00:00
Ian Lance Taylor 1ec02944eb * ecoffswap.h: Add prototypes for static functions. 1996-01-15 19:32:08 +00:00
Michael Meissner bd2d10c006 Redo unknown reloc support. Do not allow symbols in .sdata/.sbss to satify a TOC16 relocation. Begin support R_PPC_SDA{2,}REL relocation. 1996-01-15 02:41:58 +00:00
Michael Meissner 1c3a295b13 Warn about relocations we do not yet support 1996-01-13 14:40:50 +00:00
Ian Lance Taylor 14899eb7f2 * elf.c (assign_file_positions_for_segments): If a segment
contains no sections, don't mark it as readable.
1996-01-12 22:47:04 +00:00
Ian Lance Taylor 98bb57ad8e * elf-bfd.h (_bfd_elf_section_from_bfd_section): Declare.
* elfcode.h (_bfd_elf_section_from_bfd_section): Don't declare.
1996-01-12 20:48:14 +00:00
Ian Lance Taylor 927d05b5a3 tweak last change 1996-01-12 20:46:22 +00:00
Michael Meissner 57081126b6 Add PowerPC support for SHF_EXCLUDE, SHT_ORDERED 1996-01-12 20:31:05 +00:00