Commit graph

3318 commits

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