Commit Graph

2469 Commits

Author SHA1 Message Date
Nick Clifton 3af9a47b1c Add support for PEF, Mach-O, xSYM 2002-11-06 13:26:29 +00:00
Alan Modra ad12c1c577 Ah bah, missed these from last commit. 2002-11-06 12:04:31 +00:00
Alan Modra b6821651ed * Makefile.am: Remove entries for elf32-qnx.[ch].
* Makefile.in: Regenerate.
	* config.bfd: Change arm-nto to use bfd_elf32_{big|little}arm_vec,
	ppc-nto to use bfd_elf32_powerpc{le}_vec, sh-nto to use
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure.in: Remove support for bfd_elf32_sh{l}qnx_vec,
	bfd_elf32_powerpc{le}qnx_vec, bfd_elf32_{big|little}armqnx_vec,
	and bfd_elf32_i386qnx_vec, and removed elf32-qnx.lo from other targets.
	bfd_elf32_sh{l}_vec, and i386-nto to use bfd_elf32_i386_vec.
	* configure: Regenerate.
	* elf32-qnx.c: Remove.
	* elf32-qnx.h: Remove.
	* elf.c: Remove calls to QNX specific set_nonloadable_filepos,
	is_contained_by_filepos, and copy_private_bfd_data_p.
	* elf32-i386.c: Remove QNX extended bfd support.
	* elf32-ppc.c: Remove QNX extended bfd support.
	* elf32-sh.c: Remove QNX extended bfd support.
	* elfarm-nabi.c: Remove QNX extended bfd support.
	* targets.c: Remove qnx vectors.
	* elfxx-target.h (elf_backend_set_nonloadable_filepos): Remove
	(elf_backend_is_contained_by_filepos): Remove.
	(elf_backend_copy_private_bfd_data_p): Remove.
	* po/SRC-POTFILES.in: Regenerate.
2002-11-06 11:38:35 +00:00
Alan Modra 41b6ea2f9e daily update 2002-11-05 23:00:03 +00:00
Alan Modra dad628168e * elf64-sparc.c (sparc64_elf_relocate_section): Adjust addend of
dynamic relocs against section symbols for the output section vma.
2002-11-05 22:59:23 +00:00
Alan Modra 911b232a92 * elf32-arm.h (t2a1_push_insn, t2a2_ldr_insn, t2a3_mov_insn,
t2a4_bx_insn, t2a5_pop_insn, t2a6_bx_insn): Remove.
2002-11-05 05:01:11 +00:00
Alan Modra 08f740041a * config.bfd (sh-*-linux*): Use bfd_elf*_sh64*lin_vec as sh64
vectors in target_selvecs.
	(shle-*-netbsdelf*): Use bfd_elf*_sh64*nbsd_vec as sh64 vectors
	in target_selvecs.
	(sh-*-netbsdelf*): Likewise.
	* configure.in (assocvecs): New variable.  Handle assocvecs like
	selvecs.
	* configure: Regenerate.
	* format.c (bfd_check_format_matches): Store bfd_target pointers
	in matching_vector instead of target names.  Select first target
	from bfd_associated_vector that matches a list of ambiguous targets.
	* targets.c (_bfd_associated_vector): New array.
	(bfd_associated_vector): New variable.
	(_bfd_target_vector): Add bfd_elf*_sh64*lin_vec.
	* libbfd-in.h (bfd_associated_vector): Declare.
	* libbfd.h: Regenerate.
2002-11-05 01:18:56 +00:00
Alan Modra 89117aabb3 * vms-gsd.c (_bfd_vms_write_gsd): Check that symbol->udata.p is
non-NULL before dereferencing.
2002-11-05 01:08:18 +00:00
Alan Modra b88b8dd891 daily update 2002-11-04 23:00:04 +00:00
Kaz Kojima 5e9aae3e09 * vms.c (vms_object_p): Restore the start address when returning
NULL.
2002-11-04 21:44:36 +00:00
Alan Modra c97e73ddb6 * elflink.h (struct elf_final_link_info): Add shndxbuf_size.
(elf_bfd_final_link): Don't bother zeroing symtab_hdr fields.
	Set up a larger symshndxbuf, and write it out.  Free it on
	exit rather than freeing symbuf twice.  Correct section index
	on output section symbol loop.
	(elf_link_output_sym): Accumulate symbol extension section
	indices, reallocating symshndxbuf rather than writing it out.
	(elf_link_flush_output_syms): Don't flush symshndxbuf.
	* elf.c (assign_section_numbers): Init i_shdrp to all zero.
	Use bfd_zalloc to clear i_shdrp[0] too.
2002-11-04 13:20:56 +00:00
Stephen Clarke 3463048e40 * elf32-sh64-com.c (sh64_address_in_cranges): Use
_raw_size of cranges section if _cooked_size not yet set.
2002-11-04 00:02:13 +00:00
Alan Modra b2d3a55a49 daily update 2002-11-03 23:00:08 +00:00
Hans-Peter Nilsson 63a2379942 * elf32-v850.c (v850_elf_relax_delete_bytes): Correct parameters
for bfd_elf32_swap_symbol_out.
2002-11-03 10:43:44 +00:00
Alan Modra b793562e43 daily update 2002-11-02 23:00:05 +00:00
Alan Modra 856695231a daily update 2002-11-01 23:00:07 +00:00
David O'Brien e68cc12e04 2002-10-31 David O'Brien <obrien@FreeBSD.org>
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't mix
	signed and unsigned in comparison.

Approved by:  Alan Modra <amodra@bigpond.net.au>
              Message-ID: <20021012185224.Y979@bubble.sa.bigpond.net.au>
2002-10-31 09:18:48 +00:00
Daniel Jacobowitz db4b6d0145 * coffcode.h: Remove extraneous '\'. 2002-10-30 15:50:17 +00:00
Alan Modra 8c05f9b85d daily update 2002-10-29 00:20:31 +00:00
H.J. Lu 840f024325 2002-10-28 H.J. Lu <hjl@gnu.org>
* Makefile.am (targets.lo): Depend on Makefile instead of
	config.status.
	(archures.lo): Likewise.
	* Makefile.in: Regenerated.
2002-10-28 22:30:29 +00:00
Alan Modra f6e80f3298 daily update 2002-10-27 23:00:04 +00:00
Alan Modra 5f3f153c88 daily update 2002-10-26 23:00:05 +00:00
Alan Modra d57f790f58 daily update 2002-10-26 00:00:04 +00:00
Jason Thorpe 05a7e2dba5 * config.bfd (mips*el-*-netbsd*, mips*-*-netbsd*): Add
bfd_elf64_bigmips_vec and bfd_elf64_littlemips_vec to
targ_selvecs.
2002-10-25 21:48:58 +00:00
Jim Wilson a0087177c3 Add some string section merging support.
* elf64-sh64.c (sh_elf64_relocate_section): Call
	_bfd_elf_rela_local_sym.  Handle relocs against STT_SECTION symbol
	of SHF_MERGE section.
