Commit graph

3498 commits

Author SHA1 Message Date
Ulrich Drepper
cf2cd4cf5d (elf_link_find_version_dependencies): When searching
for known version symbol skip non-matching verdef records, not
matching records.
1997-06-06 21:19:41 +00:00
Nick Clifton
fd2553f96e Added the Thumb relocations from the armT-970328-branch. 1997-06-04 00:11:36 +00:00
Nick Clifton
48e509bf2c Merged in changes made in armT-970328-branch 1997-06-04 00:07:07 +00:00
Ian Lance Taylor
e08eb976ab * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Set dynindx
for a section even if it is not loaded.
Otherwise compiling this
static char bar; char *foo() { return &bar; }
without -fpic and then doing ld -shared OBJECT dumps core.
1997-05-31 01:57:27 +00:00
Ian Lance Taylor
907f6015c0 * cofflink.c (coff_link_add_symbols): If PE file, don't subtract
section VMA.
	(_bfd_coff_link_input_bfd): Separate section VMA handling for
	input and output files.
	(_bfd_coff_generic_relocate_section): Check whether input file,
	not output file, is a PE file.
1997-05-30 16:47:49 +00:00
Ian Lance Taylor
5edcd3b9c9 * coff-i386.c (coff_i386_reloc): Don't just exit if we see an
R_IMAGEBASE reloc.
1997-05-28 20:16:35 +00:00
Nick Clifton
916660cb3b Added support for ARM architecture supersets in the compatibility function. 1997-05-28 16:49:25 +00:00
Bob Manson
3c82a73127 * cofflink.c (_bfd_coff_final_link): Initialize global_to_static
member.

Fixes linker bug on hpux-x-i960-vxworks.
1997-05-28 02:43:30 +00:00
Nick Clifton
177f3d7fc9 Made coff-arm_bfd_set_private_flags global as it is called directly from
gas/config/tc-arm.c .
1997-05-27 21:37:16 +00:00
Ian Lance Taylor
70edb961ea Tue May 27 15:58:53 1997 Richard Henderson <rth@tamu.edu>
* elf64-alpha.c (PLT_ENTRY_*): Use a new thread-safe format.
	(elf64_alpha_finish_dynamic_symbol): Fill it in properly.
1997-05-27 20:01:14 +00:00
Ian Lance Taylor
d82e4bf6cc * coff-ppc.c (coff_ppc_relocate_section): If PE file, don't add
section VMA.
1997-05-26 18:09:21 +00:00
Fred Fish
315dc1f411 * peicode.h (coff_bfd_print_private_bfd_data): #undef before #define.
(coff_bfd_copy_private_bfd_data): Ditto.
	* coff-arm.c (coff_arm_bfd_merge_private_bfd_data): Make static.
	(coff_arm_bfd_print_private_bfd_data): Ditto.
	(coff_arm_bfd_set_private_flags): Ditto.
	(coff_arm_bfd_copy_private_bfd_data): Ditto.
1997-05-26 18:00:54 +00:00
Fred Fish
e074d05eac * libcoff-in.h (struct coff_final_link_info): Add boolean
global_to_static member for support of task linking.
	(_bfd_coff_write_task_globals): Add prototype.
	* libcoff.h: Regenerate.
	* coffcode.h (coff_write_object_contents): Use #ifdef to
	check RS6000COFF_C, to be consistent with all other uses
	in this file.
	* cofflink.c (_bfd_coff_final_link): If doing task linking,
	call _bfd_coff_write_task_globals.
	(_bfd_coff_link_input_bfd): If doing task linking, convert
	global functions to static.
	(_bfd_coff_write_global_sym): If doing task linking, convert
	global variables to static.
	(_bfd_coff_write_task_globals): New function.
	* coff-tic80.c (TIC80COFF): Define this instead of just TIC80.
	(C_AUTOARG): #undef since it clashes with C_UEXT.
	(C_LASTENT): #undef since it clashes with C_STATLAB.
	* coffcode.h (coff_write_object_contents): Use TIC80COFF
	rather than TIC80.
	(coff_slurp_symbol_table): Use C_SYSTEM.  Hide C_AUTOARG use
	when TIC80COFF defined (clashes with C_UEXT).  Explicitly
	recognize C_UEXT, C_STATLAB, and C_EXTLAB as unsupported.
PR 12236
1997-05-24 15:30:55 +00:00
Ian Lance Taylor
546d7a90d0 * coff-tic80.c (tic80_howto_table): Change overflow check for most
PP relocations to complain_overflow_dont.
1997-05-23 16:39:10 +00:00
Ian Lance Taylor
8ac5f94028 * coff-tic80.c (tic80_howto_table): Add PP relocations. Change
name of R_RELLONG to "RELLONG".  Set rightshift and complain for
	M_PPCR.
	(ppbase_reloc, glob15_reloc): New static functions.
	(glob16_reloc, local16_reloc): New static functions.
	(rtype2howto): Handle all relocation types.
	(coff_tic80_relocate_section): New static function.
	(coff_relocate_section): Define to coff_tic80_relocate_section.
	* Makefile.in (coff-tic80.o): Depends upon include/coff/tic80.h.
1997-05-23 00:26:58 +00:00
David Edelsohn
97cbfc2309 Tweak ChangeLog entry. 1997-05-22 21:12:22 +00:00
Ian Lance Taylor
20a9631ae3 * coffcode.h (coff_slurp_symbol_table): If COFF_WITH_PE or
COFF_IMAGE_WITH_PE, don't subtract the section VMA from the symbol
	value.
	* coffgen.c (fixup_symbol_value): Add abfd parameter.  Change all
	callers.  If PE file, don't add section VMA.
	(coff_write_alien_symbol): If PE file, don't add section VMA.
	* cofflink.c (_bfd_coff_link_input_bfd): Likewise.
	(_bfd_coff_write_global_sym): Likewise.
	(_bfd_coff_generic_relocate_section): Likewise.
1997-05-21 21:42:38 +00:00
Ian Lance Taylor
d2d70da54f * peicode.h: Add & 0xffffffff when using ImageBase in case bfd_vma
is 64 bits.
1997-05-21 21:17:17 +00:00
Nick Clifton
e18683b73b Added code to cope with 'ld -X -r' stripiung symbols that will later be
used in relocations.
1997-05-21 16:59:02 +00:00
Ian Lance Taylor
4e39c0f9b2 * coff-sh.c (sh_merge_private_data): New static function.
(coff_bfd_merge_private_bfd_data): Define.
PR 12351.
1997-05-20 22:45:49 +00:00
Mark Alexander
d667d8f251 * coff-tic80.c: Remove unnecessary #ifdefs.
* config.bfd: Set targ_underscore to yes for tic80.
1997-05-19 21:47:45 +00:00
Mark Alexander
69f3f9f7c7 * coff-tic80.c (NAMES_HAVE_UNDERSCORE): Define (fixes problem
with unresolved external symbols in GDB).
1997-05-19 21:26:34 +00:00
Jeff Law
efc02f6657 * elf-m10300.c (elf32_mn10300_relax_section): Read in all
the symbols associated with each BFD.
        (mn10300_elf_relax_delete_bytes): Don't adjust the same symbol
        more than once.
        * elf-m10200.c: Likewise.
        * elf32-m32r.c: Likewise.
        * elf32-sh.c: Likewise.
1997-05-16 16:34:52 +00:00
Ian Lance Taylor
fd6c00bac2 * elflink.h (elf_link_add_object_symbols): Don't decrease the
alignment of a common symbol.  If two symbols that look like
 	common symbols are found in two shared libraries, and the size is
 	different, use the larger size, and warn if --warn-common.  If a
	common symbol overrides a definition in a shared library, set the
	size to the larger size, and warn if --warn-common.
