Commit graph

3749 commits

Author SHA1 Message Date
Paul Brook
0b52efa6eb * elflink.c (elf_get_linked_section_vma, compare_link_order,
elf_fixup_link_order): New functions.
	(bfd_elf_final_link): Call elf_fixup_link_order.
2004-07-21 13:32:26 +00:00
Alexandre Oliva
7e2294f937 * elf-bfd.h (ELF_COMMON_DEF_P): New.
* elflink.c (_bfd_elf_symbol_refs_local_p): Use it to handle
common definitions.
* elf-m10300.c: Use SYMBOL_REFERENCES_LOCAL instead of
_bfd_elf_symbol_refs_local_p.
* elf32-frv.c (FRVFDPIC_SYM_LOCAL): Remove hack for common
symbols.
2004-07-21 06:46:20 +00:00
H.J. Lu
e56f61be75 bfd/
2004-07-19  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd-in.h (dynamic_lib_link_class): Add DYN_NO_ADD_NEEDED and
	DYN_NO_NEEDED.
	(bfd_elf_get_dyn_lib_class): New prototype.
	* elf.c (bfd_elf_get_dyn_lib_class): New function.

	* elflink.c (elf_link_add_object_symbols): Check DYN_AS_NEEDED,
	DYN_DT_NEEDED and DYN_NO_NEEDED bits to see if a DT_NEEDED
	entry is needed. Issue an error if a DT_NEEDED entry is needed
	for a file marked DYN_NO_NEEDED.
	(elf_link_check_versioned_symbol): Check the DYN_DT_NEEDED bit
	for DT_NEEDED tags.

	* bfd-in2.h: Regenerated.

ld/

2004-07-19  H.J. Lu  <hongjiu.lu@intel.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): Also
	check the add_needed field.
	(dt_needed): New struct.
	(gld${EMULATION_NAME}_try_needed): Change the first argument
	to a pointer to struct dt_needed. Check the DYN_NO_ADD_NEEDED
	bit in the file where the DT_NEEDED entry comes from.
	(gld${EMULATION_NAME}_search_needed): Change the second
	argument to a pointer to struct dt_needed.
	(gld${EMULATION_NAME}_check_ld_so_conf): Updated.
	(gld${EMULATION_NAME}_after_open): Likewise.

	* ld.texinfo: Add --add-needed document.
	* ldlang.c (new_afile): Set p->add_needed.
	* ldlang.h (lang_input_statement_type): Add add_needed field.
	* ldmain.h (add_needed): Declare.
	* ldmain.c (add_needed): New global var.
	* lexsup.c (option_values): Add OPTION_ADD_NEEDED and
	OPTION_NO_ADD_NEEDED.
	(ld_options): Likewise.
	(parse_args): Handle them.
2004-07-19 16:40:52 +00:00
Alan Modra
48cf5663a3 daily update 2004-07-15 00:00:05 +00:00
Dave Anglin
27b56da8f7 * elflink.c (elf_section_complain_discarded): Don't complain in
.PARISC.unwind.
2004-07-14 20:07:41 +00:00
Nick Clifton
10b7e05bbe Revert previous delta - the bug had already been fixed. 2004-07-14 08:53:59 +00:00
Alan Modra
fc6d1c75ea daily update 2004-07-14 00:00:05 +00:00
Nick Clifton
7866fa8c5e fix typo 2004-07-13 15:34:41 +00:00
Nick Clifton
e6b7d0f236 (elf_sort_symbol): Restructure code to avoid bug in Solairs hosted versions of
gcc.
2004-07-13 12:55:42 +00:00
Alan Modra
f8daaebbea daily update 2004-07-13 00:00:06 +00:00
Alan Modra
09cd27467d daily update 2004-07-12 00:00:06 +00:00
Jim Wilson
bbb268c36c Fix linker big-endian support.
* elfxx-ia64.c (elfNN_ia64_relax_ldxmov): Remove abfd parameter.
(elfNN_ia64_install_value, elfNN_ia64_relax_brl): Likewise.
(elfNN_ia64_relax_section, elfNN_ia64_relocate_section,
elfNN_ia64_finish_dynamic_symbol, elfNN_ia64_finish_dynamic_sections):
Fix callers.
(elfNN_ia64_relax_brl): Change bfd_get_64 to bfd_getl64.  Change
bfd_put_64 to bfd_putl64.
(elfNN_ia64_relax_ldxmov, elfNN_ia64_install_value): Likewise.
2004-07-11 03:15:29 +00:00
Alan Modra
47dcffea39 daily update 2004-07-11 00:00:06 +00:00
Alan Modra
b2f8f038a2 daily update 2004-07-10 00:00:07 +00:00
H.J. Lu
e525914fa7 2004-07-09 H.J. Lu <hongjiu.lu@intel.com>
PR 240
	* elfxx-ia64.c (elfNN_ia64_relax_section): Only warn br in
	.init/.fini sections when trying to relax it.