2002-10-25 18:55:22 +00:00
Hans-Peter Nilsson 8718ac9cb8 * simple.c: Correct placement of ATTRIBUTE_UNUSED. 2002-10-25 15:43:03 +00:00
Dave Anglin 5d661875b3 Files missed in previous commit. 2002-10-25 03:19:29 +00:00
Dave Anglin d45913a06f * aoutx.h (NAME(aout,swap_ext_reloc_in)): Cast bytes->r_index to
unsigned int.  Cast RELOC_BASE10, RELOC_BASE13 and RELOC_BASE22 to
	unsigned int.
	(NAME(aout,final_link)): Cast enum used in assignment.
	(aout_link_write_symbols): Cast enums in comparisons, int values to
	boolean, enums in assignments to int.
	(aout_link_input_section_std): Cast rel->r_index to unsigned int.
	(aout_link_input_section_ext): Likewise.  Cast enums used in comparisons
	with unsigned ints.
	(aout_link_reloc_link_order): Cast enum to int in assignment.
	* archive.c (_bfd_generic_read_ar_hdr_mag): Cast result of memchr
	calls to char *.
	* bfd-in.h (bfd_set_section_vma): Cast enum true to unsigned int in
	assignment.
	* bfd-in2.h (bfd_set_section_vma): Likewise.
	* bfd.c (bfd_record_phdr): Cast enums in assignments.
	* binary.c (bfd_alloc): Cast enum to long.
	* coffgen.c (_bfd_coff_is_local_label_name): Cast return to boolean.
	* dwarf2.c (read_abbrevs): Add casts to enum types.
	(read_attribute_value): Likewise.
	(arange_add): Cast result of bfd_zalloc call.
	(comp_unit_contains_address): Return true and false.
	(comp_unit_find_nearest_line): Cast return to boolean.
	* format.c (bfd_check_format_matches, bfd_set_format): Likewise.
	* gen-aout.c: define macro '_' if not defined.
	* libbfd.c (bfd_realloc): Cast malloc and realloc to PTR.
	(bfd_bwrite): Cast bfd_realloc to bfd_byte *.
	(bfd_write_bigendian_4byte_int): Cast return to boolean.
	(bfd_seek): Cast bfd_realloc to bfd_byte *.
	(bfd_generic_is_local_label_name): Cast return to boolean.
	* libcoff.h (_bfd_coff_adjust_symndx): Remove extraneous '\'.
	* linker.c (_bfd_link_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(_bfd_generic_link_hash_newfunc): likewise.
	(_bfd_generic_final_link): Cast enum to unsigned int.
	* merge.c (sec_merge_emit): Cast return to boolean.
	(merge_strings): Add casts to const unsigned char *.
	* reloc.c (bfd_get_reloc_code_name): Cast enums in comparison to int.
	(bfd_generic_get_relocated_section_content): Cast enum to unsigned int.
	* section.c (bfd_section_hash_newfunc): Cast bfd_hash_allocate result to
	struct bfd_hash_entry *.
	(bfd_set_section_content): Add cast to PTR in comparison.
	* simple.c (simple_dummy_warning, simple_dummy_undefined_symbol,
	simple_dummy_reloc_overflow, simple_dummy_reloc_dangerous,
	simple_dummy_unattached_reloc,
	bfd_simple_get_relocated_section_contents): Add K&R declarations and
	function definitions.
	* srec.c (S3Forced): Initialize to false.
	(srec_get_symtab): Cast return value from bfd_alloc to asymbol *.
	* stabs.c (_bfd_link_section_stabs): Cast enum to int in comparisons.
	(_bfd_discard_section_stabs): Likewise.  Also cast return to boolean.
	* syms.c (bfd_is_undefined_symclass): Cast return to boolean.
	(_bfd_stab_section_find_nearest_line): Cast enum to bfd_byte in
	comparisons.
2002-10-25 02:45:54 +00:00
Alan Modra d45496c131 daily update 2002-10-25 00:00:05 +00:00
Alan Modra b7c4ac2735 daily update 2002-10-24 00:00:05 +00:00
Jakub Jelinek 475c2a7e65 * elf64-alpha.c (elf64_alpha_check_relocs): Only put maybe_dynamic
relocs into shared lib non-allocated reloc sections.
2002-10-23 20:21:21 +00:00
Alan Modra e82ce5296f * dwarf2.c (add_line_info): Ensure that the line_info_table is
sorted even when given an out-of-order line sequence.
	(lookup_address_in_line_info_table): When an exact VMA match is
	not found, return line information with the closest VMA.
2002-10-23 12:41:32 +00:00
Nick Clifton f2482cb2da Force DT_FLAGS to always be set. Required by HPUX 11.00 patch PHSS_26559. 2002-10-23 12:34:57 +00:00
Alan Modra 21f5a12a45 daily update 2002-10-23 00:00:04 +00:00
Alexandre Oliva c1fd659837 * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Don't move
the options section into a separate section unless IRIX 6
compatibility is enabled.
2002-10-22 22:17:11 +00:00
Alexandre Oliva 033fd5f9ae * elflink.h (struct elf_link_sort_rela): Turn rel and rela
into arrays.
(elf_link_sort_cmp1, elf_link_sort_cmp2): Adjust.
(elf_link_sort_relocs): Likewise.  Take int_rels_per_ext_rel
into account.
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Compose
R_MIPS_REL32 with R_MIPS64 if ABI_64_P.
2002-10-22 21:00:10 +00:00
Alan Modra 17c84737fa daily update 2002-10-22 00:01:04 +00:00
Alan Modra ef485c0196 * targets.c (_bfd_target_vector): Add missing qnx vectors. 2002-10-21 11:01:00 +00:00
Alan Modra b50afec9dd * targets.c (bfd_target_list): Don't return the default target twice. 2002-10-21 10:58:42 +00:00
Alan Modra 5fe39caef5 * archive.c (_bfd_archive_bsd_update_armap_timestamp): Replace
perror with bfd_perror.
2002-10-21 01:58:48 +00:00
Alan Modra 6c69aeb8ac daily update 2002-10-21 00:00:05 +00:00
Alan Modra 98f2e6c655 daily update 2002-10-20 00:00:05 +00:00
H.J. Lu 5d603aa984 2002-10-19 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_add_object_symbols): Correctly handle
	DT_RPATH and DT_RUNPATH.
:VS: ----------------------------------------------------------------------
2002-10-19 17:13:58 +00:00
Mark Kettenis e377ab71da * elf.c (elfcore_grok_note): Fix recognition on NT_PRXFPREG notes. 2002-10-19 13:52:58 +00:00
Alan Modra c067988559 daily update 2002-10-19 00:00:05 +00:00
Alan Modra 08e299623d daily update 2002-10-18 00:09:45 +00:00
Denis Chertykov 0d09fec6a5 * elf32-ip2k.c (ELF_MACHINE_ALT1): Define alternate machine code
for ip2k port.
2002-10-17 18:27:01 +00:00
Alan Modra acf8aed4a6 * elfxx-target.h (USE_REL): Don't define as 1.
* elf32-arm.h (USE_REL): Provide a default define of 0.
	Use #if rather than #ifdef when testing USE_REL.
	* elf32-m32r.c: Likewise.

	* elf32-arc.c (USE_REL): Define as 1.
	* elf32-d10v.c (USE_REL): Likewise.
	* elf32-m32r.c (USE_REL): Likewise.
	* elf32-m68hc11.c (USE_REL): Likewise.
	* elf32-m68hc12.c (USE_REL): Likewise.
	* elf32-or32.c (USE_REL): Likewise.
	* elfarm-nabi.c (USE_REL): Likewise.
2002-10-17 02:59:15 +00:00
Alan Modra 037fd2c584 daily update 2002-10-17 00:00:04 +00:00
Jakub Jelinek f52d1d6405 * config.bfd (s390-*-linux*): Add targ64_selvecs.
(s390x-*-linux*): Add targ_selvecs.

	* config.table: Use mh-s390pic for s390x too.

	* configure.tgt (s390x-*-linux*): Add elf_s390 emulation.
	(s390-*-linux*): Add elf64_s390 emulation if want64.
	* emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22
	genscript.sh changes.
	* emulparams/elf_x86_64.sh (LIB_PATH): Likewise.
	* emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs.