1997-05-16 16:13:33 +00:00
Ian Lance Taylor
77bd8dfa1f * elflink.h (elf_link_add_object_symbols): Consistently treat
uninitialized symbols in shared objects as common symbols.
1997-05-15 21:38:26 +00:00
Nick Clifton
4c4badea81 Added support to LD to select the architecture of an ARM COFF output file
based on the architecture of the first input file.
1997-05-15 21:32:35 +00:00
Ian Lance Taylor
031dfce06f * elflink.h (elf_link_add_object_symbols): Force ELF symbol size
to common symbol size.
1997-05-15 20:40:54 +00:00
Nick Clifton
46686c7839 Added support for storing ARM Procedure Calling Standard variant, and ARM
architecture variant in the BFD and COFF structures.  This goes towards
fixing PRs 11709 and 11326 and will integrate with future updates to LD and
GCC.
1997-05-14 17:00:43 +00:00
Ian Lance Taylor
64aaba23e0 * config.bfd (i[3456]86-*-gnu*): Don't include Mach support. 1997-05-09 21:44:46 +00:00
Ian Lance Taylor
3baa24adb1 * config.bfd: Change #if 0 around uses of host_aout_vec to #if
HAVE_host_aout_vec.
1997-05-09 21:40:42 +00:00
Michael Meissner
aba5cc8b9d Do not abort if coff has no debug information for bfd_find_nearest_line 1997-05-06 13:51:01 +00:00
Ian Lance Taylor
6a2922d501 * config.bfd: cope with '*-*-linux-gnuaout' targets. 1997-05-05 22:20:46 +00:00
Ian Lance Taylor
9f4b686cb5 * targmatch.sed: Add explicit \n characters to work around bug in
HP/UX 10.20 sed program.
1997-05-01 15:32:09 +00:00
Ian Lance Taylor
412dfaedc8 * elf.c (copy_private_bfd_data): Cast csecs to avoid sign
extension problems.
1997-04-30 16:28:53 +00:00
Ian Lance Taylor
3c8caeb720 revert Alpha/OpenBSD patches 1997-04-30 16:12:04 +00:00
Ian Lance Taylor
f4236094a0 Mon Apr 21 11:21:31 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf32-m68k.c: Follow the last changes in elf32-i386.c:
	(struct elf_m68k_pcrel_relocs_copied, struct
	elf_m68k_link_hash_entry, struct elf_m68k_link_hash_table,
	elf_m68k_link_hash_traverse, elf_m68k_hash_table,
	elf_m68k_link_hash_newfunc, elf_m68k_link_hash_table_create,
	elf_m68k_discard_copies, bfd_elf32_bfd_link_hash_table_create):
	New definitions.
	(elf_m68k_check_relocs): If linking with -Bsymbolic, don't copy
	PC relative relocs for a global symbol defined in a regular
	object, and count the number of PC relative relocs copied for any
	global symbol.
	(elf_m68k_size_dynamic_sections): If linking with -Bsymbolic,
	traverse with elf_m68k_discard_copies.
1997-04-21 15:22:42 +00:00
Ian Lance Taylor
9d71be7231 * elf32-i386.c (elf_i386_check_relocs): Only count PC relative
relocs.  From Jamie Lokier <jamie@rebellion.co.uk>.
1997-04-20 02:57:25 +00:00
Ian Lance Taylor
752eaefc85 * coffcode.h (coff_compute_section_file_positions): Force the
potential last byte in the file to be written out when
	COFF_IMAGE_WITH_PE.
1997-04-20 02:50:49 +00:00
Ian Lance Taylor
896d548cb1 * coff-alpha.c (bsd_alpha_howto_table): Cloned from alpha_howto_table
but with an added LITERALSLEAZY entry.
	(alpha_adjust_reloc_in): Add handling of LITERALSLEAZY relocs.  Use
	info on the howto_table gotten from the ecoff_backend data.
	(alpha_ecoff_get_relocated_section_contents): Ditto.
	(alpha_bfd_reloc_type_lookup): Ditto.
	(alpha_relocate_section): Ditto.  Also remove an assertion
	causing failures on *BSD/alpha systems.
	(alpha_ecoff_backend_data): Addition of fields to handle different
	howto tables as well as a has_literalseazy flag.
	(bsd_alpha_ecoff_backend_data): New backend data structure for *BSD.
	(bsd_ecoffalpha_little_vec): Define.
	* coff-mips.c (MIPS_HOWTO_COUNT): Removed, it's unused.
	(mips_adjust_reloc_in): Use new ecoff_backend data to get at the howto
	table.
	(mips_bfd_reloc_type_lookup): Ditto.
	(mips_relocate_section): Ditto.
	(mips_ecoff_backend_data): Addition of fields to handle different
	howto tables as well as a has_literalseazy flag.
	* config.bfd: (alpha-*-openbsd*): New target.
	* configure.in (alpha*-*-openbsd*): New target.
	(bsd_ecoffalpha_little_vec): New vector for *BSD/Alpha ECOFF.
	* ecoff.c (_bfd_ecoff_set_arch_mach_hook): Handle new magic.
	(ecoff_get_magic): Ditto.
	* libecoff.h (ecoff_backend_data): Addition of fields to handle
	different howto tables as well as a has_literalseazy flag.
	* reloc.c: BFD_RELOC_ALPHA_LITERALSLEAZY): New reloc.
	* targets.c (bsd_ecoffalpha_little_vec): Declare.
	(bfd_target_vector): Include the bsd_ecoffalpha_little_vec target.
	* configure, bfd-in2.h, libbfd.h: Rebuild.
1997-04-18 15:50:19 +00:00
Ian Lance Taylor
a041278519 x 1997-04-17 18:06:32 +00:00
Ian Lance Taylor
e066f244d5 Thu Apr 17 13:46:56 1997 Per Fogelstrom <pefo@openbsd.org>
* configure.host (mips*-*-openbsd*): New target.
1997-04-17 17:51:22 +00:00
Ian Lance Taylor
f02004e95a * elflink.h (elf_link_add_object_symbols): Only subtract the
section VMA from the symbol value if this is a fully linked file.
1997-04-17 16:29:43 +00:00
Ian Lance Taylor
6e2183b1a7 * elf32-i386.c (struct elf_i386_pcrel_relocs_copied): Define.
(struct elf_i386_link_hash_entry): Define.
	(struct elf_i386_link_hash_table): Define.
	(elf_i386_link_hash_traverse): Define.
	(elf_i386_hash_table): Define.
	(elf_i386_link_hash_newfunc): New static function.
	(elf_i386_link_hash_table_create): New static function.
	(elf_i386_check_relocs): If linking with -Bsymbolic, don't copy
	PC relative relocs for a global symbol defined in a regular
	object, and count the number of PC relative relocs copied for any
	global symbol.
	(elf_i386_size_dynamic_sections): If linking with -Bsymbolic,
	traverse with elf_i386_discard_copies.
	(elf_i386_discard_copies): New static function.
	(bfd_elf32_bfd_link_hash_table_create): Define.
1997-04-17 16:13:36 +00:00
Ian Lance Taylor
81f01dd538 From Gordon W. Ross <gwr@mc.com>:
* aoutf1.h (MY_entry_is_text_address): Define if not defined.
	(sunos4_aout_backend): Use MY_entry_is_text_address.
1997-04-17 15:12:09 +00:00
Ian Lance Taylor
a895901a15 From Gordon W. Ross <gwr@mc.com>:
* netbsd.h (N_SHARED_LIB): Define.
	(SEGMENT_SIZE): Don't define.
	* m68knetbsd.c (SEGMENT_SIZE): Don't define (revert change of
	April 11).
	* sparcnetbsd.c (TARGET_PAGE_SIZE): Define as 0x2000.
	(SEGMENT_SIZE): Don't define.
1997-04-16 22:02:56 +00:00
Martin Hunt
ebec2a6a21 Wed Apr 16 12:43:32 1997 Martin Hunt <hunt@cygnus.com>
* elf32-d30v.c (elf_d30v_howto_table): Changed size of
	R_D30V_32_NORMAL to 2 (4 bytes).
1997-04-16 19:50:24 +00:00
Ian Lance Taylor
10888f106a * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Set .rela.bss size
to sizeof Rela structure, not sizeof Rel structure.  From Gary
	Thomas <g.thomas@opengroup.org>.
1997-04-16 18:03:42 +00:00
Ian Lance Taylor
55aba3335b * aout-target.h (MY(callback)): If entry_is_text_address, adjust
whenever entry is larger than text address, but only by whole
	pages.  From Gordon W. Ross <gwr@mc.com>.
1997-04-15 19:47:45 +00:00
Ian Lance Taylor
9b31e6f533 * Makefile.in (install): Depend upon installdirs. Use
mkinstalldirs to build $(oldincludedir).
	(installdirs): New target.
1997-04-15 16:38:24 +00:00
Ian Lance Taylor
a0c807260c * elflink.h (elf_link_add_object_symbols): Don't call check_relocs
if this is a debugging section which we are stripping.
1997-04-15 15:54:24 +00:00
Ian Lance Taylor
e5d7e3df0d From Thomas Graichen <graichen@rzpd.de>:
* Makefile.in: Always use $(SHELL) when running move-if-change.
	* configure.in: Use ${CONFIG_SHELL} when running $ac_config_sub.
	* configure: Rebuild.
1997-04-14 15:47:24 +00:00
Ian Lance Taylor
3bc3351e05 * elfcode.h (elf_slurp_symbol_table): Only subtract the section
VMA if this is an executable file or a shared object.
1997-04-11 22:14:21 +00:00
Ian Lance Taylor
faa0b8db32 * targets.c (netbsd_core_vec): Declare. From Gordon W. Ross
<gwr@mc.com>.

	* libaout.h (struct aout_backend_data): Add entry_is_text_address
	field.
	* aout-target.h (SEGMENT_SIZE): Define to TARGET_PAGE_SIZE at the
	start of the file.  Remove uses later on which switch using
	ifdef.
	(MY(callback)): Handle entry_is_text_address.
	(MY_entry_is_text_address): Define if not defined.
	(MY(backend_data)): Initialize new field.
	* aoutf1.h (sunos4_aout_backend): Likewise.
	* i386aout.c (MY(backend_data)): Likewise.
	* i386mach3.c (MY(backend_data)): Likewise.
	* mipsbsd.c (MY(backend_data)): Likewise.
	* sparclynx.c (sparclynx_aout_backend): Likewise.
	* netbsd.h (SEGMENT_SIZE): Define if not defined.
	(MY_entry_is_text_address): Define.
	* m68knetbsd.c (SEGMENT_SIZE): Define as 0x20000