2004-07-09 19:27:15 +00:00
Nick Clifton
b1a6d0b1cb * elf.c (assign_file_positions_for_segments): Make sure the .dynamic section
is the first section in the PT_DYNAMIC segment
2004-07-09 16:06:20 +00:00
Nick Clifton
1a320fbbe5 Rename sh-symbian-elf toolchain to sh-*-symbianelf 2004-07-09 12:32:35 +00:00
Alan Modra
daae2fb835 daily update 2004-07-09 00:00:05 +00:00
Alan Modra
ca0ec6f95c daily update 2004-07-08 00:00:37 +00:00
Nick Clifton
1fe1f39c06 Add new port: crx-elf 2004-07-07 17:28:53 +00:00
Alan Modra
07c36450ae daily update 2004-07-07 00:00:06 +00:00
Nick Clifton
85fbca6a4f Add support for sh-symbian-elf target 2004-07-06 16:58:43 +00:00
Alan Modra
133d606c3d daily update 2004-07-06 00:00:05 +00:00
Joern Rennecke
871ec89609 2004-06-30 Andrew Stubbs <andrew.stubbs@superh.com>
bfd:
	* elf32-sh.c: Include ../opcodes/sh-opc.h .
	* Makefile.am: Ran make dep-am .
	* Makefile.in: Ran make dep-in .

	gas:
	* config/tc-sh.c (md_assemble): Change isspace to ISSPACE.
	(md_parse_option): Remove redundant -isa testing.
	Make bfd_arch variable const.
	(md_show_usage): Make bfd_arch variable const.
2004-07-05 13:35:44 +00:00
Alan Modra
e960593a6d daily update 2004-07-05 00:00:05 +00:00
Alan Modra
7eed2dd3cd daily update 2004-07-04 00:00:07 +00:00
Christopher Faylor
c87db184a7 2004-07-04 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com>
* bfd/cofflink.c (_bfd_coff_generic_relocate_section): Resolve PE weak
externals properly.
* src/gas/config/obj-coff.c (obj_coff_weak): New .weak syntax for PE weak
externals.
* binutils/doc/binutils.texi (nm): Clarify weak symbol description.
* gas/config/tc-i386.c (tc_gen_reloc): Use addend for weak symbols in TE_PE.
* gas/doc/as.texinfo (Weak): Document PE weak symbols.
* ld/ld.texinfo (WIN32): Document PE weak symbols.
2004-07-03 16:07:51 +00:00
Alan Modra
00577cd69a daily update 2004-07-03 00:00:07 +00:00
Martin Schwidefsky
06f2f6af8b * config.bfd: Add want64 to configuration target s390-*-linux*. 2004-07-02 14:12:01 +00:00
H.J. Lu
b602c853d8 bfd/
2004-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	* bfd.c (bfd_get_section_ident): New.

	* elflink.c (elf_link_read_relocs_from_section): Call
	bfd_get_section_ident to identify the section when reporting
	error.
	(_bfd_elf_link_output_relocs): Likewise.
	(elf_link_output_extsym): Likewise.
	(elf_link_input_bfd): Likewise.
	(bfd_elf_gc_record_vtinherit): Likewise.

	* bfd-in2.h: Regenerated.
ld/

2004-07-01  H.J. Lu  <hongjiu.lu@intel.com>

	* ldmisc.c (vfinfo): Call bfd_get_section_ident to identify
	the section.
2004-07-02 01:39:32 +00:00
Alan Modra
ac6b4428da daily update 2004-07-02 00:00:05 +00:00
Nick Clifton
7a2a694312 (_bfd_mips_elf_final_link): Pass the correct number of section symbols to
mips_elf_sort_hash_table ().
2004-07-01 14:53:40 +00:00
Alan Modra
cdd3575c22 bfd/
* elflink.c (elf_section_ignore_discarded_relocs): Revert last
	change.  Comment.
	(elf_section_complain_discarded): New function.  Handle
	.gcc_except_table too.
	(elf_link_input_bfd): Rewrite handling of relocs against symbols
	in discarded sections.
	* elf-bfd.h (elf_discarded_section): Protect macro arg.