2002-10-16 19:54:54 +00:00
Alan Modra 2bc3c89ab3 * Makefile.am (BFD32_BACKENDS): Remove elfarmqnx-nabi.lo,
elf32-i386-fbsd.lo, elf32-i386qnx.lo, elf32-ppcqnx.lo,
	elf32-sh-lin.lo, elf32-sh64-lin.lo, elf32-sh-nbsd.lo,
	elf32-sh64-nbsd.lo, elf32-shqnx.lo.  Add elf32-qnx.lo.
	(BFD32_BACKENDS_CFILES): Likewise for corresponding C files.
	(BFD64_BACKENDS): Remove elf64-sh64-lin.lo, elf64-sh64-nbsd.lo.
	(BFD64_BACKENDS_CFILES): Likewise for corresponding C files.
	(SOURCE_HFILES): Add elf32-qnx.h.
	(BUILD_HFILES): Add bfdver.h.
	Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure.in Update bfd vector dependencies.
	* configure: Regenerate.
	* elf32-i386-fbsd.c: Delete.  Move code to elf32-i386.c.
	* elf32-i386qnx.c: Likewise.
	* elf32-ppcqnx.c: Delete.  Move code to elf32-ppc.c.
	* elf32-sh-nbsd.c: Delete.  Move code to elf32-sh.c.
	* elf32-sh-lin.c: Likewise.
	* elf32-shqnx.c: Likewise.
	* elf32-sh64-lin.c: Delete.  Move code to elf32-sh64.c.
	* elf32-sh64-nbsd.c: Likewise.
	* elf64-sh64-lin.c: Delete.  Move code to elf64-sh64.c.
	* elf64-sh64-nbsd.c: Likewise.
	* elfarmqnx-nabi.c: Delete.  Move code to elfarm-nabi.c.
	* elf32-arm.h (ELF_MAXPAGESIZE): Always define.
	* elf32-i386.c: Remove ELF_ARCH and ELF32_I386_C_INCLUDED tests.
	* elf32-ppc.c: Remove ELF32_PPC_C_INCLUDED tests.
	* elf32-qnx.h (elf_backend_set_nonloadable_filepos): Always define.
	(elf_backend_is_contained_by_filepos): Likewise.
	(elf_backend_copy_private_bfd_data_p): Likewise.
	Globalize and move functions to..
	* elf32-qnx.c: ..here.  New file.
	* elf32-sh.c: Remove ELF_ARCH and ELF32_SH_C_INCLUDED tests.  Don't
	emit target vectors when INCLUDE_SHMEDIA.
	* elf32-sh64.c: Remove ELF_ARCH test.  Move TARGET_* etc. defines to
	end of file.
	* elf64-sh64.c: Remove ELF_ARCH test.
	* elfarm-nabi.c: Remove ELFARM_NABI_C_INCLUDED test.
	* po/BLD-POTFILES.in: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.
2002-10-16 08:39:38 +00:00
Alan Modra 366f2964af * elflink.h (elf_link_add_object_symbols): Error out on dynamic objects
loaded with --just-symbols.
2002-10-16 00:57:39 +00:00
Alan Modra 90c9df8594 * elf32-i386qnx.c (TARGET_LITTLE_NAME): Define.
* elf32-ppcqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elf32-shqnx.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
	* elfarmqnx-nabi.c (TARGET_LITTLE_NAME, TARGET_BIG_NAME): Define.
2002-10-16 00:56:41 +00:00
Alan Modra 59ad387da9 daily update 2002-10-16 00:00:03 +00:00
Richard Henderson 2238051fb3 * Makefile.am (BFD64_BACKENDS): Remove elf64-alpha-fbsd.
(BFD64_BACKENDS_CFILES): Likewise.
        * configure.in (bfd_elf64_alpha_freebsd_vec): Use elf64-alpha.
        * elf64-alpha-fbsd.c: Remove file, move code ...
        * elf64-alpha.c: ... here.
        * Makefile.in, configure: Rebuild.
2002-10-15 17:14:51 +00:00
Richard Henderson 64e04ecdb7 * elf64-alpha.c (elf64_alpha_relocate_section) [BRSGP]: Increment
VALUE, not ADDEND.
2002-10-15 01:07:52 +00:00
Alan Modra 50158c1ce3 daily update 2002-10-15 00:00:04 +00:00
Stephen Clarke 396a608385 * elf32-sh.c (elf_sh_link_hash_entry): Replace
datalabel_got_offset with union of datalabel_got
offset and refcount.
(sh_elf_link_hash_newfunc): Initialize datalabel_got.refcount.
(allocate_dynrelocs): Delete unnecessary code for
STT_DATALABEL type.  Create entry in got for
datalabel version of symbol if datalabel_got.refcount > 0.
(sh_elf_relocate_section): Use datalabel_got union.
(sh_elf_gc_sweep_hook): Pull common code to initialize
h and eh out of switch statement.  Declare seen_stt_datalabel.
Initialize it.  Decrement datalabel_got.refcount for
got relocs when seen_stt_datalabel is true.
Decrement local_got_refcounts entry for datalabel got relocs
of local symbols.
(sh_elf_copy_indirect_symbol): Copy datalabel_got field over.
(sh_elf_check_relocs): Declare seen_stt_datalabel.
Initialize it.  When seen_stt_datalabel is true, increment
datalabel_got refcount rather than got.refcount.
(sh_elf_finish_dynamic_symbol): Create relocs to
initialize got entry for datalabel version of symbol.
2002-10-14 19:29:54 +00:00
Alan Modra 6d4eea05c7 * Makefile.in: Regenerate. 2002-10-14 12:06:23 +00:00
Alan Modra 6a0735efa4 * Makefile.am: Run "make dep-am".
(BFD_H_FILES): Remove version.h.
	* bfd-in.h (BFD_VERSION, BFD_VERSION_DATE, BFD_VERSION_STRING): Move..
	* version.h: ..to here.
	* configure.in (bfd_version_date): Remove.
	(AC_OUTPUT): Make bfdver.h from version.h.
	* bfd.c: #include "bfdver.h".
	* vms-hdr.c: Likewise.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.
2002-10-14 12:06:04 +00:00
Alan Modra 686e4055ef * archures.c (bfd_mach_i386_i386, bfd_mach_i386_i8086,
bfd_mach_i386_i386_intel_syntax, bfd_mach_x86_64,
	bfd_mach_x86_64_intel_syntax bfd_mach_ppc, bfd_mach_ppc64,
	bfd_mach_rs6k, bfd_mach_d10v, bfd_mach_sh, bfd_mach_v850,
	bfd_mach_arc_5, bfd_mach_arc_6, bfd_mach_arc_7, bfd_mach_arc_8,
	bfd_mach_m32r, bfd_mach_frv, bfd_mach_frvsimple,
	bfd_mach_ia64_elf64, bfd_mach_ia64_elf32,
	bfd_mach_ip2022, bfd_mach_ip2022ext,
	bfd_mach_s390_31, bfd_mach_s390_64, bfd_mach_xstormy16): Renumber.
	* bfd-in2.h: Regenerate.
2002-10-14 05:16:42 +00:00
Kaz Kojima 019dca2bd0 * config.bfd (sh*eb-*-linux*, sh*-*-linux*): Add the alternative
endian vector to targ_selvecs.
2002-10-14 02:12:36 +00:00
Alan Modra e6f7ab6d94 daily update 2002-10-14 00:00:05 +00:00
Alexandre Oliva bce03d3da8 * elfxx-mips.c (mips_elf_calculate_relocation): Take
save_addend argument.  Don't apply the 32-bit mask to a
GPREL32 value if it's to be used in another relocation.  Don't
use forced-check computation of local_p to decide whether to
add gp0 to GPREL16 value.  Don't use only the lowest 16 bits
of the addend of a non-in-place GPREL16 relocation.
(_bfd_mips_elf_relocate_section): Pass use_saved_addend_p to
mips_elf_calculate_relocation().
2002-10-13 21:22:31 +00:00
Alan Modra 0b48e3df50 daily update 2002-10-13 00:00:04 +00:00
Stephane Carrez 9b691193ef * elf32-m68hc11.c (m68hc11_elf_relax_section): Don't treat relocs
with symbols in other sections if we relaxed something;  the sections
	output offsets must be re-computed before.