1997-04-11 20:27:40 +00:00
Ian Lance Taylor
4b8c8bb988 * xcofflink.c (bfd_xcoff_import_symbol): Handle importing a symbol
whose name starts with `.'.
PR 12061.
1997-04-11 19:44:15 +00:00
Ian Lance Taylor
3b1b0308a4 * config.bfd: (i[3456]86-*-openbsd*, m68*-*-openbsd*,
mips*el*-*-openbsd*, mips*-*-openbsd*, ns32k-*-openbsd*,
	powerpc-*-*bsd*, sparc-*-openbsd*): New targets.
	* configure.in (i[3456]86-*-openbsd*, mips*-*-openbsd*,
	m68*-*-openbsd*, ns32k-*-openbsd*, powerpc-*-*bsd*,
	sparc-*-openbsd*): New targets.
	* configure: Rebuild.
1997-04-11 15:59:02 +00:00
Ian Lance Taylor
57a3027b38 Tue Apr 8 18:09:29 1997 Jamie Lokier <jamie@rebellion.co.uk>
* stabs.c (struct stab_section_info): New field
	`cumulative_skips'.
	(_bfd_link_section_stabs): Fill the above array.
	(_bfd_stab_section_offset): Use `cumulative_skips' to
	speed up offset calculation.
1997-04-08 22:10:27 +00:00
Jeff Law
6944401473 * elf32-mn10300.c (mn10300_elf_relax_section): Don't forget the
addend for non pc-relative relocations.
Bug exposed by testing relaxing linker.
1997-04-08 13:52:51 +00:00
Jeff Law
a01362cc63 * elf-m10300.c (bfd_elf32_mn10300_reloc): Remove prototype
for non-existent function.
Just something I noticed.

        * elf-m10300.c (mn10300_elf_relax_section): New function.
        (mn10300_elf_relax_delete_bytes): Likewise.
        (mn10300_elf_symbol_address_p): Likewise.
        (mn10300_elf_get_relocated_section_contents): Likewise.
        (bfd_elf32_bfd_relax_section): Define.
        (bfd_elf32_bfd_get_relocated_section_contents): Likewise.
Basic relaxing linker.
1997-04-08 06:08:29 +00:00
Ian Lance Taylor
418d5b058a * configure.host: Set SHLIB_LIBS.
* configure.in: Substitute SHLIB_LIBS.
	* configure: Rebuild.
	* Makefile.in (SHLIB_LIBS): New variable.
	($(SHLIB)): Use $(SHLIB_LIBS).
1997-04-07 21:00:31 +00:00
Ian Lance Taylor
61e51cd730 * Makefile.in (distclean): Don't remove *.info files. 1997-04-07 19:24:32 +00:00
Michael Snyder
d9654a710e Mon Apr 7 10:53:52 1997 Michael Snyder <msnyder@cleaver.cygnus.com>
* bfd-in.h bfd-in2.h: add bfd_section_lma macro to correspond
        with bfd_section_vma.
1997-04-07 17:56:18 +00:00
Ian Lance Taylor
b872076e96 * configure.in: Update file names for bfd_elf32_mn10[23]00_vec.
Correct CPU file names for mn10[23]00.
	* configure: Rebuild.
1997-04-05 00:52:15 +00:00
Ian Lance Taylor
ac66474758 * bfd.c (bfd_record_phdr): Cast count to size_t before
subtraction.
1997-04-04 20:59:36 +00:00
Ian Lance Taylor
44fe6ab1e5 * coff-ppc.c (dump_toc): Add cast to avoid warning from SunOS cc.
* coff-rs6000.c (xcoff_read_ar_hdr): Likewise.
	(xcoff_write_archive_contents): LIkewise.
	* elf32-mips.c (_bfd_mips_elf_set_section_contents): Likewise.
	(mips_elf_create_procedure_table): Likewise.
	* peicode.h (pe_print_idata): Likewise.
	(pe_print_edata, pe_print_pdata, pe_print_reloc): Likewise.
	* xcofflink.c (xcoff_get_section_contents): Likewise.
	(_bfd_xcoff_canonicalize_dynamic_symtab): Likewise.
	(xcoff_link_add_symbols): Likewise.
	(xcoff_link_add_symbols): Likewise.
1997-04-04 19:35:32 +00:00
Ian Lance Taylor
0cea98f0c1 * ppcboot.c (ppcboot_set_arch_mach): Make static.
(ppcboot_bfd_print_private_bfd_data): Likewise.
1997-04-04 19:08:42 +00:00
Ian Lance Taylor
5641f23e6c * elf32-mips.c (elf_mips_ctor64_howto): Set complain_on_overflow
to complain_overflow_signed.
1997-04-04 16:38:02 +00:00
Ian Lance Taylor
58b4a8f344 * VERSION: Set to 2.8.1.
* Branched binutils 2.8.
1997-04-03 18:16:38 +00:00
Ian Lance Taylor
d0c45fcb75 tweak last patch 1997-04-03 16:27:28 +00:00
Ian Lance Taylor
ba254dc504 Revert last patch, and:
* elflink.h (elf_link_add_object_symbols): Let a common symbol
	override an uninitialized symbol from a shared library with a
	smaller size.
1997-04-02 22:47:29 +00:00
Ian Lance Taylor
f74e2365dd * elflink.h (elf_link_add_object_symbols): When there is a size
change, use the larger size.  From H.J. Lu <hjl@gnu.ai.mit.edu>.
1997-04-02 22:17:35 +00:00
Michael Meissner
acba322ed2 Undo part of 3/26 change and always create got section 1997-04-02 21:22:19 +00:00
Ian Lance Taylor
7a68d1f726 * elf-m10200.c: Rename from elf32-mn10200.c.
* elf-m10300.c: Rename from elf32-mn10300.c.
	* cpu-m10200.c: Rename from cpu-mn10200.c
	* cpu-m10300.c: Rename from cpu-mn10300.c
	* Makefile.in: Update accordingly.
1997-04-02 21:09:29 +00:00
Ian Lance Taylor
3072dce9e5 * elf32-mips.c (elf_mips_ctor64_howto): New static variable.
(elf_mips_isa): Move to earlier in file.
	(mips_reloc_map): Remove BFD_RELOC_CTOR entry.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_CTOR
	specially.
1997-04-02 16:57:43 +00:00
Ian Lance Taylor
ab66cc8d3d * elf32-mips.c (mips16_jump_reloc): Print a warning rather than
calling abort.
PR 11972.
1997-04-02 15:49:47 +00:00
Ian Lance Taylor
0f8545578e Tue Apr 1 16:18:05 1997 Klaus Kaempf <kkaempf@progis.de>
* configure.com: New file.
	* config.h-vms: Remove file.
	* makefile.vms: Update for new configure scheme.
1997-04-01 21:19:48 +00:00
Ian Lance Taylor
8faaff9e41 Mon Mar 31 23:28:39 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* coffcode.h (coff_mkobject_hook): Declare if not a macro.
1997-04-01 04:30:38 +00:00
Ian Lance Taylor
3418d8c43d x 1997-03-31 21:35:19 +00:00
Ian Lance Taylor
5cfc99877f Mon Mar 31 16:29:50 1997 Joel Sherrill <joel@oarcorp.com>
* bfd/config.bfd (hppa*-*-rtems*): New target, like hppa-*-*elf*.
1997-03-31 21:30:49 +00:00
Ian Lance Taylor
34c6830141 * coff-a29k.c (coff_a29k_relocate_section): Don't use symndx as a
symbol index for a R_IHCONST reloc.
1997-03-31 21:12:54 +00:00
Ian Lance Taylor
774dc17cdc Mon Mar 31 15:40:59 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* targmatch.sed: Do not use \(\) recursively.
1997-03-31 20:41:59 +00:00
Ian Lance Taylor
5f792743f1 From David S. Miller <davem@caip.rutgers.edu> and H.J. Lu
<hjl@gnu.ai.mit.edu>:
	* sparclinux.c: New file.
	* config.bfd (sparc-*-linuxaout*, sparc-*-linux*): New targets.
	* configure.in (sparclinux_vec): Add to list of vectors.
	* configure: Rebuild.
	* targets.c (sparclinux_vec): Declare.
	(bfd_target_vector): Add sparclinux_vec.
	* Makefile.in: Rebuild dependencies.
	(BFD32_BACKENDS): Add sparclinux.o.
	(BFD32_BACKENDS_CFILES): Add sparclinux.c.
1997-03-28 20:24:08 +00:00
Ian Lance Taylor
9e55b695b2 Fri Mar 28 14:44:08 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* m68klinux.c (MACHTYPE_OK): Define.
	* i386linux.c (MACHTYPE_OK): Define.
1997-03-28 19:47:20 +00:00
Ian Lance Taylor
bebe5fbfd8 * coff-mips.c (mips_ecoff_backend_data): Initialize new
bfd_coff_backend_data field.
	* coff-alpha.c (alpha_ecoff_backend_data): Likewise.
1997-03-28 19:01:48 +00:00
Ian Lance Taylor
f0315e65fa * config.bfd: Add bfd_elf64_{big,little}mips_vec to targ_selvecs
for mips*el*-*-linux* and mips*-*-linux*.  From H.J. Lu
	<hjl@lucon.org> and Ralf Baechle <ralf@gnu.ai.mit.edu>.
1997-03-28 17:39:23 +00:00
Ian Lance Taylor
f3f3b47503 * bfd.c: Include "libiberty.h".
(strerror): Don't declare.
	(bfd_errmsg): Call xstrerror rather than strerror.
1997-03-28 16:56:57 +00:00
Ian Lance Taylor
eb80d52a27 * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Generate a COPY
reloc even if the symbol is in the .bss section.
	* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
	* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
	* elf32-sparc.c (elf32_sparc_adjust_dynamic_symbol): Likewise.
1997-03-27 18:45:20 +00:00
Ian Lance Taylor
f89adeb774 * coffcode.h (bfd_coff_backend_data): Add new field
_bfd_coff_default_section_alignment_power.
	(bfd_coff_default_section_alignment_power): Define.
	(bfd_coff_std_swap_table): Initialize new field.
	* libcoff.h: Rebuild.
	* cofflink.c (coff_link_add_symbols): Limit alignment of a common
	symbol to the default section alignment.
1997-03-27 18:01:55 +00:00
Ian Lance Taylor
013b249fef * COPYING: Update FSF address. 1997-03-27 17:56:03 +00:00
Martin Hunt
0e9c437767 Thu Mar 27 00:45:57 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* elf32-d30v.c (elf_d30v_howto_table): Fix a typo in the
	21-bit absolute that made it act as a relative.
1997-03-27 08:48:14 +00:00
Ian Lance Taylor
537327bc62 * elf32-ppc.c (ppc_elf_check_relocs): Only create the got section
if it is needed.
1997-03-26 19:51:12 +00:00
Stu Grossman
60d1227a31 * aoutx.h (some_aout_object_p): Change executable test to fix
problems with embedded a.out systems.
1997-03-26 06:53:10 +00:00
Ian Lance Taylor
6717fb0de0 * stabs.c (_bfd_stab_section_offset): New function.
* libbfd-in.h (_bfd_stab_section_offset): Declare.
	* libbfd.h: Rebuild.
	* elf32-i386.c (elf_i386_relocate_section): Adjust the offset of a
	stab reloc.
	* 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-alpha.c (elf64_alpha_relocate_section): Likewise.
1997-03-25 20:49:31 +00:00
Ian Lance Taylor
3cd5cf3d40 * stabs.c (_bfd_link_section_stabs): Copy over the first header
symbol.  Check for memory allocation failure of *psinfo.
	(_bfd_write_section_stabs): Add psinfo parameter.  Change all
	callers.  Set the value of the header symbol.
	* libbfd-in.h (_bfd_write_section_stabs): Update declaration.
	* libbfd.h: Rebuild.
1997-03-25 19:46:12 +00:00
Fred Fish
67e87a1d4f * coff-tic80.c (tic80_howto_table): Add R_ABS entry.
(rtype2howto): Handle R_ABS reloc type.  Also abort on unhandled
	reloc types, rather than silently failing to generate an output file.
1997-03-25 03:07:35 +00:00
Ian Lance Taylor
e1ea3dd50b * targmatch.sed: Use the hold space to put the #ifdef around the
the string constant.
	* targets.c (UNSUPPORTED_TARGET): Don't define.
	(find_target): Don't check for UNSUPPORTED_TARGET.
	(bfd_set_default_target): Don't try to optimize by checking for
	default.
1997-03-24 21:22:00 +00:00
Ian Lance Taylor
032dc9edcb * Makefile.in: Rebuild dependencies.
(ALL_MACHINES_CFILES): Add cpu-m32r.c.
	(BFD32_BACKENDS_CFILES): Add elf32-m32r.c.
	(elf32-m32r.o): Remove explicit target.
1997-03-24 20:07:49 +00:00
Ian Lance Taylor
19d025765c * config.bfd: Don't set targ_underscore for i[3456]86-*-gnu* or
i[3456]86-*-linux*.
1997-03-24 19:52:42 +00:00
Ian Lance Taylor
e91487242e * elf32-sparc.c (elf32_sparc_size_dynamic_sections): Don't
count section symbols for sections that were created by the
	linker, or are not allocatable or not loadable.
	(elf32_sparc_finish_dynamic_sections): Output output section
	symbols for section for which we made space for them.
1997-03-24 18:42:09 +00:00
David Edelsohn
37bdd624bd Remove m32r sanitization. 1997-03-21 20:59:30 +00:00
David Edelsohn
ff22a9dbf8 * elf32-m32r.c (m32r_elf_howto_table): Use special function for LO16.
(m32r_hi16_list): New static local.
	(m32r_elf_hi16_reloc): Don't perform reloc, just queue it up.
	(m32r_elf_do_hi16_reloc): Delete.
	(m32r_elf_relocate_hi16): New function.
	(m32r_elf_lo16_reloc): New function.
	(m32r_elf_relocate_section): For HI16 relocs, scan for corresponding
	LO16 reloc.

	* elf32-m32r.c (m32r_elf_create_linker_section): Delete.
	(m32r_elf_add_symbol_hook): Rewrite _SDA_BASE_ support.
	(m32r_elf_final_sda_base): New function.
	(m32r_elf_relocate_section): Rewrite sdata support.
	(m32r_elf_finish_dynamic_sections): Delete.
Bring over from m32r-970131 branch.
1997-03-21 20:51:17 +00:00
Ian Lance Taylor
0727fe1023 * elf32-sparc.c (elf32_sparc_size_dynamic_sections): If there is
no .rela.plt section, don't output a DT_PLTGOT dynamic entry.
Handles the case of a shared library with no function calls.
1997-03-21 18:09:12 +00:00
Ian Lance Taylor
ac388f2a39 Based on patches from Philippe De Muyter <phdm@info.ucl.ac.be>.
* coff-svm68k.c: New file.  Just defines some macros and includes
	coff-m68k.c.
	* coff-m68k.c: Add functions to handle common addends, moved in
	from cf-m68klynx.c.  Control them using COFF_COMMON_ADDEND macro.
	Control whether relocs are visible using STATIC_RELOCS.
	* cf-m68klynx.c: Simplify greatly: just define macros to control
	coff-m68k.c.
	* coff-aux.c: Likewise.  Just leave add_one_symbol routine.
	* targets. (m68ksysvcoff_vec): Declare.
	(bfd_target_vector): Add m68ksysvcoff_vec.
	* config.bfd (m68*-motorola-sysv*): New target.
	* configure.in (m68ksysvcoff_vec): New vector.
	* configure: Rebuild.
	* Makefile.in: Rebuild dependencies.
 	(BFD32_BACKENDS): Add coff-svm68k.o.
	(BFD32_BACKENDS_CFILES): Add coff-svm68k.c.
1997-03-20 21:23:10 +00:00
Ian Lance Taylor
b9576d75bc * binary.c (binary_set_section_contents): Don't get misled if the
first section is not loadable.  From Matthew L. Martin
 	<mlm@xedia.com>.
1997-03-20 18:33:44 +00:00
Ian Lance Taylor
34bc6ffca6 * elflink.h (elf_bfd_final_link): Set the value of a section
symbol to the section address unless doing a relocateable link.
1997-03-20 17:40:06 +00:00
Ian Lance Taylor
7197adc414 * Makefile.in: Rebuild dependencies. 1997-03-19 04:02:00 +00:00
Ian Lance Taylor
303e725723 Tue Mar 18 22:40:09 1997 H.J. Lu <hjl@lucon.org>
* Many files: Add function prototypes.
	* cpu-m68k.c (bfd_default_scan_num_mach): Don't declare.
	* ecofflink.c: Include "libcoff.h" and "libecoff.h".
	* elf32-ppc.c (ppc_elf_fake_sections): Make static.
	* opncls.c (bfd_openstreamr): Change stream parameter to PTR.
	* peicode.h: Change several void * parameters to PTR.
	* srec.c (srec_get_symbol_info): Make static.
	* syms.c (bfd_symbol_is_absolute): Remove.
1997-03-19 03:58:45 +00:00
Ian Lance Taylor
e76386d24b start-sanitize-m32r
* elf32-m32r.c (m32r_elf_is_local_label_name): Remove.
	(bfd_elf32_bfd_is_local_label): Don't define.

end-sanitize-m32r
1997-03-19 03:01:27 +00:00
Ian Lance Taylor
939b216956 * xcofflink.c (_bfd_xcoff_bfd_final_link): Call bfd_malloc rather
than malloc.
1997-03-18 17:58:48 +00:00
Ian Lance Taylor
724a4c0d46 fix tipo in comment 1997-03-18 16:39:38 +00:00
Ian Lance Taylor
508539ab8b * bfd-in.h: Don't include obstack.h.
(struct bfd_hash_table): Change memory field to PTR.
	* bfd.c (struct _bfd): Change memory field to PTR.
	* bfd-in2.h: Rebuild.
	* libbfd-in.h (bfd_release): Declare as function, don't define as
	macro.
	* libbfd.h: Rebuild.
	* opncls.c: Include "objalloc.h" rather than "obstack.h".  Use
	objalloc routines rather than obstack routines.
	(obstack_chunk_alloc, obstack_chunk_free): Don't define.
	(getpagesize): Don't define.
	(_bfd_new_bfd): Don't set _bfd_chunksize.
	(bfd_openr): Free new bfd and objalloc on failure.
	(bfd_fdopenr, bfd_openstreamr, bfd_openw): Likewise.
	(bfd_alloc_size): Remove.
	(bfd_release): New function.
	* hash.c: Include "objalloc.h" rather than "obstack.h".  Use
	objalloc routines rather than obstack routines.
	(obstack_chunk_alloc, obstack_chunk_free): Don't define.
	* ecofflink.c: Include "objalloc.h" rather than "obstack.h".  Use
	objalloc routines rather than obstack routines.
	(obstack_chunk_alloc, obstack_chunk_free): Don't define.
	(struct accumulate): Change memory to struct objalloc *.
	* liboasys.h (oasys_data_type): Remove oasys_obstack field.
	* dep-in.sed: Don't remove obstack.h from dependency list.
	* Makefile.in: Rebuild dependencies.
	(BFD_H_DEPS): Remove obstack.h.
	(install): Don't install obstack.h.
	* Many files: Don't include "obstack.h".
	* VERSION: Bump.
1997-03-18 00:47:04 +00:00
Ian Lance Taylor
0103b44764 * srec.c (srec_scan): Rewrite to not use obstack_1grow. 1997-03-17 20:14:55 +00:00
Ian Lance Taylor
062a1b96e0 * opncls.c (bfd_alloc_grow, bfd_alloc_finish): Remove.
* libbfd-in.h (bfd_alloc_grow, bfd_alloc_finish): Don't declare.
	* libbfd.h: Rebuild.
	* ieee.c (ieee_archive_p): Rewrite to not use bfd_alloc_grow.
	* sunos.c (sunos_add_dynamic_symbols): Likewise.
1997-03-17 17:51:20 +00:00
Ian Lance Taylor
50ede03d76 * opncls.c (bfd_alloc): Rename from bfd_alloc_by_size_t. Remove
old version of bfd_alloc.
	* libbfd-in.h (bfd_alloc_by_size_t): Don't declare.
	* libbfd.h: Rebuild.
	* Several files: Call bfd_alloc rather than bfd_alloc_by_size_t.
1997-03-17 16:36:08 +00:00
Ian Lance Taylor
5e67a3c601 * elf32-mips.c (mips_elf_is_local_label_name): Accept the generic
ELF local label syntax as well.
1997-03-15 20:27:16 +00:00
Fred Fish
7305cacd49 * config.bfd (powerpc-*-beos*): New target.
* configure.in (powerpc-*-beos*): Add case that explicitly
	does not set COREFILE for now.  A future BeOS version is
	expected to support core files.
	* configure: Regenerate with autoconf.
1997-03-15 17:27:45 +00:00
Ian Lance Taylor
4813bbed2b * elf32-mips.c (mips_elf_check_relocs): Give an error if CALL16 is
seen with a local symbol, rather than crashing.
1997-03-15 02:16:30 +00:00
Ian Lance Taylor
f56d634e29 * elfcode.h (elf_slurp_symbol_table): Don't try to read the
version symbols if there aren't any.
1997-03-14 21:46:39 +00:00
Fred Fish
4507d85857 * coff-tic80.c (coff_rtype_to_howto): Define
(coff_tic80_rtype_to_howto): Clone generic coff version and
	add code to handle the funky TI "internal relocations".
1997-03-13 23:40:30 +00:00
Ian Lance Taylor
37897db02c * elflink.h (elf_link_add_object_symbols): Don't warn about type
or size changes because of a weak symbol.
PR 11827.
1997-03-13 19:24:20 +00:00
Ian Lance Taylor
94ba939aae * cisco-core.c (SIGEMT): Define if not defined. 1997-03-13 19:11:06 +00:00
Ian Lance Taylor
e549b1d2a3 * elflink.h (elf_link_add_object_symbols): Use extsymoff when
setting ever.  Sanity check the version number.  Sort out copying
	flags and other information when adding an indirect symbol.
	(NAME(bfd_elf,size_dynamic_sections)): Preserve any dynamic
	symbols added by the backend.  Clear the entire contents of the
	versym section.
	(elf_export_symbol): Ignore indirect symbols.
	(elf_link_output_extsym): Accept a section without an owner in an
	assert.
	* elfcode.h (elf_slurp_symbol_table): Add a sanity check on the
	version count.  Correct the allocation of x_versymp.
1997-03-13 02:41:44 +00:00
Ian Lance Taylor
7d996a75d2 * elf32-mips.c (mips_elf_add_symbol_hook): Don't set the owner of
the magic sections used for SHN_MIPS_TEXT and SHN_MIPS_DATA.
	Don't return bfd_und_section_ptr when info->shared.
	(mips_elf_final_link): Set the alignment of .rtproc to 4, not 12.
	(mips_elf_create_dynamic_sections): Correct type: ^= for &=.
	(mips_elf_check_relocs): Resolve an indirect symbol in
	sym_hashes.
	(mips_elf_finish_dynamic_symbol): Don't change SHN_ABS into
	SHN_MIPS_TEXT or SHN_MIPS_DATA.
1997-03-13 02:41:08 +00:00
Ian Lance Taylor
52c92c7f75 From Eric Youngdale <eric@andante.jic.com>:
* elf-bfd.h (ELF_LINK_FORCED_LOCAL): Define.
	* elf.c (bfd_elf_print_symbol): Correct errors in last change.
	* elflink.h (elf_link_add_object_symbols): Handle cases in which a
	versioned symbol appears in both a regular and a shared object.
	(elf_link_assign_sym_version): Set ELF_LINK_FORCED_LOCAL when
	appropriate.  Improve error message.
	(struct elf_outext_info): Rename from elf_finfo_failed.  Change
	all uses.  Add localsyms field.
	(elf_bfd_final_link): When generating a shared library, call
	elf_link_output_extsym to output all local symbols.
	(elf_link_output_extsym): Handle symbols which were forced to
	become local.
1997-03-11 06:46:46 +00:00
Ian Lance Taylor
d6bfcdb505 From Eric Youngdale <eric@andante.jic.com>:
* elf-bfd.h (elf_symbol_type): Add version field.
	* elfcode.h (elf_slurp_symbol_table): Set version field.
	* elflink.h (elf_link_add_object_symbols): When creating an
 	indirect symbol for a default version symbol, set DEF_DYNAMIC if
 	appropriate.  Set up an indirection from the nondefault version of
	the symbol as well.
	(NAME(bfd_elf,size_dynamic_sections)): Call
	elf_link_assign_sym_version before checking whether there are any
	versions.  Always record the version name as a dynamic symbol.
	Initialize counters.
	(elf_link_assign_sym_version): After finding a version, see if a
	symbol should be forced to local scope.  Create a new version
	definition if appropriate.
	(elf_link_output_extsym): Correct indirect symbol handling.
	* elf.c (bfd_elf_print_symbol): Print version information.
	(bfd_section_from_shdr): Turn version sections into BFD sections.
	(elf_fake_sections): Only copy cverdefs and cverrefs into sh_info
	if sh_info is not already set.
	(_bfd_elf_copy_private_section_data): Copy sh_info for version
	sections.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Tell
	_bfd_stringtab_add to copy the name into permanent memory if
	appropriate.
1997-03-10 04:43:42 +00:00
Ian Lance Taylor
ccd0e5e29d * coffcode.h (bfd_coff_backend_data): Change
_bfd_coff_compute_section_file_positions to return a boolean
	value.  Change all callers.
	(coff_compute_section_file_positions): Change return type to
	boolean.  If the size of the last section changed, then output a
	zero byte at the end of the file.
	* libcoff.h: Rebuild.
PR 11806.
1997-03-07 17:45:43 +00:00
Ian Lance Taylor
7debe20cf7 Fri Mar 7 11:55:31 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Fully parenthesize.
1997-03-07 16:57:21 +00:00
Ian Lance Taylor
e8c4696e1b * xcofflink.c (_bfd_xcoff_bfd_final_link): Always allocate space
for at least 6 output symbols.
	(xcoff_write_global_symbol): When emitting TOC entry relocs, also
	emit a TC csect to represent the space they take up.  For an XO
	symbol, just emit a reference, not a csect.
PR 11793.
1997-03-07 16:50:22 +00:00
Jeff Law
a98a3061a6 Update copyrights. 1997-03-07 16:11:48 +00:00
Ian Lance Taylor
5bd7c941e3 x 1997-03-07 15:51:28 +00:00
Ian Lance Taylor
4104dff66f * Makefile.in ($(SHLINK)): Just use ln -s, not ln -sf, since
Solaris doesn't like the combined options, and the -f is
	unnecessary.
1997-03-07 15:50:33 +00:00
Ian Lance Taylor
358bb592ee * elf32-mips.c (mips_elf_relocate_section): Correct R_MIPS16_26
handling when little endian.
1997-03-07 15:38:12 +00:00
Jeff Law
8821be29aa Update copyright dates. 1997-03-07 00:00:09 +00:00
Jeff Law
5847e6dd37 * elf32-mn10300.c (mn10300_elf_final_link_relocate): New function.
(mn10300_elf_relocate_section): Likewise.
        (elf_backend_relocate_section): Define.
New style linker for the mn10300.
1997-03-06 21:17:49 +00:00
Jeff Law
77bf22e653 * elf32-mn10300.c (reloc_type): Remove PCREL{8,16,32}_{1,2}BYTE
relocs.  Replace them with generic PCREL_{8,16,32} relocs.
        (elf32_mn10300_howto_table): Likewise.
        (elf32_mn10300_reloc_map): Likewise.
        (bfd_elf32_mn10300_reloc): Delete unused function.
Simplify the mn10300 port.  Stuff I noticed while working on the mn10200.
1997-03-06 20:55:44 +00:00
Fred Fish
13b58694fb start-sanitize-tic80
* coff-tic80.c (rtype2howto): If passed a relocation type we don't
	understand, just set the howto field to NULL, and the caller will
	print an appropriate error message.
end-sanitize-tic80
	* coffcode.h (coff_slurp_reloc_table): Pull duplicate declarations and
	code fragment out of both legs of #ifdef RELOC_PROCESSING ... #endif
	block.  Use NULL for initializations of "ptr" rather than bare 0.
	* coff-h8300.c: Fix typo in comment.
	* coff-h8500.c: Ditto.
	* coff-w65.c: Ditto
	* coff-z8k.c: Ditto.
1997-03-06 19:53:29 +00:00
David Edelsohn
da1714618a * elf32-m32r.c (m32r_elf_do_10_pcrel_reloc): Fix overflow calc.
(m32r_elf_relax_section, m32r_elf_relax_delete_bytes,
	m32r_elf_get_relocated_section_contents): First pass at relax support.
1997-03-05 22:13:46 +00:00
Ulrich Drepper
d2f0374f23 (elf_link_add_object_symbols): Use correct sh_size
entry for reading verdef records.
Use correct braces for computing increments of extverdaux and
exteverdef record pointers.
1997-03-03 21:32:39 +00:00
Fred Fish
4b4ac3aec2 * coff-tic80.c (COFF_DEFAULT_SECTION_ALIGNMENT_POWER): Set this to 2
instead of 4.
1997-03-03 05:51:52 +00:00
Jim Wilson
a3c5b9a4a1 Correct d10v sanitization errors. 1997-03-03 00:35:40 +00:00
Ian Lance Taylor
a48ef404c7 * elflink.h (elf_link_find_version_dependencies): Check that
DEF_REGULAR is not set as well as checking that DEF_DYNAMIC is
	set.
1997-03-03 00:27:52 +00:00
Fred Fish
84fd6e7ed2 * coffcode.h (coff_set_flags): Add case for TIC80_ARCH_MAGIC. 1997-02-28 23:59:26 +00:00
Ian Lance Taylor
73769e1f01 * targets.c (bfd_default_vector): Make non-const.
(find_target): New static function, broken out of
	bfd_find_target.
	(bfd_set_default_target): New function.
	(bfd_find_target): Call find_target.  When defaulting, use
	bfd_default_vector[0] if it is not NULL.
	* libbfd-in.h (bfd_default_vector): Adjust declaration.
	* bfd-in2.h, libbfd.h: Rebuild.
1997-02-28 22:16:45 +00:00
Ian Lance Taylor
af4dffffc8 * syms.c (bfd_is_local_label): Return false if the symbol has no
name.
	* coff-i960.c (coff_i960_is_local_label_name): New function.
	(coff_bfd_is_local_label_name): Define.
	* coff-m68k.c (m68k_coff_is_local_label_name): New function.
	(coff_bfd_is_local_label_name): Define.
	* coff-rs6000.c (xcoff_is_local_label_name): New function.
	(coff_bfd_is_local_label_name): Define.
	* elf.c (_bfd_elf_is_local_label_name): Treat symbols beginning
	with .. or _.L_ as local.
	* elf32-i386.c (elf_i386_is_local_label_name): New function.
	(bfd_elf32_bfd_is_local_label_name): Define.
	* evax-alpha.c (evax_bfd_is_local_label_name): Treat symbols
	beginning with $ as local.
1997-02-28 20:10:49 +00:00
Ian Lance Taylor
e316f51498 * aoutx.h (aout_link_write_symbols): Use bfd_is_local_label_name
rather than comparing against info->lprefix.
	* cofflink.c (_bfd_coff_link_input_bfd): Likewise.
	* elflink.h (elf_link_input_bfd): Likewise.
	* linker.c (_bfd_generic_link_output_symbols): Likewise.
	* xcofflink.c (xcoff_link_input_bfd): Likewise.
1997-02-28 04:12:07 +00:00
Ian Lance Taylor
a66a61a0a2 * elfxx-target.h (bfd_elfNN_bfd_is_local_label_name): Define as
_bfd_elf_is_local_label_name if not already defined.
	* elf.c (_bfd_elf_is_local_label_name): New function.
	* elf-bfd.h (_bfd_elf_is_local_label_name): Declare.
1997-02-28 04:11:09 +00:00
Ian Lance Taylor
551f302cc8 * coffcode.h (coff_bfd_is_local_label_name): Define as
_bfd_coff_is_local_label_name if not already defined.
	* coffgen.c (_bfd_coff_is_local_label_name): New function.
	* libcoff-in.h (_bfd_coff_is_local_label_name): Declare.
	* libcoff.h: Rebuild.
1997-02-28 04:10:14 +00:00
Ian Lance Taylor
35a3e78edb * targets.c (BFD_JUMP_TABLE_SYMBOLS): Change _bfd_is_local_label
to _bfd_is_local_label_name.
	(bfd_target): Likewise.
	* syms.c (bfd_is_local_label): Define as function, not macro.
	(bfd_is_local_name): Define.
	* libbfd.c (bfd_generic_is_local_label_name): Rename from
	bfd_generic_is_local_label, and take a string rather than a
	symbol.
	* libbfd-in.h (_bfd_nosymbols_bfd_is_local_label): Don't define.
	(_bfd_nosymbols_bfd_is_local_label_name): Define.
 	(bfd_generic_is_local_label): Don't declare.
	(bfd_generic_is_local_label_name): Declare.
	* bfd-in2.h, libbfd.h: Rebuild.
	* All backends: Change local_label to local_label_name.
1997-02-28 02:07:54 +00:00
Ian Lance Taylor
85d6f0b476 * elf32-mips.c (struct mips_got_info): Add assigned_gotno field.
(mips_elf_relocate_got_local): Change return type to boolean.
	Don't assume that the first zero entry is unassigned; instead, use
	assigned_gotno.
	(mips_elf_relocate_section): Check return value of
	mips_elf_relocate_got_local.
	(mips_elf_create_got_section): Initialize assigned_gotno field.
1997-02-27 23:38:19 +00:00
Martin Hunt
56819c99a1 Wed Feb 26 15:19:51 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* elf32-d30v.c (bfd_elf_d30v_reloc): Add code to do 32-bit
	relocations.
1997-02-26 23:22:00 +00:00
Stan Shebs
55ef0d903c * targets.c (bfd_target_vector): Add ecoff_biglittle_vec. 1997-02-26 23:07:19 +00:00
Ian Lance Taylor
fa802cb057 * elflink.h (elf_link_input_bfd): Don't skip symbols from sections
that have no contents merely because linker_mark is not set.
1997-02-26 18:35:56 +00:00
Ian Lance Taylor
b08f5ac27a * elf.c (elf_fake_sections): Use SHT_NOTE for any section whose
name begins with ".note".
	(map_sections_to_segments): Add a PT_NOTE segment for any loadable
	section whose name begins with ".note".
	(get_program_header_size): Corresponding change.
1997-02-25 21:07:13 +00:00
Ian Lance Taylor
7b4be6688c * elf32-mips.c (mips_elf_relocate_section): Check for misaligned
jal and for jal overflow.
1997-02-25 05:33:28 +00:00
Ian Lance Taylor
d044b40a40 From Eric Youngdale <eric@andante.jic.com>:
* elflink.h (elf_link_add_archive_symbols): If a default symbol is
	not found, try looking it up again without the version name.
	(elf_link_add_object_symbols): Always link against the dynamic
	symbol table of a dynamic object.  When linking against a dynamic
	object, include version strings in symbol names, and set up
	version information.  Add indirect symbols for default versions.
	(elf_link_create_dynamic_sections): Add special version sections.
	(struct elf_assign_sym_version_info): Define.
	(struct elf_find_verdep_info): Define.
	(NAME(bfd_elf,size_dynamic_sections)): Add verdefs parameter.  Set
	up version sections.
	(elf_adjust_dynamic_symbol): Ignore indirect symbols.
	(elf_link_find_version_dependencies): New static function.
	(elf_link_assign_sym_version): New static function.
	(elf_link_renumber_dynsyms): New static function.
	(struct elf_final_link_info): Add symver_sec field.
	(elf_bfd_final_link): Initialize finfo.symver_sec.  Don't count
	local symbols of a dynamic object.  Handle DT_VER* constants.
	(elf_link_output_extsym): Simplify BFD_ASSERT checking for a
	dynamic object.  Skip indirect symbols from ELF objects.  Remove
	the version name before choosing a hash bucket.  Write out the
	version information if appropriate.
	(elf_link_input_bfd): Check for DYNAMIC, not ET_DYN.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf64_size_dynamic_sections): Likewise.
	* bfd-in2.h: Rebuild.
	* elf-bfd.h (struct elf_link_hash_entry): Add verinfo field.
	Change elf_link_hash_flags to unsigned short.
	(ELF_LINK_HIDDEN): Define.
	(struct elf_obj_tdata): Add fields dynversym_hdr, dynverref_hdr,
	dynverdef_hdr, dynversym_section, dynverdef_section,
	dynverref_section, cverdefs, cverrefs, verdef, verref.
	(elf_dynversym, elf_dynverdef, elf_dynverref): Define.
	(_bfd_elf_swap_verdef_in, _bfd_elf_swap_verdef_out): Declare.
	(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Declare.
	(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Declare.
	(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Declare.
	(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Declare.
	(_bfd_elf_slurp_version_tables): Declare.
	* elf.c (_bfd_elf_swap_verdef_in): New function.
	(_bfd_elf_swap_verdef_out): Likewise.
	(_bfd_elf_swap_verdaux_in, _bfd_elf_swap_verdaux_out): Likewise.
	(_bfd_elf_swap_verneed_in, _bfd_elf_swap_verneed_out): Likewise.
	(_bfd_elf_swap_vernaux_in, _bfd_elf_swap_vernaux_out): Likewise.
	(_bfd_elf_swap_versym_in, _bfd_elf_swap_versym_out): Likewise.
	(_bfd_elf_print_private_bfd_data): Add DT_VER* constants.  Print
	version information if there is any.
	(_bfd_elf_link_hash_newfunc): Initialize verinfo field.
	(bfd_section_from_shdr): Handle SHT_GNU_ver* section types.
	(elf_fake_sections): Handle .gnu.version* section names.
	(assign_section_numbers): Handle SHT_GNU_ver* section types.
	(_bfd_elf_slurp_version_tables): New function.
	* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't include
	version name in string entered in dynamic hash table.
	* elfcode.h: Include fnmatch.h.
	* elf32-i386.c (elf_i386_relocate_section): Handle a dynamic
	symbol which was forced to become local.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
	* elf64-alpha.c (alpha_elf_dynamic_symbol_p): Likewise.
1997-02-24 23:13:07 +00:00
Jeff Law
af2903b4f0 Update some comments to reflect current reality. 1997-02-24 18:13:23 +00:00
Jeff Law
7b951eed4d * elf32-mn10200.c (mn10200_elf_final_link_relocate): Simplify
somewhat.
        (mn10200_elf_relax_section): Correctly compute a symbol's value
        when the symbol is local, but not in the same section as we are
        relaxing.  Implement abs24 -> abs16, imm24 -> imm16 and d24 -> d16
        relaxing.
Another 1.3% size reduction for hello world.  Only relaxing left todo is
imm16 -> imm8 and d16 -> d8 where applicable.
1997-02-21 23:19:34 +00:00
David Edelsohn
77dd1a25d8 * elf32-m32r.c: Rewrite to use ELF backend linker.
Store lower 16 bits of addend in R_M32R_HI16_[SU]LO insns.
	Add small data area support (R_M32R_SDA16).
	* reloc.c: Document BFD_RELOC_M32R_SDA16.
	* bfd-in2.h,libbfd.h: Regenerated.
1997-02-21 22:09:40 +00:00
Jeff Law
7c49f021ca Twiddle some comments to more accurately reflect reality. 1997-02-21 07:21:32 +00:00
Jeff Law
c17db7cfb4 Remove debugging printf. 1997-02-21 07:18:35 +00:00
Jeff Law
fd39566111 * elf32-mn10200.c (mn10200_elf_relax_section): New function.
(mn10200_elf_relax_delete_bytes): Likewise.
        (mn10200_elf_symbol_address_p): Likewise.
        (mn10200_elf_get_relocated_section_contents): Likewise.
        (bfd_elf32_bfd_relax_section): Define.
        (bfd_elf32_bfd_get_relocated_section_contents): Likewise.
First cut at relaxing linker for the mn10200:

	jsr:24 -> jsr:16
	jmp:24 -> jmp:16
	jmp:16 -> bra:8
	bCC .+4;bra:8 -> bCC':8


Reduces code size by about 2.5% for hello world.
1997-02-21 07:14:30 +00:00
Ian Lance Taylor
db986c6049 fix with make headers 1997-02-20 22:49:40 +00:00
Jeff Law
64af667971 * elf32-mn10200.c (mn10200_elf_final_link_relocate): New function.
(mn10200_elf_relocate_section): Likewise.
        (elf_backend_relocate_section): Define.
New style linker for the mn10200.
1997-02-20 20:54:28 +00:00
Michael Meissner
c6c7035cfb Since d10v is public now, remove all sanitization statements 1997-02-20 16:05:18 +00:00
Martin Hunt
fd8d7c31c0 Tue Feb 18 17:22:59 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* Makefile.in, archures.c, config.bfd, configure.in, elf.c,
	reloc.c, targets.c: New target, elf-*-D30V.

	* bfd-in2.h, configure, libbfd.h: Rebuilt.

	* cpu-d30v.c, elf32-d30v.c: New files.
1997-02-19 01:29:29 +00:00
Fred Fish
92a956e87d * reloc.c (struct reloc_howto_struct): Fix typo in comment.
* bfd-in2.h: Regenerated.
start-sanitize-tic80
	* coff-tic80.c (RTYPE2HOWTO): Replace abort with real function.
	(rtype2howto): Add function.
	(tic80_howto_table): Add.
end-sanitize-tic80
1997-02-18 23:01:02 +00:00
Jeff Law
8d1ba96ecc * elf32-v850.c (v850_elf_relocate_section): Make sure r_symndx
is initialized before it is used.
Something Doug noticed.
1997-02-18 17:06:20 +00:00
Ian Lance Taylor
8ceca98345 * hp300hpux.c (convert_sym_type): Don't convert a secondary common
symbol into a weak undefined symbol; leave it as a common symbol.
1997-02-17 16:29:21 +00:00
Ian Lance Taylor
54626f1aa4 * elflink.h (elf_link_add_object_symbols): Don't issue a warning
about a symbol defined in a dynamic object if it has already been
	defined in a regular object.
1997-02-15 00:12:47 +00:00
Ian Lance Taylor
8696b2db70 Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* reloc.c (BFD_RELOC_ALPHA_CODEADDR): New relocation for
	openVMS/Alpha.
	* evax.h (ALPHA_R_CODEADDR): New relocation.
	* evax-alpha.c (ALPHA_R_CODEADDR): 64 bit procedure relocation for
	openVMS/Alpha.
	* evax-etir.c (ALPHA_R_CODEADDR): Output object code for this
	relocation.
	* bfd-in2.h, libbfd.h: Rebuild.

	Restrict symbol length to 64 bytes, case preserving:
	* evax-emh.c (_bfd_evax_write_emh): Remove case hacking.
	* evax-misc.c (_bfd_evax_case_hack_symbol): Remove.
	(_bfd_evax_length_hash_symbol): Added.
	* evax-etir.c (_bfd_evax_write_etir): Call
	_bfd_evax_length_hash_symbol before output of symbol.
	* evax-egsd.c (_bfd_evax_write_egsd): Likewise.
	* evax.h (flag_hash_long_names, flag_show_after_trunc): Remove.

	* evax-emh.c: Output filename to object file without path.

	* evax-egsd.c: New sections for local and global commons.

	* evax-alpha.c, evax-emh.c, evax-egsd.c, evax-etir.c,
	evax-misc.c, evax.h: Remove 8 bit characters from copyright
	notices.  Replace AXP with Alpha.
1997-02-14 02:13:19 +00:00
Ian Lance Taylor
236969ac80 Thu Feb 13 20:53:22 1997 Klaus Kaempf (kkaempf@progis.de)
* makefile.vms: Add gcc flags to allow compiling with current gcc
	snapshot
	(targmatch.h): New dependency.
1997-02-14 01:54:51 +00:00
Ian Lance Taylor
3a8dddb286 Thu Feb 13 20:50:02 1997 Klaus Kaempf (kkaempf@progis.de)
* makefile.vms: New file.
1997-02-14 01:50:50 +00:00
Ian Lance Taylor
62332d05fd * sunos.c (sunos_create_dynamic_sections): We need the dynamic
sections if we are creating a shared library.
1997-02-12 23:14:36 +00:00
David Edelsohn
3883007ed1 * configure.host (i386-windows): Don't set host64=true. 1997-02-11 23:46:10 +00:00
Ian Lance Taylor
a4183ba5c9 * elf32-mips.c (reloc_type): Add R_MIPS16_GPREL.
(elf_mips16_gprel_howto): New static variable.
	(mips16_gprel_reloc): New static function.
	(bfd_elf32_bfd_reloc_type_lookup): Handle BFD_RELOC_MIPS16_GPREL.
	(mips_info_to_howto_rel): Handle R_MIPS16_GPREL.
	(mips_elf_relocate_section): Handle R_MIPS16_GPREL.
	* reloc.c (BFD_RELOC_MIPS16_GPREL): Define.
	* bfd-in2.h, libbfd.h: Rebuild.
1997-02-11 20:30:12 +00:00
David Edelsohn
b9c5ee689d * elf32-m32r.c (elf_m32r_howto_table): Change partial_inplace to true
for R_M32R_{16,32,24,HI16_ULO,HI16_SLO,LO16}.
1997-02-11 19:45:51 +00:00
Gavin Romig-Koch
276c2d7dc8 Add r5900 1997-02-11 13:26:34 +00:00
Ian Lance Taylor
ba4a45946c * elflink.h (elf_link_input_bfd): If we've discarded a section,
the output section will be the absolute section; don't print an
	assertion message for that case when doing a relocateable link.
PR 11647.
1997-02-07 17:40:24 +00:00
Ian Lance Taylor
e900e695a2 * elf32-mips.c (FN_STUB, CALL_STUB, CALL_FP_STUB): Define.
(struct mips_elf_link_hash_entry): Add new fields fn_stub,
	need_fn_sub, call_stub, and call_fp_stub.
	(struct mips_elf_link_hash_table): Add field mips16_stubs_seen.
	(mips_elf_link_hash_newfunc): Initialize new fields.
	(mips_elf_link_hash_table_create): Likewise.
	(mips_elf_relocate_section): Redirect relocations to use mips16
	stubs when appropriate.
	(mips_elf_check_relocs): Attach stub sections to the appropriate
	symbol.  Set need_fn_stub when appropriate.
	(mips_elf_always_size_sections): New static function.
	(mips_elf_check_mips16_stubs): New static function.
	(elf_backend_always_size_sections): Define.
	* elf-bfd.h (struct elf_obj_tdata): Add local_stubs field.
1997-02-06 22:15:37 +00:00
Ian Lance Taylor
258b1f5d18 * elflink.h (elf_link_input_bfd): Discard local symbols that are
attached to sections which are not being included in the link.
1997-02-06 22:02:51 +00:00
Ian Lance Taylor
5b61a02aae * cofflink.c (_bfd_coff_generic_relocate_section): Ignore the
symbol value when computing the addend for a pc_relative
	pcrel_offset reloc.
1997-02-05 18:21:08 +00:00
Ian Lance Taylor
5a50eec623 * cofflink.c (_bfd_coff_generic_relocate_section): If doing a
relocateable link, just skip pc_relative pcrel_offset relocs.
	* coff-arm.c (coff_arm_rtype_to_howto): Return a different howto
	structure for an ARM26 reloc which can be resolved.
	(coff_arm_adjust_symndx): Only convert ARM26 to ARM26D if the
	reloc can be resolved.
PR 11599.
1997-02-03 20:31:39 +00:00
Ian Lance Taylor
bcb686ca09 * coff-h8300.c (h8300_reloc16_extra_cases): Correct off by one
error in overflow check for R_RELBYTE.
PR 11591.
1997-02-03 16:54:36 +00:00
Ian Lance Taylor
e9797c8ae5 comment fix 1997-01-31 23:15:42 +00:00
Ian Lance Taylor
6c58561e7a * ieee.c (ieee_slurp_section_data): Pick up the start address.
From Mark Rasin <mark.rasin@telrad.co.il>.
1997-01-31 19:15:40 +00:00
Ian Lance Taylor
167dc907f2 * aoutx.h (aout_link_write_symbols): Don't apply discard_l to
debugging symbols.
Mentioned in PR 11540.
1997-01-31 19:08:31 +00:00
Jeff Law
1a2faf1f1e * elf32-mn10200.c (reloc_type): Add 16bit pc-relative reloc.
(elf_mn10200_howto_table): Likewise.
        (mn10200_reloc_map): Likewise.
How did I miss the 16bit pc-relative relocs?!?
1997-01-29 07:02:22 +00:00
David Edelsohn
1d5c6cfdf0 * reloc.c: Add relocs BFD_RELOC_M32R_{HI16_[US]LO,LO16}.
* bfd-in2.h, libbfd.h: Regenerated.
	* elf32-m32r.c: Add support for them.
1997-01-27 20:35:24 +00:00
Ian Lance Taylor
54aa1deab3 * aout-arm.c (MY_swap_std_reloc_in): Remove unused r_length.
* elf32-ppc.c (ppc_elf_check_relocs): Remove unused plt.
start-sanitize-v850
	* elf32-v850.c (v850_elf_final_link_relocate): Remove used
	r_format and r_pcrel.  Always return a value.
end-sanitize-v850
	* riscix.c (MY_final_link_callback): Define to dummy value.
1997-01-27 18:22:54 +00:00
Ian Lance Taylor
9950f925f7 * elf32-i386.c (elf_i386_size_dynamic_sections): When checking for
relocations against the text segment, look up the output name of
	the reloc section.
	* elf32-m68k.c (elf_m68k_size_dynamic_sections): Likewise.
	* elf32-mips.c (mips_elf_size_dynamic_sections): Likewise.
	* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
	* elf32-sparc.c (elf32_sparc_size_dynamic_sections): Likewise.
	* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Likewise.
1997-01-27 18:13:01 +00:00
Fred Fish
8c00b01dee * coff-tic80.c (tic80coff_vec): Use correct data put/get
routines for little endian data.
	* coffcode.h (coff_write_object_contents): Set magic to
 	TIC80_ARCH_MAGIC for TIc80.
1997-01-23 03:09:05 +00:00
Fred Fish
0716c2e910 * coff-tic80.c (tic80coff_vec): Change to little endian data
as the default.
1997-01-21 20:15:46 +00:00
Ian Lance Taylor
db109ca2d8 * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Change type of
auxiliary_filters parameter to be const char * const *.  Accept a
	NULL terminated array.
	* bfd-in.h (bfd_elf32_size_dynamic_sections): Update declaration.
	(bfd_elf32_size_dynamic_sections): Update declaration.
	* bfd-in2.h: Rebuild.
1997-01-16 22:48:57 +00:00
Ian Lance Taylor
c7f8d0a524 update copyright 1997-01-16 22:48:24 +00:00
David Edelsohn
e1616e16d8 * libaout.h (machine_type): Reserve several values for sparclet. 1997-01-14 16:47:40 +00:00
Michael Meissner
91eb4378ee Fix sanitize string 1997-01-14 03:45:40 +00:00
Michael Meissner
4af93ad0dc Allow tic80-*-*, not just tic80-*-coff 1997-01-14 03:45:03 +00:00
Michael Meissner
0ce71ebd3d Cleanup; fix some aborts 1997-01-14 00:41:55 +00:00
Jeff Law
09a7bde377 Fix typo. 1997-01-06 22:23:08 +00:00
Jeff Law
4013169286 * elf32-mn10200.c (elf_mn10200_howto): Don't ever set partial-inplace.
Use bfd_elf_generic_reloc as special function for all relocs.
        (bfd_elf32_mn10200_reloc): Remove unnecessary function.
Working on relocs for the mn10200.
1997-01-06 22:20:38 +00:00
Jeff Law
483e1b9161 * elf32-mn10200.c (elf_mn10200_howto): Set partial_inplace for
24bit pc-relative reloc.
1997-01-06 20:33:53 +00:00