ld/testsuite/
	* ld-discard/extern.d: Update.
	* ld-discard/start.d: Update.
	* ld-discard/static.d: Update.
2004-07-01 13:48:53 +00:00
Alan Modra
ec217c8240 daily update 2004-07-01 00:00:06 +00:00
Jim Wilson
21a8f7fa66 Fix @pltoff linker segfault for non-shared link.
* elfxx-ia64.c (elfNN_ia64_check_relocs): New local pltoff.  Initialize
to NULL.  Call get_pltoff if NULL and NEED_PLTOFF is true.
2004-06-30 20:23:23 +00:00
H.J. Lu
2de26f35df bfd/
2004-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR 233
	* elflink.c (elf_link_input_bfd): Issue an error for non-debug
	local references to discarded sections and report their
	locations.

ld/testsuite/

2004-06-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR 233
	* ld-discard/extern.d: Updated.
	* ld-discard/start.d: Likewise.
	* ld-discard/static.d: Likewise.
2004-06-30 16:19:20 +00:00
Alan Modra
72d7a15c9d * elflink.c (elf_section_ignore_discarded_relocs): Don't test
sec_info_type, test section name instead.
2004-06-30 13:42:45 +00:00
H.J. Lu
e7f0a16764 2004-06-29 H.J. Lu <hongjiu.lu@intel.com>
PR 240
	* elfxx-ia64.c (elfNN_ia64_relax_section): Don't relax branch
	in .init/.fini sections.
2004-06-30 03:51:25 +00:00
Alan Modra
bec6a61d01 daily update 2004-06-30 00:00:06 +00:00
Bob Wilson
bff5f93a2c * elf32-xtensa.c (elf_xtensa_relocate_section): Use
bfd_get_section_limit.
2004-06-29 22:03:33 +00:00
Bob Wilson
b54d4b0722 * elf32-xtensa.c (elf_xtensa_combine_prop_entries): Don't change the
output section size.
2004-06-29 21:03:13 +00:00
Alan Modra
1a23a9e613 bfd/
* elf64-mmix.c (mmix_set_relaxable_size): Save original size in
	rawsize.
	(mmix_elf_perform_relocation): Adjust for above change.
	(mmix_elf_relocate_section): Likewise.
	(mmix_elf_relax_section): Likewise.  Use output_section->rawsize.
	(mmix_elf_get_section_contents): Delete.
	(bfd_elf64_get_section_contents): Delete.
	(mmix_elf_relocate_section): Zero stub area.
	* linker.c (default_indirect_link_order): Alloc max of section size
	and rawsize.
	* simple.c (bfd_simple_get_relocated_section_contents): Likewise.
	* section.c (bfd_malloc_and_get_section): Likewise.
	(struct bfd_section): Update rawsize comment.
	* bfd-in2.h: Regenerate.
ld/
	* ldlang.c (lang_reset_memory_regions): Save last relax pass section
	size in rawsize.