2002-10-12 14:00:55 +00:00
Stephane Carrez 1f4c5b4746 * elf32-m68hc11.c (m68hc11_elf_relax_section): Update symbols
handling to use Elf_Internal_Sym.
	(m68hc11_elf_relax_delete_bytes): Likewise.
2002-10-12 13:35:25 +00:00
Alan Modra 52019e89e2 daily update 2002-10-12 00:00:04 +00:00
Kaz Kojima 3376eaf577 * elf32-sh.c (sh_elf_optimized_tls_reloc, sh_elf_mkobject,
sh_elf_object_p, dtpoff_base): New functions.
	(sh_elf_howto_table): Add TLS relocs.
	(sh_reloc_map): Likewise.
	(sh_elf_info_to_howto): Support TLS relocs.
	(elf_sh_link_hash_entry): Add tls_type and tls_tpoff32.
	(sh_elf_hash_entry, sh_elf_tdata, sh_elf_local_got_tls_type):
	New macros.
	(sh_elf_obj_tdata): New.
	(elf_sh_link_hash_table): Add tls_ldm_got.
	(sh_elf_link_hash_table_create): Clear refcount of tls_ldm_got.
	(allocate_dynrelocs): Support TLS relocs.
	(sh_elf_size_dynamic_sections): Likewise.
	(sh_elf_relocate_section): Support TLS relocs.  Don't try to find
	.rela.got section when found already.  Return false after printing
	error about unresolvable relocation.
	(sh_elf_gc_sweep_hook): Support TLS relocs.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define for TLS case.
	* reloc.c: Add SH TLS relocs.
	* libbfd.h: Regenerate.
2002-10-11 14:32:03 +00:00
Kaz Kojima 5dc976556d * bfd-in2.h: Regenerate. 2002-10-11 14:28:29 +00:00
Daniel Jacobowitz af39267ef5 * Makefile.am: Run dep-am.
(BFD32_LIBS): Add simple.lo.
        (BFD32_LIBS_CFILES): Add simple.c.
        * Makefile.in: Regenerated.
        * bfd-in2.h: Regenerated.
        * simple.c: New file.
2002-10-11 13:53:33 +00:00
Daniel Jacobowitz eda81658db * Makefile.am (BFD_H_DEP): Add simple.c and linker.c.
* Makefile.in: Regenerated.
2002-10-11 13:52:53 +00:00
Alan Modra 7f6a766382 * elf64-ppc.c (edit_opd): Correct local sym adjustment. 2002-10-11 12:59:06 +00:00
Alan Modra 14a793b2f2 Fix numerous occurrences of
warning: dereferencing type-punned pointer will break strict-aliasing rules
2002-10-11 08:33:11 +00:00
Alan Modra 0be617ce13 * elf64-ppc.c (edit_opd): Only zero opd syms when function is
completely removed.
2002-10-11 04:36:13 +00:00
Alan Modra 5b33f915bf daily update 2002-10-11 00:00:04 +00:00
Stephen Clarke 0a4ef3f414 * elf32-sh.c (elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le):
Correct mistake in calculation of address of .got.
* elf64-sh64.c (elf_sh64_pic_plt_entry_be,
elf_sh64_pic_plt_entry_le): Likewise.
2002-10-10 21:45:14 +00:00
Alan Modra aaa9de95f4 daily update 2002-10-10 00:00:03 +00:00
Stephen Clarke efacd36e84 * Makefile.am: Add entries for elf32-sh64-lin.c and
elf64-sh64-lin.c. Regenerate.
* Makefile.in: Regenerate.
* config.bfd:  Change sh64eb-*-linux* and sh64-*-linux*
to use sh64 vectors rather than sh vectors.
* configure.in: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.
* configure: Regenerate.
* elf32-sh64-lin.c: New file.
* elf64-sh64-lin.c: New file.
* targets.c: Add bfd_elf32_sh64lin_vec, bfd_elf32_sh64blin_vec,
bfd_elf64_sh64lin_vec, bfd_elf64_sh64blin_vec.
2002-10-09 19:03:57 +00:00
Alan Modra d14a0ab1e1 daily update 2002-10-09 00:00:05 +00:00
H.J. Lu 299bf75951 2002-10-08 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Re-arrange the
	IE->LE transition for R_386_TLS_IE.
2002-10-08 16:11:07 +00:00
Alan Modra 51020317ee * elf64-ppc.c (edit_opd): Correct test for discarded sections. 2002-10-08 09:51:09 +00:00
Alan Modra 498b1dfee9 daily update 2002-10-08 00:00:05 +00:00
Nick Clifton a8fcf37848 Don't mark relocations in excluded sections. 2002-10-07 16:27:39 +00:00
Alan Modra a6b511bd9e * elflink.h (elf_link_input_bfd): Remove BFD_VERSION_DATE dependent
code.
2002-10-07 00:14:28 +00:00
Alan Modra a16d5acb50 * elf64-ppc.c (ppc64_elf_build_stubs): Increment .glink indx. 2002-10-07 00:06:01 +00:00
Alan Modra 5f75af3aae daily update 2002-10-07 00:00:03 +00:00
Alan Modra 7c4a37eb43 * opncls.c: Formatting.
(_bfd_new_bfd): Use a smaller section hash table.
2002-10-06 09:03:06 +00:00
Alan Modra f84e2993b2 daily update 2002-10-06 00:00:06 +00:00
Alexandre Oliva 7c4ca42da5 * elfxx-mips.c (mips_elf_create_dynamic_relocation): Set the type
of the other two relocations packed with a REL32 to NONE.
2002-10-05 11:18:13 +00:00
Alan Modra d8d70ddf93 daily update 2002-10-05 00:00:04 +00:00
Alan Modra bd8f55f370 daily update 2002-10-04 00:00:04 +00:00
Alan Modra c8542e61a6 daily update 2002-10-03 00:00:04 +00:00
Stephen Clarke 4989d792c8 * elf32-sh.c (elf_sh_link_hash_entry): Add gotplt_refcount.
(sh_elf_link_hash_newfunc): Initialize it.
(allocate_dynrelocs): Transfer gotplt refs from plt.refcount
to got.refcount for symbols that are forced local or when
we have direct got refs.
(sh_elf_gc_sweep_hook): Adjust gotplt_refcount.  Use it
to correctly adjust got.refcount and plt.refcount.
(sh_elf_copy_indirect_symbol): Copy gotplt_refcount across.
(sh_elf_check_relocs): Increment gotplt_refcount.
2002-10-02 21:53:40 +00:00
Alan Modra 7ec4e8e52d daily update 2002-10-02 00:00:12 +00:00
Jakub Jelinek 7c445aa3c8 bfd/
* elf32-i386.c (elf_i386_relocate_section): Fix
	movl foo@indntpoff, %eax IE->LE transition.
ld/testsuite/
	* ld-i386/i386.exp: Add tlsindntpoff test.
	* ld-i386/tlsindntpoff.s: New test.
	* ld-i386/tlsindntpoff.dd: New test.
2002-10-01 10:43:37 +00:00
Jakub Jelinek abcf1d5247 bfd/
* elf64-x86-64.c (elf64_x86_64_relocate_section): Change TLSGD
	sequence and its transitions.
ld/testsuite/
	* ld-x86-64/tlspic1.s: Change TLSGD sequences.
	* ld-x86-64/tlsbinpic.s: Likewise.
	* ld-x86-64/tlspic.dd: Adjust.
2002-10-01 09:15:34 +00:00
Jakub Jelinek a45bb67df2 bfd/
* elf32-i386.c (elf_i386_relocate_section): Resolve R_386_TLS_LDO_32
	to st_value + addend in non-code sections.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Resolve
	R_X86_64_DTPOFF32 to st_value + addend in non-code sections.

ld/testsuite/
	* ld-i386/i386.exp: Add tlsg test.
	* ld-i386/tlsg.s: New test.
	* ld-i386/tlsg.sd: New test.
	* ld-i386/tlsbin.dd: Change LD into LD -> LE in comments.
	* ld-i386/tlsbinpic.s: Likewise.
	* ld-x86-64/x86-64.exp: Add tlsg test.
	* ld-x86-64/tlsg.s: New test.
	* ld-x86-64/tlsg.sd: New test.
	* ld-x86-64/tlsbin.dd: Change LD into LD -> LE in comments.
	* ld-x86-64/tlsbinpic.s: Likewise.
2002-10-01 09:10:46 +00:00
Alan Modra cd614c8e99 daily update 2002-10-01 00:00:04 +00:00
Richard Sandiford 00707a0e89 [include/elf]
* mips.h (E_MIPS_MACH_4120, E_MIPS_MACH_5400, E_MIPS_MACH_5500): New.

[bfd/]
	* archures.c (bfd_mach_mips4120, bfd_mach_mips5400): New.
	(bfd_mach_mips5500): New.
	* cpu-mips.c (I_mips4120, I_mips5400, I_mips5500): New.
	(arch_info_struct): Add corresponding entries here.
	* elfxx-mips.c (_bfd_elf_mips_mach): Handle E_MIPS_MACH_4120,
	E_MIPS_MACH_5400 and E_MIPS_MACH_5500.
	(_bfd_mips_elf_final_write_processing): Handle bfd_mach_mips4120,
	bfd_mach_mips5400 and bfd_mach_mips5500.
	(_bfd_mips_elf_mach_extends_p): New function.
	(_bfd_mips_elf_merge_private_bfd_data): Use it to help merge
	the EF_MIPS_MACH flags.
	* bfd-in2.h: Regenerate.
2002-09-30 11:53:56 +00:00
Alan Modra b62460894d daily update 2002-09-30 00:00:05 +00:00
Alan Modra b98e220fe5 daily update 2002-09-29 00:00:04 +00:00
Jason Thorpe 624f0b2537 * elf32-vax.c (elf_vax_size_dynamic_section): Don't strip
.got sections.
2002-09-28 23:15:50 +00:00
Alan Modra b89fe0ee4b * elf.c (map_sections_to_segments): Correct test for start of
writable section in the same page as end of read-only section.
2002-09-28 03:25:56 +00:00
Alan Modra d6f80f8172 daily update 2002-09-28 00:00:05 +00:00
Jason Thorpe b29635ba03 * elf32-vax.c (elf_vax_check_relocs): Remove unused
local_got_refcounts usage.  Remove allocation of got slot.
(elf_vax_gc_sweep_hook): Remove unused local_got_refcounts usage.
Remove de-allocation of got slot.
(elf_vax_size_dynamic_section): Fix some indentation.  Add hash
traversal for elf_vax_instantiate_got_entries.  Allow empty .got
sections to be GC'ed.
(elf_vax_instantiate_got_entries): New function.
(elf_vax_relocate_section): Simplify R_VAX_GOT32 handling.  Remove
tests that are now handled by elf_vax_instantiate_got_entries.
Assert GOT entry falls within .got section size.  Remove redundant
comparisions.  Fix comments.
2002-09-27 22:28:17 +00:00
Jakub Jelinek bffbf9406f bfd/
* reloc.c: Add x86-64 TLS relocs.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf64-x86-64.c (x86_64_elf_howto): Fix size fields for 32-bit
	relocs.  Add TLS relocs.
	(x86_64_reloc_map): Add TLS relocs.
	(elf64_x86_64_info_to_howto): Adjust for added TLS relocs.
	(struct elf64_x86_64_link_hash_entry): Add tls_type field.
	(GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD, GOT_TLS_IE): Define.
	(elf64_x86_64_hash_entry): Define.
	(struct elf64_x86_64_obj_tdata): New.
	(elf64_x86_64_tdata, elf64_x86_64_local_got_tls_type): Define.
	(struct elf64_x86_64_link_hash_table): Add tls_ld_got.
	(link_hash_newfunc): Initialize tls_type.
	(elf64_x86_64_link_hash_table_create): Initialize tls_ld_got.
	(elf64_x86_64_copy_indirect_symbol): Swap tls_type if necessary.
	(elf64_x86_64_mkobject): New.
	(elf64_x86_64_elf_object_p): Allocate struct elf64_x86_64_obj_tdata.
	(elf64_x86_64_tls_transition): New.
	(elf64_x86_64_check_relocs): Add r_type variable and use it.
	Handle TLS relocs.
	(elf64_x86_64_gc_sweep_hook): Handle TLS relocs.
	(allocate_dynrelocs): Allocate GOT space for TLS relocs.
	(elf64_x86_64_size_dynamic_sections): Likewise.
	(dtpoff_base, tpoff): New.
	(elf64_x86_64_relocate_section): Handle TLS relocs.
	(elf64_x86_64_finish_dynamic_symbol): Only handle non-TLS GOT
	entries.
	(bfd_elf64_mkobject): Define.

	* elf32-i386.c (elf_i386_check_relocs) [R_386_TLS_LE]: Set
	DF_STATIC_TLS if shared.
gas/
	* config/tc-i386.c (tc_i386_fix_adjustable): Add x86-64 TLS relocs.
	Define them if not BFD_ASSEMBLER.
	(lex_got): Handle @tlsgd, @dtpoff and @tpoff in 64-bit mode, add
	@tlsld.
	(md_apply_fix3): No addend for BFD_RELOC_X86_64_TLSGD,
	BFD_RELOC_X86_64_TLSLD and BFD_RELOC_X86_64_GOTTPOFF.
	(tc_gen_reloc): Handle x86-64 TLS relocs.
include/
	* elf/x86-64.h: Add TLS relocs.
ld/testsuite/
	* lib/ld-lib.exp (run_ld_link_tests): Add.
	* ld-sh/sh64/sh64.exp (run_ld_link_tests, regexp_diff,
	file_contents): Remove.
	(sh64tests): Add 6th field to the tests array.
	* ld-i386/i386.exp (run_ld_link_tests): Remove.
	* ld-x86-64/x86-64.exp: New.
	* ld-x86-64/tlsbin.dd: New test.
	* ld-x86-64/tlsbinpic.s: New test.
	* ld-x86-64/tlsbin.rd: New test.
	* ld-x86-64/tlsbin.s: New test.
	* ld-x86-64/tlsbin.sd: New test.
	* ld-x86-64/tlsbin.td: New test.
	* ld-x86-64/tlslib.s: New test.
	* ld-x86-64/tlspic1.s: New test.
	* ld-x86-64/tlspic2.s: New test.
	* ld-x86-64/tlspic.dd: New test.
	* ld-x86-64/tlspic.rd: New test.
	* ld-x86-64/tlspic.sd: New test.
	* ld-x86-64/tlspic.td: New test.