2004-06-29 14:13:47 +00:00
Alan Modra
e87a64e1f0 * reloc16.c (bfd_coff_reloc16_relax_section): Set rawsize. 2004-06-29 13:51:20 +00:00
Alan Modra
075154045b * bfd-in.h (bfd_get_section_limit): Define.
* reloc.c (bfd_perform_relocation, bfd_install_relocation)
	(_bfd_final_link_relocate): Use bfd_get_section_limit.
	* aout-tic30.c (tic30_aout_final_link_relocate): Likewise.
	* coff-arm.c (coff_arm_relocate_section): Likewise.
	* coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): Likewise.
	* cpu-ns32k.c (do_ns32k_reloc): Likewise.
	(bfd_ns32k_final_link_relocate): Likewise.
	* elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): Likwise.
	* elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): Likewise.
	* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc)
	(i860_howto_highadj_reloc, i860_howto_splitn_reloc): Likewise.
	* elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc)
	(m32r_elf_generic_reloc, m32r_elf_relocate_section): Likewise.
	* elf32-m68hc1x.c (m68hc11_elf_special_reloc): Likewise.
	* elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
	* elf32-or32.c (or32_elf_consth_reloc): Likewise.
	* elf32-ppc.c (ppc_elf_addr16_ha_reloc): Likewise.
	* elf32-s390.c (s390_elf_ldisp_reloc): Likewise.
	* elf32-sh.c (sh_elf_reloc_loop): Likewise.
	* elf32-sparc.c (sparc_elf_wdisp16_reloc): Likewise.
	(sparc_elf_hix22_reloc, sparc_elf_lox10_reloc): Likwise.
	* elf32-v850.c (v850_elf_reloc): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_24_reloc): Likewise.
	* elf32-xtensa.c (bfd_elf_xtensa_reloc): Likewise.
	* elf64-alpha.c (elf64_alpha_reloc_gpdisp): Likewise.
	* elf64-mips.c (mips_elf64_gprel32_reloc)
	(mips16_gprel_reloc): Likewise.
	* elf64-mmix.c (mmix_elf_reloc): Likewise.
	* elf64-s390.c (s390_elf_ldisp_reloc): Likewise.
	* elf64-sparc.c (init_insn_reloc): Likewise.
	* elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp)
	(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_lo16_reloc)
	(_bfd_mips_elf_generic_reloc): Likewise.
	* bfd-in2.h: Regenerate.
2004-06-29 13:46:34 +00:00
Alan Modra
243374f656 daily update 2004-06-29 00:00:06 +00:00
Alan Modra
3722b82f10 * bfd-in.h (struct stab_info): Move from stabs.c.
* stabs.c (struct stab_link_includes_table): Delete.
	(stab_link_includes_lookup): Delete.
	(_bfd_write_section_stabs, _bfd_write_stab_strings): Remove one
	level of indirection from sinfo parm.
	(_bfd_link_section_stabs): Likewise.  Set SEC_LINKER_CREATED on
	stabstr section.  Adjust hash table accesses.
	* coff-ppc.c (ppc_bfd_coff_final_link): Do include rawsize in contents
	alloc.  Adjust stab_info test.
	* cofflink.c (_bfd_coff_link_hash_table_init): Clear stab_info.
	(_bfd_coff_final_link): Adjust stab_info test.
	(_bfd_coff_link_input_bfd): Ignore SEC_LINKER_CREATED sections.
	* elf-bfd.h (struct elf_link_hash_table): Include struct stab_info
	in place.
	* libcoff-in.h (struct coff_link_hash_table): Likewise.
	* elf.c (_bfd_elf_link_hash_table_init): Clear stab_info.
	* elflink.c (bfd_elf_final_link): Don't attempt to link linker created
	stabstr section.  Adjust stab_info test.
	* libbfd-in.h (_bfd_link_section_stabs, _bfd_write_section_stabs)
	(_bfd_write_stab_strings): Adjust prototypes.
	* libbfd.h: Regenerate.
	* libcoff.h: Regenerate.
	* bfd-in2.h: Regenerate.
2004-06-28 13:57:59 +00:00
Alan Modra
c2b37aa518 daily update 2004-06-28 00:00:06 +00:00
Mark Kettenis
727e493d45 From Miod Vallat <miod@online.fr>:
* aoutx.h (NAME(aout,machine_type)): Handle bfd_arch_m88k.
2004-06-27 15:08:05 +00:00
Alexandre Oliva
146ccdbb23 * elf-m10300.c (struct elf_mn10300_pcrel_relocs_copied): Delete.
(struct elf32_mn10300_link_hash_entry): Remove
pcrel_relocs_copied.
(mn10300_elf_check_relocs): Only reserve dynamic relocations for
R_MN10300_32.  Don't adjust pcrel_relocs_copied.
(mn10300_elf_final_link_relocate): Fail for direct, pc-relative
and gotoff relocations if the symbol doesn't bind locally.  Use
_bfd_elf_symbol_refs_local_p to test.  Don't create dynamic
relocation for PCREL32.
(mn10300_elf_relocate_section): Use _bfd_elf_symbol_refs_local_p
to test whether a symbol binds locally.
(elf32_mn10300_link_hash_newfunc): Don't initialize
pcrel_relocs_copied.
(_bfd_mn10300_elf_discard_copies): Delete.
(_bfd_mn10300_elf_size_dynamic_sections): Don't call it.
2004-06-27 03:02:21 +00:00
Alan Modra
f01132fe7f daily update 2004-06-27 00:00:05 +00:00