2002-09-27 19:29:18 +00:00
Alan Modra 1b29edd56e daily update 2002-09-27 00:00:03 +00:00
Thiemo Seufer 1436646065 * elfxx-mips.c (_bfd_mips_elf_fake_sections): Don't emit unneeded
empty relocation sections.
2002-09-26 09:10:57 +00:00
Alan Modra 9f951329b6 * elf64-ppc.c (ppc_build_one_stub): Don't build glink stubs here.
(ppc64_elf_build_stubs): Build them here instead.
2002-09-26 05:19:38 +00:00
Alan Modra c8776d756a daily update 2002-09-26 00:00:05 +00:00
Alan Modra 0d945288dd daily update 2002-09-25 00:00:09 +00:00
Jakub Jelinek 6b3ac70943 * elf32-sparc.c (elf32_sparc_relocate_section): Put R_SPARC_RELATIVE
addend into r_addend, not *r_offset.
	(elf32_sparc_finish_dynamic_symbol): Likewise.
	* elf64-sparc.c (sparc64_elf_finish_dynamic_symbol): Clear xword at
	R_SPARC_RELATIVE's r_offset.
2002-09-24 15:54:22 +00:00
Nick Clifton a2ce5bdc13 Fix typo introduced with previous delta. 2002-09-24 07:11:16 +00:00
Alan Modra 30afc28bae daily update 2002-09-24 00:00:05 +00:00
Daniel Jacobowitz 10f469bf06 Add missing ChangeLog entry 2002-09-23 21:29:27 +00:00
Nick Clifton e2f6d27741 Update to correctly decode (non-standard DWARF2) out-of-order address sequences. 2002-09-23 16:13:52 +00:00
DJ Delorie f3961b2b3d * config.bfd: For DJGPP targets, match with any cpu and any machine. 2002-09-23 11:59:34 +00:00
Alan Modra ad34bc37c1 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Zero relocs
for discarded FDEs.  Remove redundant assignment.
	* elflink.h (elf_bfd_discard_info): Save edited relocs.
2002-09-23 10:52:03 +00:00
Alan Modra 59810fca36 daily update 2002-09-23 00:00:09 +00:00
H.J. Lu 82988bffc5 2002-09-22 H.J. Lu <hjl@gnu.org>
* elf64-alpha.c (elf64_alpha_merge_ind_symbols): Don't merge
	the relocation count between different .reloc sections.
2002-09-22 22:32:49 +00:00
Alan Modra e7edbbdb57 daily update 2002-09-22 00:00:05 +00:00
Alan Modra 5f81912811 * elf32-ppc.c (ppc_elf_relocate_section): Allow ".sbss.*" and
".sdata.*" for R_PPC_SDAREL16, ".sbss2*" and ".sdata2*" for
	R_PPC_EMB_SDA2REL.  Similarly for R_PPC_EMB_SDA21 and
	R_PPC_EMB_RELSDA.
2002-09-21 10:09:13 +00:00
Alan Modra 5ad8645cf8 * elfcode.h (elf_slurp_reloc_table_from_section): Make "symcount"
unsigned.  Move "symcount" assignment out of loop.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regnerate.
2002-09-21 09:59:19 +00:00
Alan Modra 608707ac84 daily update 2002-09-21 00:00:04 +00:00
Nick Clifton 759365550a (_bfd_dwarf2_find_nearest_line): If address length is zero, set it to 8 for
(non-standard) 64-bit DWARF2 formats (e.g. IRIX64).
2002-09-20 07:28:54 +00:00
H.J. Lu 2243deae67 2002-09-19 Jakub Jelinek <jakub@redhat.com>
* elf32-ppc.c (ppc_elf_finish_dynamic_symbol): Clear .got word
	even if generating R_PPC_RELATIVE reloc.
	(ppc_elf_relocate_section): Make sure relocation is performed
	if skip == -2.  Clear memory at r_offset when creating dynamic
	relocation.
2002-09-20 05:54:41 +00:00
Alan Modra 055d38886f daily update 2002-09-20 00:00:04 +00:00
Jakub Jelinek 37e55690c4 bfd/
* reloc.c (BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE,
	BFD_RELOC_386_TLS_GOTIE): Add.
	* bfd-in2.h, libbfd.h: Rebuilt.
	* elf32-i386.c (elf_howto_table): Add R_386_TLS_TPOFF, R_386_TLS_IE
	and R_386_TLS_GOTIE.
	(elf_i386_reloc_type_lookup): Handle it.
	(struct elf_i386_link_hash_entry): Change tls_type type to unsigned
	char instead of enum, change GOT_* into defines.
	(GOT_TLS_IE_POS, GOT_TLS_IE_NEG, GOT_TLS_IE_BOTH): Define.
	(elf_i386_tls_transition): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	(elf_i386_check_relocs): Likewise.  Avoid crash if local symbol is
	accessed both as normal and TLS symbol.  Move R_386_TLS_LDM and
	R_386_PLT32 cases so that R_386_TLS_IE can fall through.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_gc_sweep_hook): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(allocate_dynrelocs): Allocate 2 .got and 2 .rel.got entries if
	tls_type is GOT_TLS_IE_BOTH.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Handle R_386_TLS_IE and R_386_TLS_GOTIE.
	Handle R_386_TLS_LE_32 and R_386_TLS_LE in shared libs.
	(elf_i386_finish_dynamic_symbol): Use tls_type & GOT_TLS_IE to catch
	all 4 GOT_TLS_* TLS types.
gas/
	* config/tc-i386.c (tc_i386_fix_adjustable): Handle
	BFD_RELOC_386_TLS_IE and BFD_RELOC_386_TLS_GOTIE.
	(BFD_RELOC_386_TLS_IE, BFD_RELOC_386_TLS_GOTIE): Define to 0
	if not defined.
	(lex_got): Handle @GOTNTPOFF and @INDNTPOFF.
	(md_apply_fix3, tc_gen_reloc): Handle BFD_RELOC_386_TLS_IE and
	BFD_RELOC_386_TLS_GOTIE.
gas/testsuite/
	* gas/i386/tlspic.s: Add tests.
	* gas/i386/tlspic.d: Regenerated.
	* gas/i386/tlsnopic.s: Add tests.
	* gas/i386/tlsnopic.d: Regenerated.
include/
	* elf/i386.h (R_386_TLS_TPOFF, R_386_TLS_IE, R_386_TLS_GOTIE):
	Define.
ld/testsuite/
	* ld-i386/i386.exp: New.
	* ld-i386/tlsbin.dd: New test.
	* ld-i386/tlsbinpic.s: New test.
	* ld-i386/tlsbin.rd: New test.
	* ld-i386/tlsbin.s: New test.
	* ld-i386/tlsbin.sd: New test.
	* ld-i386/tlsbin.td: New test.
	* ld-i386/tlslib.s: New test.
	* ld-i386/tlsnopic1.s: New test.
	* ld-i386/tlsnopic2.s: New test.
	* ld-i386/tlsnopic.dd: New test.
	* ld-i386/tlsnopic.rd: New test.
	* ld-i386/tlsnopic.sd: New test.
	* ld-i386/tlspic1.s: New test.
	* ld-i386/tlspic2.s: New test.
	* ld-i386/tlspic.dd: New test.
	* ld-i386/tlspic.rd: New test.
	* ld-i386/tlspic.sd: New test.
	* ld-i386/tlspic.td: New test.
2002-09-19 19:01:18 +00:00
Nick Clifton 8e67855b57 When examining weak symbols, follow indirect links. 2002-09-19 16:34:14 +00:00
Nick Clifton 0e327d91fa Fix error reading ECOFF information: 'ioptMax' refers to the actual *size*
of the optimization symtab, not the number of entries.
2002-09-19 15:38:36 +00:00
Nick Clifton 1c59ba3fd5 Update to correctly sign-extend 32-bit ECOFF null values (0xffffffff, -1) 2002-09-19 15:31:30 +00:00
Nick Clifton 9d7404b762 (elf32_arm_adjust_dynamic_symbol): Update ELF_LINK_HASH_NEEDS_PLT logic. 2002-09-19 14:59:51 +00:00
Jakub Jelinek ca1eb0ba30 Fix the ChangeLog entry for my last commit. 2002-09-19 11:38:22 +00:00
Alan Modra ca4855e6f1 daily update 2002-09-19 00:00:03 +00:00
Stan Cox 47293a4ce4 * elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3. 2002-09-18 17:28:37 +00:00
Daniel Jacobowitz 05a487dc8c * elfcode.h (elf_slurp_reloc_table_from_section): Check
correct relocation count.
2002-09-18 13:25:35 +00:00
Daniel Jacobowitz 1f70368c21 * bfd-in.h (bfd_get_dynamic_symcount): Define.
* bfd.c (struct _bfd): Add dynsymcount.
        * bfd-in2.h: Regenerated.
        * elf.c (_bfd_elf_canonicalize_dynamic_symtab): Set
        abfd->dynsymcount.
        * elfcode.h (elf_slurp_reloc_table_from_section): Check
        for overflow.
2002-09-18 02:39:43 +00:00
Stan Cox a902ee94b7 * elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3.
(mips_elf64_final_gp): Don't make up gp value.
	* elfn32-mips.c (mips_elf_final_gp): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_final_link): Always create
	.MIPS.options/.options section.
2002-09-18 01:38:20 +00:00
Alan Modra 6a99f81305 daily update 2002-09-18 00:00:05 +00:00
David O'Brien 290062cce3 2002-09-17 David O'Brien <obrien@FreeBSD.org>
* elf32-i386-fbsd.c: Always label using the EI_OSABI method.
	It is benign for FreeBSD < 4.1.  Minor reformatting.
	* elf64-alpha-fbsd.c: Likewise.

Approved by:  Alan Modra <amodra@bigpond.net.au>
              Message-ID: <20020917182339.B14457@bubble.sa.bigpond.net.au>
2002-09-17 19:49:04 +00:00
Jakub Jelinek c5c1f40c26 * elf_i386_relocate_section (R_386_TLS_TPOFF32): Negate addend. 2002-09-17 09:52:41 +00:00
Alan Modra a6588c3004 * coff-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED.
* cpu-tic4x.c: Ditto.
2002-09-17 08:59:11 +00:00
Alan Modra 562ace6b79 * elf64-alpha.c (alpha_elf_size_info): Make static. 2002-09-17 08:48:54 +00:00
Alan Modra 5af6ead675 * coff-tic4x.c: Add function declarations and ATTRIBUTE_UNUSED.
* cpu-tic4x.c: Ditto.
2002-09-17 08:33:13 +00:00
Thiemo Seufer cb9512fc2f * elf64-mips.c (define elf_backend_ignore_discarded_relocs): Remove
duplicate define.
2002-09-17 07:48:30 +00:00
David O'Brien 4ada7262d0 2002-09-16 Bruno Haible <bruno@clisp.org>
* elf32-i386.c: Don't defined ELF_ARCH etc. if this file is included
	by a target variant implementation.
	* elf64-alpha.c: Likewise.
	* elf32-i386-fbsd.c: New file.
	* elf64-alpha-fbsd.c: New file.
	* targets.c: Support bfd_elf32_i386_freebsd_vec and
	bfd_elf64_alpha_freebsd_vec.
	* configure.in: Accept the vectors bfd_elf32_i386_freebsd_vec,
	bfd_elf64_alpha_freebsd_vec.
	* Makefile.am (BFD32_BACKENDS): Add elf32-i386-fbsd.lo.
	(BFD32_BACKENDS_CFILES): Add elf32-i386-fbsd.c.
	(BFD64_BACKENDS): Add elf64-alpha-fbsd.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-alpha-fbsd.c.
	(elf32-i386-fbsd.lo, elf64-alpha-fbsd.lo): Add dependencies.
	* config.bfd: For FreeBSD targets, set targ_defvec to a FreeBSD
	specific targets. Define OLD_FREEBSD_ABI_LABEL if appropriate.

	* config/tc-i386.h (ELF_TARGET_FORMAT): New macro.
	(TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf32-i386".
	* config/tc-i386.c (i386_target_format): Likewise.
	* config/tc-alpha.h (ELF_TARGET_FORMAT): New macro.
	(TARGET_FORMAT): Use ELF_TARGET_FORMAT instead of "elf64-alpha".

	* emulparams/elf_i386_fbsd.sh: Set OUTPUT_FORMAT to
	elf32-i386-freebsd.
	* emulparams/elf64alpha_fbsd.sh: Set OUTPUT_FORMAT to
	elf64-alpha-freebsd.

Approved by:  Alan Modra <amodra@bigpond.net.au>
              Message-ID: <20020715021113.GJ30362@bubble.sa.bigpond.net.au>
2002-09-17 02:24:40 +00:00
Alan Modra f184d8167c daily update 2002-09-17 00:00:05 +00:00
Alan Modra e213f11339 daily update 2002-09-16 00:00:05 +00:00
Alan Modra af6efa2927 daily update 2002-09-15 00:00:04 +00:00
Alan Modra 94202ba54e daily update 2002-09-14 00:00:04 +00:00
Alan Modra 4cfa75e2b2 daily update 2002-09-13 00:00:05 +00:00
Jakub Jelinek 6a30718d0e * elf32-i386.c (dtpoff_base, tpoff): Don't crash if tls_segment is
NULL.
	(elf_i386_relocate_section): Return false after printing error about
	unresolvable relocation.
2002-09-12 14:01:20 +00:00
Nick Clifton 6cf9e9fe1d Fix handling of R_ARM_THM_PC11 2002-09-12 13:18:57 +00:00
Alan Modra b2e57ccbb6 daily update 2002-09-12 00:00:05 +00:00
Jeff Law 32ac2c9a75 * elf32-h8300.c (elf32_h8_relax_section): Fix typo. 2002-09-11 19:19:11 +00:00
Nick Clifton dc43ada5bf Check functionname_ptr and line_ptr before deciding we've found a symbol. 2002-09-11 14:30:53 +00:00
Nick Clifton e09f439535 Update translations 2002-09-11 13:52:17 +00:00
Alan Modra 470903d0b0 daily update 2002-09-11 00:00:04 +00:00
Nick Clifton b3018b5f70 Call new functions do_sections, do_sections64, depending on corefile (32-bit
or 64-bit).
2002-09-10 10:39:03 +00:00
Alan Modra 4a386c0bd2 daily update 2002-09-10 00:00:05 +00:00
Richard Henderson 2f21f25e2b * elfxx-ia64.c (elfNN_ia64_relax_section): Handle PCREL21M
and PCREL21F like PCREL21B.
2002-09-09 17:34:07 +00:00
Alan Modra 0b42ccd55f daily update 2002-09-09 00:00:08 +00:00
Alan Modra 78c87cb7e6 daily update 2002-09-08 00:00:04 +00:00
Alan Modra 041386aa43 daily update 2002-09-07 00:00:04 +00:00
Alan Modra dbbfa733b4 daily update 2002-09-06 00:00:04 +00:00
Alan Modra 8f8429869e daily update 2002-09-05 00:00:03 +00:00
Kevin Buettner 28b94e7ce2 * config.bfd (mips*-*-irix6*): Add new ABI vectors. Make n32 default
vector.
2002-09-04 23:10:59 +00:00
Alan Modra 5731205c28 daily update 2002-09-04 00:00:05 +00:00
Alan Modra b8bb248ad6 daily update 2002-09-03 00:00:04 +00:00
Nick Clifton 5cec694196 Use helpful names instead of cryptically overloaded bfd_reloc error codes.
Replace caching of external symbols with caching of internal symbols obtained
from calling bfd_elf_get_elf_syms().
Fixup problems with freeing cached allocated memory blocks.
2002-09-02 14:23:43 +00:00
Alan Modra 638524b534 * cpu-pj.c (scan_mach, compatible, arch_info_struct): Remove.
(bfd_pj_arch): Use bfd_default_scan.
	* cpu-v850.c (scan): Remove.
	(N): Use bfd_default_scan.
	* cpu-z8k.c (scan_mach): Remove.
	(arch_info_struct, bfd_z8k_arch): Reorganize so that the default is
	first.  Use bfd_default_scan.
2002-09-02 11:52:01 +00:00
Alan Modra 250d94fd4b * ecoff.c (_bfd_ecoff_set_arch_mach_hook): Don't use hard-coded
bfd_mach constants.
	(ecoff_get_magic): Likewise.
	* elf32-v850.c (v850_elf_object_p): Likewise.
	(v850_elf_final_write_processing): Likewise.
	* mipsbsd.c (MY(set_arch_mach)): Likewise.
	(MY(write_object_contents)): Likewise.
	* coff64-rs6000.c (xcoff64_write_object_contents): Likewise.
	* coffcode.h (coff_write_object_contents): Likewise.
	(coff_set_arch_mach_hook): Add comment describing machine == 0.
	Remove unnecessary "machine" assignments.
	(coff_write_relocs): Test for the absolute section sym by testing
	section and flags.

	* pdp11.c (NAME(aout,machine_type)): Like aoutx.h.
2002-09-02 11:47:42 +00:00
Alan Modra 3b77b1d509 * aoutx.h (NAME(aout,machine_type)): Recognize bfd_mach_i386_i386
and bfd_mach_i386_i386_intel_syntax.
2002-09-02 05:58:55 +00:00
Alan Modra 2fc2fd0100 daily update 2002-09-02 00:00:06 +00:00
Alan Modra c73618fa9c daily update 2002-09-01 00:00:07 +00:00
Alan Modra 6b9e33ce06 daily update 2002-08-31 00:00:08 +00:00
Dave Anglin e5b45b8395 * bfd-in.h (align_power): Cast constants to bfd_vma type.
* bfd-in2.h (align_power): Likewise.
2002-08-30 18:36:18 +00:00
Alan Modra 37f45cf898 * Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.

	* cpu-avr.c (compatible): Don't use hard-coded mach constants.
	* cpu-powerpc.c (powerpc_compatible): Likewise.
	* cpu-rs6000.c (rs6000_compatible): Likewise.
2002-08-30 08:11:44 +00:00
Alan Modra 80977a89c9 daily update 2002-08-30 00:00:04 +00:00
Dave Anglin 51240b8d93 * chew.c (paramstuff, outputdots, perform, bang and usage): Remove
void from function definitions.
2002-08-29 14:37:19 +00:00
Nick Clifton 86aba9dbfa Add linker relaxation to v850 toolchain 2002-08-29 06:49:35 +00:00
Alan Modra 6ba3d7ed59 daily update 2002-08-29 00:00:05 +00:00
Nick Clifton 026df7c5e6 Add TMS320C4x support 2002-08-28 10:38:51 +00:00
Alan Modra 72f227962f daily update 2002-08-28 00:00:04 +00:00
Nick Clifton 88f7bcd5a7 Revert ARM linker patch and apply similar patch to bfd instead 2002-08-27 11:01:55 +00:00
Alan Modra 1af0fa2dd5 daily update 2002-08-27 00:00:04 +00:00
Alan Modra c8e48751a6 * coffcode.h (coff_set_arch_mach_hook): Handle W65MAGIC. 2002-08-26 09:01:41 +00:00
Alan Modra 2846975ad0 * aoutx.h (NAME(aout,reloc_type_lookup)): Handle BFD_RELOC_8. 2002-08-26 08:46:21 +00:00
Alan Modra 383ca9fbf6 daily update 2002-08-26 00:00:04 +00:00
Alan Modra 6e490d4203 daily update 2002-08-25 00:01:20 +00:00
Alan Modra 067653c535 * elf32-sh.c (sh_elf_copy_indirect_symbol): New.
(create_got_section, allocate_dynrelocs, readonly_dynrelocs):
	Likewise.
	(struct elf_sh_pcrel_relocs_copied): Removed.
	(struct elf_sh_dyn_relocs): New.
	(struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied
	field with dyn_relocs.
	(struct elf_sh_link_hash_table): Add short-cuts to get dynamic
	sections and sym_sec.
	(sh_elf_link_hash_newfunc): Clear dyn_relocs.
	(sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec.
	(sh_elf_create_dynamic_sections): Use create_got_section instead
	of _bfd_elf_create_got_section.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_create_dynamic_sections): Use short-cuts to the dynamic
	sections.
	(sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections,
	sh_elf_relocate_section, sh_elf_check_relocs,
	sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections):
	Likewise.
	(sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the
	dynamic relocations and avoiding the copy relocation when we
	didn't find any dynamic relocations in the section which has
	contents or is read-only.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(sh_elf_size_dynamic_sections): Don't reset the size of
	.rela.got section even if dynamic_sections_created flag is off.
	Don't use sh_elf_discard_copies. Scan all input bfd and use
	allocate_dynrelocs. Call readonly_dynrelocs to determine
	whether we need DT_TEXTREL.
	(sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine
	whether the symbol was never referred to.
	(sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL.
	(sh_elf_gc_sweep_hook): Fill with the real sweep function.
	(sh_elf_check_relocs): Call create_got_section if the short-cut
	to .got is null. Increment reference counters only instead of
	allocating space on dynamic sections here. Don't conditionalize
	uninitialized got.offset value when marking the symbol as a
	global offset table entry. Keep relocations for symbols satisfied
	by a dynamic library to avoid copy relocations for the symbol.
	Set dynobj field of an elf hash table if needed.
	(sh_elf_finish_dynamic_sections): Handle null section pointer
	correctly.
	(elf_backend_copy_indirect_symbol): Defined.
	(elf_backend_can_refcount): Defined.
2002-08-24 01:44:56 +00:00
Alan Modra ee828e4278 daily update 2002-08-24 00:00:04 +00:00
Nick Clifton 7e326afc19 Undo previous delta. Add comment explaining why. 2002-08-23 09:42:21 +00:00
Alan Modra c8614e8e65 * elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy
contents of .got.plt[2] to tr0, not address of .got.plt.
	(sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, set bottom bit
	of branch to plt0 as this is a branch to an shmedia instruction.
	* elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le):
	Copy contents of .got.plt[2] to tr0, not address of .got.plt.
	(elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to
	branch to plt0.
	(sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, branch to
	plt0 is now ptrel, so use relative offset.  Set bottom bit of
	branch target as it is a branch to an shmedia instruction.
2002-08-23 08:26:13 +00:00
Alan Modra 3b587c71d7 * elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT
value if .init is an SHmedia function.  Similarly for DT_FINI.
	* elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
2002-08-23 08:13:12 +00:00
Alan Modra 957dcaa8ef * bfd/elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize
dynamic section.
	* bfd/elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
2002-08-23 04:23:37 +00:00
Alan Modra 355ac37b68 daily update 2002-08-23 00:00:05 +00:00
Nick Clifton a4263c47c0 Use a simple byte read when reading the return address register column. 2002-08-22 20:00:14 +00:00
Nick Clifton db4ed12147 Add powerpc64-*-*bsd* target. 2002-08-22 17:45:36 +00:00