Commit graph

2812 commits

Author SHA1 Message Date
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
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
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
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
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
Mark Kettenis
a5fd081242 * config.bfd: Replace m88k-*-openbsd* with m88*-*-openbsd*. 2004-06-26 07:05:15 +00:00
Joel Brobecker
22bfad3734 * som.c (som_set_reloc_info): Correct small typo. 2004-06-25 18:30:54 +00:00
Nick Clifton
f9f2cf5dd6 mention remgenerated files 2004-06-25 16:21:24 +00:00
Nick Clifton
097f809a19 Add support for M32R GOT relocs 2004-06-25 16:11:09 +00:00
H.J. Lu
6610a52d39 2004-06-24 H.J. Lu <hongjiu.lu@intel.com>
* elf64-x86-64.c (elf64_x86_64_check_relocs): Warn overflow
	relocation symbol.
	(elf64_x86_64_relocate_section): Issue an error for
	R_X86_64_PC8, R_X86_64_PC16 and R_X86_64_PC32 relocations
	against global symbols when building shared library.
2004-06-24 15:07:02 +00:00
Alan Modra
eea6121ac0 bfd/
* section.c (struct sec): Rename "_cooked_size" to "size".
	Rename "_raw_size" to "rawsize".
	(STD_SECTION): Adjust comments.
	(bfd_set_section_size, bfd_get_section_contents): Use size.
	(bfd_malloc_and_get_section): New function.
	* bfd-in.h (bfd_section_size, bfd_get_section_size): Use size.
	* coff-sh.c (sh_relax_section): Alloc coff_section_data struct early.
	Correctly free reloc and contents memory.
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Delete FIXME
	and fake CIE now that we can shink section size to zero.
	(_bfd_elf_write_section_eh_frame): Likewise..
	* elf32-ppc.c (ppc_elf_relax_section): Delay reading section contents.
	* elf-m10300.c (mn10300_elf_final_link_relocate): Don't use
	_bfd_stab_section_offset.  Use _bfd_elf_section_offset.
	* stabs.c (_bfd_stab_section_offset_): Remove unused args and
	unneeded indirection.
	* elf.c (_bfd_elf_section_offset): .. and update call.
	* libbfd-in.h (_bfd_stab_section_offset): Update prototype.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.

	Replace occurrences of "_raw_size" and "_cooked_size" in most places
	with "size".  Set new "rawsize" for stabs, eh_frame, and SEC_MERGE
	sections.  Use "rawsize", if non-zero, for bfd_get_section_contents
	calls if the section might be a stabs, eh_frame, or SEC_MERGE section.
	Similarly use "rawsize", if non-zero, in reloc functions to validate
	reloc addresses.  Use new bfd_malloc_and_get_section in most places
	where bfd_get_section_contents was called.  Expand all occurrences of
	bfd_section_size and bfd_get_section_size.  Rename "raw_size" var in
	grok_prstatus and similar functions to "size".
	* aix386-core.c (aix386_core_file_p): ..
	* aix5ppc-core.c (xcoff64_core_p): ..
	* aout-adobe.c (aout_adobe_callback, aout_adobe_write_object_contents,
	aout_adobe_set_section_contents): ..
	* aout-target.h (callback): ..
	* aout-tic30.c (tic30_aout_callback, tic30_aout_final_link_relocate,
	MY_bfd_final_link): ..
	* aoutf1.h (sunos4_core_file_p): ..
	* aoutx.h (some_aout_object_p, adjust_o_magic, adjust_z_magic,
	adjust_n_magic, adjust_sizes_and_vmas, translate_from_native_sym_flags,
	final_link, aout_link_input_section): ..
	* binary.c (binary_object_p, binary_canonicalize_symtab,
	binary_set_section_contents): ..
	* bout.c (b_out_callback, b_out_write_object_contents,
	b_out_set_section_contents, b_out_bfd_relax_section,
	b_out_bfd_get_relocated_section_contents): ..
	* cisco-core.c (cisco_core_file_validate): ..
	* coff-alpha.c (alpha_ecoff_object_p,
	alpha_ecoff_get_relocated_section_conten, alpha_relocate_section): ..
	* coff-arm.c (coff_arm_relocate_section,
	bfd_arm_allocate_interworking_sections): ..
	* coff-h8300.c (h8300_reloc16_extra_cases,
	h8300_bfd_link_add_symbols): ..
	* coff-mips.c (mips_refhi_reloc, mips_gprel_reloc): ..
	* coff-ppc.c (coff_ppc_relocate_section, ppc_allocate_toc_section,
	ppc_bfd_coff_final_link): ..
	* coff-rs6000.c (xcoff_reloc_type_br, xcoff_ppc_relocate_section): ..
	* coff-sh.c (sh_relax_section, sh_relax_delete_bytes,
	sh_align_loads, sh_coff_get_relocated_section_contents): ..
	* coff64-rs6000.c (xcoff64_write_object_contents,
	xcoff64_reloc_type_br, xcoff64_ppc_relocate_section): ..
	* coffcode.h (coff_compute_section_file_positions,
	coff_write_object_contents): ..
	* coffgen.c (make_a_section_from_file, coff_write_symbols,
	coff_section_symbol, build_debug_section): ..
	* cofflink.c (coff_link_add_symbols, _bfd_coff_final_link,
	process_embedded_commands, _bfd_coff_link_input_bfd,
	_bfd_coff_write_global_sym): ..
	* cpu-arm.c (bfd_arm_update_notes, bfd_arm_get_mach_from_notes): ..
	* cpu-ns32k.c (do_ns32k_reloc, _bfd_ns32k_final_link_relocate): ..
	* dwarf1.c (parse_line_table, _bfd_dwarf1_find_nearest_line): ..
	* dwarf2.c (read_indirect_string, read_abbrevs, decode_line_info,
	_bfd_dwarf2_find_nearest_line): ..
	* ecoff.c (bfd_debug_section, ecoff_set_symbol_info,
	ecoff_compute_section_file_positions,
	_bfd_ecoff_write_object_contents, ecoff_indirect_link_order): ..
	* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame,
	_bfd_elf_discard_section_eh_frame_hdr,
	_bfd_elf_maybe_strip_eh_frame_hdr, _bfd_elf_eh_frame_section_offset,
	_bfd_elf_write_section_eh_frame,
	_bfd_elf_write_section_eh_frame_hdr): ..
	* elf-hppa.h (elf_hppa_sort_unwind): ..
	* elf-m10200.c (mn10200_elf_relax_section,
	mn10200_elf_relax_delete_bytes,
	mn10200_elf_get_relocated_section_contents): ..
	* elf-m10300.c (_bfd_mn10300_elf_create_got_section,
	mn10300_elf_check_relocs, mn10300_elf_relax_section,
	mn10300_elf_relax_delete_bytes,
	mn10300_elf_get_relocated_section_contents,
	_bfd_mn10300_elf_adjust_dynamic_symbol,
	_bfd_mn10300_elf_discard_copies,
	_bfd_mn10300_elf_size_dynamic_sections,
	_bfd_mn10300_elf_finish_dynamic_sections): ..
	* elf.c (_bfd_elf_print_private_bfd_data, bfd_elf_get_bfd_needed_list,
	_bfd_elf_make_section_from_phdr, elf_fake_sections,
	bfd_elf_set_group_contents, map_sections_to_segments,
	elf_sort_sections, assign_file_positions_for_segments,
	SECTION_SIZE, copy_private_bfd_data,
	_bfd_elf_get_dynamic_reloc_upper_bound,
	_bfd_elf_canonicalize_dynamic_reloc, elfcore_maybe_make_sect,
	_bfd_elfcore_make_pseudosection, elfcore_grok_prstatus,
	elfcore_grok_lwpstatus, elfcore_grok_win32pstatus,
	elfcore_grok_note, elfcore_grok_nto_status, elfcore_grok_nto_gregs,
	_bfd_elf_rel_local_sym, _bfd_elf_get_synthetic_symtab): ..
	* elf32-arm.h (bfd_elf32_arm_allocate_interworking_sect,
	bfd_elf32_arm_process_before_allocation,
	elf32_arm_adjust_dynamic_symbol, allocate_dynrelocs,
	elf32_arm_size_dynamic_sections, elf32_arm_finish_dynamic_sections,
	elf32_arm_write_section): ..
	* elf32-cris.c (cris_elf_grok_prstatus,
	elf_cris_finish_dynamic_sections, cris_elf_gc_sweep_hook,
	elf_cris_adjust_gotplt_to_got, elf_cris_adjust_dynamic_symbol,
	cris_elf_check_relocs, elf_cris_size_dynamic_sections,
	elf_cris_discard_excess_dso_dynamics,
	elf_cris_discard_excess_program_dynamics): ..
	* elf32-d30v.c (bfd_elf_d30v_reloc, bfd_elf_d30v_reloc_21): ..
	* elf32-dlx.c (_bfd_dlx_elf_hi16_reloc): ..
	* elf32-frv.c (_frvfdpic_add_dyn_reloc, _frvfdpic_add_rofixup,
	_frv_create_got_section, _frvfdpic_assign_plt_entries,
	elf32_frvfdpic_size_dynamic_sections,
	elf32_frvfdpic_modify_segment_map,
	elf32_frvfdpic_finish_dynamic_sections): ..
	* elf32-h8300.c (elf32_h8_relax_section, elf32_h8_relax_delete_bytes,
	elf32_h8_get_relocated_section_contents): ..
	* elf32-hppa.c (hppa_build_one_stub, hppa_size_one_stub,
	elf32_hppa_adjust_dynamic_symbol, allocate_plt_static,
	allocate_dynrelocs, elf32_hppa_size_dynamic_sections, group_sections,
	elf32_hppa_size_stubs, elf32_hppa_set_gp, elf32_hppa_build_stubs,
	elf32_hppa_finish_dynamic_sections): ..
	* elf32-i370.c (i370_elf_adjust_dynamic_symbol,
	i370_elf_size_dynamic_sections, i370_elf_check_relocs,
	i370_elf_finish_dynamic_sections): ..
	* elf32-i386.c (elf_i386_grok_prstatus, elf_i386_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_i386_size_dynamic_sections,
	elf_i386_relocate_section, elf_i386_finish_dynamic_sections): ..
	* elf32-i860.c (i860_howto_pc26_reloc, i860_howto_pc16_reloc,
	i860_howto_highadj_reloc, i860_howto_splitn_reloc): ..
	* elf32-ip2k.c (ip2k_is_switch_table_128,
	ip2k_relax_switch_table_128, ip2k_is_switch_table_256,
	ip2k_relax_switch_table_256, ip2k_elf_relax_section,
	adjust_all_relocations, ip2k_elf_relax_delete_bytes): ..
	* elf32-m32r.c (m32r_elf_do_10_pcrel_reloc, m32r_elf_hi16_reloc,
	m32r_elf_generic_reloc, m32r_elf_adjust_dynamic_symbol,
	allocate_dynrelocs, m32r_elf_size_dynamic_sections,
	m32r_elf_relocate_section, m32r_elf_finish_dynamic_sections,
	m32r_elf_relax_section, m32r_elf_relax_delete_bytes,
	m32r_elf_get_relocated_section_contents): ..
	* elf32-m68hc11.c (m68hc11_elf_build_one_stub,
	m68hc11_elf_size_one_stub, m68hc11_elf_relax_section,
	m68hc11_elf_relax_delete_bytes): ..
	* elf32-m68hc12.c (m68hc12_elf_build_one_stub,
	m68hc12_elf_size_one_stub): ..
	* elf32-m68hc1x.c (elf32_m68hc11_size_stubs,
	elf32_m68hc11_build_stubs, m68hc11_elf_special_reloc): ..
	* elf32-m68k.c (elf_m68k_check_relocs, elf_m68k_gc_sweep_hook,
	elf_m68k_adjust_dynamic_symbol, elf_m68k_size_dynamic_sections,
	elf_m68k_discard_copies, elf_m68k_finish_dynamic_sections): ..
	* elf32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
	elf32_mips_grok_prstatus): ..
	* elf32-or32.c (or32_elf_consth_reloc): ..
	* elf32-ppc.c (ppc_elf_relax_section, ppc_elf_addr16_ha_reloc,
	elf_create_pointer_linker_section, ppc_elf_create_linker_section,
	ppc_elf_additional_program_headers, ppc_elf_adjust_dynamic_symbol,
	allocate_dynrelocs, ppc_elf_size_dynamic_sections,
	ppc_elf_finish_dynamic_sections, ppc_elf_grok_prstatus,
	ppc_elf_final_write_processing): ..
	* elf32-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_s390_size_dynamic_sections,
	elf_s390_finish_dynamic_sections, elf_s390_grok_prstatus): ..
	* elf32-sh.c (sh_elf_reloc_loop, sh_elf_relax_section,
	sh_elf_relax_delete_bytes, sh_elf_align_loads,
	sh_elf_adjust_dynamic_symbol, allocate_dynrelocs,
	sh_elf_size_dynamic_sections, sh_elf_get_relocated_section_contents,
	sh_elf_finish_dynamic_sections, elf32_shlin_grok_prstatus): ..
	* elf32-sh64-com.c (sh64_address_in_cranges,
	sh64_get_contents_type): ..
	* elf32-sh64.c (sh64_find_section_for_address,
	sh64_elf_final_write_processing): ..
	* elf32-sparc.c (sparc_elf_wdisp16_reloc, sparc_elf_hix22_reloc,
	sparc_elf_lox10_reloc, elf32_sparc_adjust_dynamic_symbol,
	allocate_dynrelocs, elf32_sparc_size_dynamic_sections,
	elf32_sparc_relocate_section, elf32_sparc_finish_dynamic_sections): ..
	* elf32-v850.c (v850_elf_reloc, v850_elf_relax_section): ..
	* elf32-vax.c (elf_vax_check_relocs, elf_vax_adjust_dynamic_symbol,
	elf_vax_size_dynamic_sections, elf_vax_discard_copies,
	elf_vax_instantiate_got_entries, elf_vax_relocate_section,
	elf_vax_finish_dynamic_sections): ..
	* elf32-xstormy16.c (xstormy16_elf_24_reloc,
	xstormy16_elf_check_relocs, xstormy16_relax_plt_check,
	xstormy16_elf_relax_section, xstormy16_elf_always_size_sections,
	xstormy16_elf_finish_dynamic_sections): ..
	* elf32-xtensa.c (xtensa_read_table_entries,
	elf_xtensa_allocate_got_size, elf_xtensa_allocate_local_got_size,
	elf_xtensa_size_dynamic_sections, elf_xtensa_do_reloc,
	bfd_elf_xtensa_reloc, elf_xtensa_relocate_section,
	elf_xtensa_combine_prop_entries, elf_xtensa_finish_dynamic_sections,
	elf_xtensa_discard_info_for_section, elf_xtensa_grok_prstatus,
	get_relocation_opcode, retrieve_contents, find_relaxable_sections,
	collect_source_relocs, is_resolvable_asm_expansion, remove_literals,
	relax_section, shrink_dynamic_reloc_sections, relax_property_section,
	xtensa_callback_required_dependence): ..
	* elf64-alpha.c (elf64_alpha_reloc_gpdisp, elf64_alpha_relax_section,
	elf64_alpha_check_relocs, elf64_alpha_adjust_dynamic_symbol,
	elf64_alpha_calc_got_offsets_for_symbol, elf64_alpha_calc_got_offsets,
	elf64_alpha_size_plt_section, elf64_alpha_size_plt_section_1,
	elf64_alpha_always_size_sections, elf64_alpha_calc_dynrel_sizes,
	elf64_alpha_size_rela_got_section, elf64_alpha_size_rela_got_1,
	elf64_alpha_size_dynamic_sections, elf64_alpha_emit_dynrel,
	elf64_alpha_finish_dynamic_sections, elf64_alpha_final_link): ..
	* elf64-hppa.c (allocate_dynrel_entries,
	elf64_hppa_size_dynamic_sections,
	elf64_hppa_finish_dynamic_sections): ..
	* elf64-mips.c (mips_elf64_gprel32_reloc, mips16_gprel_reloc,
	mips_elf64_canonicalize_dynamic_reloc, mips_elf64_slurp_reloc_table,
	elf64_mips_grok_prstatus): ..
	* elf64-mmix.c (mmix_elf_perform_relocation, mmix_elf_reloc,
	mmix_elf_relocate_section, mmix_elf_final_link,
	mmix_set_relaxable_size, _bfd_mmix_after_linker_allocation,
	mmix_elf_relax_section, mmix_elf_get_section_contents): ..
	* elf64-ppc.c (ppc64_elf_object_p, ppc64_elf_grok_prstatus,
	ppc64_elf_check_relocs, ppc64_elf_func_desc_adjust,
	ppc64_elf_adjust_dynamic_symbol, ppc64_elf_edit_opd,
	allocate_dynrelocs, ppc64_elf_size_dynamic_sections,
	ppc_build_one_stub, ppc_size_one_stub, ppc64_elf_next_toc_section,
	toc_adjusting_stub_needed, group_sections, ppc64_elf_size_stubs,
	ppc64_elf_build_stubs, ppc64_elf_relocate_section,
	ppc64_elf_finish_dynamic_sections): ..
	* elf64-s390.c (s390_elf_ldisp_reloc, elf_s390_adjust_dynamic_symbol,
	allocate_dynrelocs, elf_s390_size_dynamic_sections,
	elf_s390_finish_dynamic_sections): ..
	* elf64-sh64.c (sh_elf64_get_relocated_section_contents,
	sh_elf64_check_relocs, sh64_elf64_adjust_dynamic_symbol,
	sh64_elf64_discard_copies, sh64_elf64_size_dynamic_sections,
	sh64_elf64_finish_dynamic_sections): ..
	* elf64-sparc.c (sparc64_elf_slurp_reloc_table, init_insn_reloc,
	sparc64_elf_check_relocs, sparc64_elf_adjust_dynamic_symbol,
	sparc64_elf_size_dynamic_sections, sparc64_elf_relocate_section,
	sparc64_elf_finish_dynamic_symbol,
	sparc64_elf_finish_dynamic_sections): ..
	* elf64-x86-64.c (elf64_x86_64_grok_prstatus,
	elf64_x86_64_adjust_dynamic_symbol, allocate_dynrelocs,
	elf64_x86_64_size_dynamic_sections, elf64_x86_64_relocate_section,
	elf64_x86_64_finish_dynamic_sections): ..
	* elfarm-nabi.c (elf32_arm_nabi_grok_prstatus): ..
	* elfcode.h (elf_slurp_reloc_table): ..
	* elflink.c (_bfd_elf_create_got_section, elf_add_dt_needed_tag,
	elf_finalize_dynstr, elf_link_add_object_symbols,
	bfd_elf_size_dynamic_sections, elf_link_sort_relocs,
	elf_link_input_bfd, bfd_elf_final_link, bfd_elf_discard_info): ..
	* elfn32-mips.c (gprel32_with_gp, mips16_gprel_reloc,
	elf32_mips_grok_prstatus): ..
	* elfxx-ia64.c (elfNN_ia64_relax_section, allocate_dynrel_entries,
	elfNN_ia64_size_dynamic_sections, elfNN_ia64_install_dyn_reloc,
	elfNN_ia64_choose_gp, elfNN_ia64_final_link,
	elfNN_ia64_finish_dynamic_sections): ..
	* elfxx-mips.c (mips_elf_create_procedure_table,
	mips_elf_check_mips16_stubs, _bfd_mips_elf_gprel16_with_gp,
	_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_generic_reloc,
	mips_elf_global_got_index, mips_elf_multi_got,
	mips_elf_create_compact_rel_section, mips_elf_calculate_relocation,
	mips_elf_allocate_dynamic_relocations,
	mips_elf_create_dynamic_relocation, _bfd_mips_elf_fake_sections,
	_bfd_mips_relax_section, _bfd_mips_elf_adjust_dynamic_symbol,
	_bfd_mips_elf_always_size_sections,
	_bfd_mips_elf_size_dynamic_sections,
	_bfd_mips_elf_finish_dynamic_symbol,
	_bfd_mips_elf_finish_dynamic_sections,
	_bfd_mips_elf_modify_segment_map, _bfd_mips_elf_discard_info,
	_bfd_mips_elf_write_section, _bfd_mips_elf_set_section_contents,
	_bfd_elf_mips_get_relocated_section_contents,
	_bfd_mips_elf_final_link, _bfd_mips_elf_merge_private_bfd_data): ..
	* hp300hpux.c (callback): ..
	* hppabsd-core.c (make_bfd_asection): ..
	* hpux-core.c (make_bfd_asection): ..
	* i386linux.c (linux_link_create_dynamic_sections,
	bfd_i386linux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* i386msdos.c (msdos_write_object_contents): ..
	* i386os9k.c (os9k_callback, os9k_write_object_contents,
	os9k_set_section_contents): ..
	* ieee.c (parse_expression, ieee_slurp_external_symbols,
	ieee_slurp_sections, ieee_slurp_debug, ieee_slurp_section_data,
	ieee_write_section_part, do_with_relocs, do_as_repeat,
	do_without_relocs, ieee_write_debug_part, init_for_output,
	ieee_set_section_contents): ..
	* ihex.c (ihex_scan, ihex_read_section, ihex_get_section_contents): ..
	* irix-core.c (do_sections, make_bfd_asection): ..
	* libaout.h (aout_section_merge_with_text_p): ..
	* libbfd.c (_bfd_generic_get_section_contents,
	_bfd_generic_get_section_contents_in_window): ..
	* linker.c (default_indirect_link_order): ..
	* lynx-core.c (make_bfd_asection): ..
	* m68klinux.c (linux_link_create_dynamic_sections,
	bfd_m68klinux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* mach-o.c (bfd_mach_o_make_bfd_section,
	bfd_mach_o_scan_read_dylinker, bfd_mach_o_scan_read_dylib,
	bfd_mach_o_scan_read_thread, bfd_mach_o_scan_read_symtab,
	bfd_mach_o_scan_read_segment): ..
	* merge.c (_bfd_add_merge_section, record_section, merge_strings,
	_bfd_merge_sections): ..
	* mmo.c (mmo_find_sec_w_addr, mmo_get_spec_section, mmo_get_loc,
	mmo_map_set_sizes, mmo_canonicalize_symtab,
	mmo_internal_write_section, mmo_write_object_contents): ..
	* netbsd-core.c (netbsd_core_file_p): ..
	* nlm32-alpha.c (nlm_alpha_read_reloc, nlm_alpha_write_import,
	nlm_alpha_set_public_section): ..
	* nlm32-ppc.c (nlm_powerpc_read_reloc, nlm_powerpc_write_reloc): ..
	* nlm32-sparc.c (nlm_sparc_write_import): ..
	* nlmcode.h (add_bfd_section, nlm_swap_auxiliary_headers_in,
	nlm_compute_section_file_positions): ..
	* oasys.c (oasys_object_p, oasys_slurp_section_data,
	oasys_write_sections, oasys_write_data, oasys_set_section_contents): ..
	* opncls.c (get_debug_link_info): ..
	* osf-core.c (make_bfd_asection): ..
	* pdp11.c (some_aout_object_p, adjust_o_magic, adjust_z_magic,
	adjust_n_magic, adjust_sizes_and_vmas, squirt_out_relocs,
	final_link, aout_link_input_section): ..
	* peXXigen.c (_bfd_XXi_swap_sym_in, _bfd_XXi_swap_aouthdr_out,
	pe_print_idata, pe_print_edata, pe_print_pdata, pe_print_reloc): ..
	* pef.c (bfd_pef_make_bfd_section, bfd_pef_print_loader_section,
	bfd_pef_scan_start_address, bfd_pef_parse_symbols): ..
	* ppcboot.c (ppcboot_object_p, ppcboot_canonicalize_symtab): ..
	* ptrace-core.c (ptrace_unix_core_file_p): ..
	* reloc.c (bfd_perform_relocation, bfd_install_relocation,
	_bfd_final_link_relocate, bfd_generic_relax_section,
	bfd_generic_get_relocated_section_contents): ..
	* reloc16.c (bfd_coff_reloc16_relax_section,
	bfd_coff_reloc16_get_relocated_section_c): ..
	* riscix.c (riscix_some_aout_object_p): ..
	* rs6000-core.c (read_hdr, make_bfd_asection): ..
	* sco5-core.c (make_bfd_asection): ..
	* simple.c (bfd_simple_get_relocated_section_contents): ..
	* som.c (som_object_setup, setup_sections, som_prep_headers,
	som_write_fixups, som_begin_writing, bfd_section_from_som_symbol,
	som_set_reloc_info, som_get_section_contents,
	som_bfd_link_split_section): ..
	* sparclinux.c (linux_link_create_dynamic_sections,
	bfd_sparclinux_size_dynamic_sections, linux_finish_dynamic_link): ..
	* srec.c (srec_scan, srec_read_section, srec_get_section_contents): ..
	* stabs.c (_bfd_link_section_stabs, _bfd_discard_section_stabs,
	_bfd_write_stab_strings, _bfd_stab_section_offset): ..
	* sunos.c (sunos_read_dynamic_info, sunos_create_dynamic_sections,
	bfd_sunos_size_dynamic_sections, sunos_scan_std_relocs,
	sunos_scan_ext_relocs, sunos_scan_dynamic_symbol,
	sunos_write_dynamic_symbol, sunos_check_dynamic_reloc,
	sunos_finish_dynamic_link): ..
	* syms.c (_bfd_stab_section_find_nearest_line): ..
	* tekhex.c (first_phase, tekhex_set_section_contents,
	tekhex_write_object_contents): ..
	* trad-core.c (trad_unix_core_file_p): ..
	* versados.c (process_esd, process_otr, process_otr): ..
	* vms-gsd.c (_bfd_vms_slurp_gsd, _bfd_vms_write_gsd): ..
	* vms-misc.c (add_new_contents): ..
	* vms-tir.c (check_section, new_section, _bfd_vms_write_tir): ..
	* vms.c (vms_set_section_contents): ..
	* xcofflink.c (xcoff_get_section_contents, xcoff_link_add_symbols,
	xcoff_sweep, bfd_xcoff_size_dynamic_sections, xcoff_build_ldsyms,
	_bfd_xcoff_bfd_final_link, xcoff_link_input_bfd): ..
	* xsym.c (bfd_sym_scan): .. See above.

binutils/
	* objcopy.c (copy_section): Don't set _cooked_size.

include/
	* bfdlink.h (struct bfd_link_order): Update comment.

ld/
	* ldlang.c (print_output_section_statement): Don't print size before
	relaxation.
	(IGNORE_SECTION): Remove bfd arg.  Update all callers.

	* ldexp.c (fold_name): .. See below.
	* ldlang.c (section_already_linked, print_output_section_statement,
	print_input_section, insert_pad, size_input_section,
	lang_check_section_addresses, lang_size_sections_1,
	lang_size_sections, lang_do_assignments_1, lang_set_startof,
	lang_one_common, lang_reset_memory_regions, lang_process,
	lang_abs_symbol_at_end_of, lang_do_version_exports_section): ..
	* ldwrite.c (build_link_order, clone_section, ds, split_sections): ..
	* pe-dll.c (process_def_file, generate_reloc): ..
	* emultempl/elf32.em (gld${EMULATION_NAME}_find_statement_assignment,
	gld${EMULATION_NAME}_before_allocation): ..
	* emultempl/mmix-elfnmmo.em (mmix_after_allocation): ..
	* emultempl/sh64elf.em (sh64_elf_${EMULATION_NAME}_before_allocation,
	sh64_elf_${EMULATION_NAME}_after_allocation): ..
	* emultempl/sunos.em (gld${EMULATION_NAME}_before_allocation): ..
	* emultempl/xtensaelf.em (ld_assign_relative_paged_dot,
	ld_local_file_relocations_fit, ld_xtensa_insert_page_offsets): Use
	"size" instead of "_raw_size" and "_cooked_size".  Expand
	bfd_section_size macro invocations.
2004-06-24 04:46:28 +00:00
H.J. Lu
bf8b15af14 2004-06-21 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_section): Add addend when
	calling _bfd_merged_section_offset only for section symbols.
2004-06-22 06:03:07 +00:00
Alan Modra
d1c6de6f15 * elf32-ppc.c (ppc_elf_relax_section): Implement reference code
for handling SEC_MERGE symbols in relax_section.
	* coff-i386.c: Update copyright date.
2004-06-22 05:35:37 +00:00
Alexandre Oliva
aa02cc6302 2003-05-15 Richard Sandiford <rsandifo@redhat.com>
* cpu-h8300.c (compatible): Allow h8300s and h8300sx code to be
linked together. Mark the result as h8300sx code.
2004-06-21 14:50:32 +00:00
Alexandre Oliva
aee6f5b4bd bfd/ChangeLog:
* elf-bfd.h (struct elf_backend_data): Added
elf_backend_omit_section_dynsym.
(_bfd_elf_link_omit_section_dynsym): Declare.
* elf32-frv.c (_frvfdpic_link_omit_section_dynsym): New.
(elf_backend_omit_section_dynsym): Use it for frvfdpic.
* elflink.c (_bfd_elf_link_omit_section_dynsym): Split out of...
(_bfd_elf_link_renumber_dynsyms): ... this function.
* elfxx-target.h (elf_backend_omit_section_dynsym): Default to
_bfd_elf_link_omit_section_dynsym).
(elfNN_bed): Added elf_backend_omit_section_dynsym.
ld/ChangeLog:
* emulparams/elf32frvfd.sh (GENERATE_PIE_SCRIPT): Set to yes.
ld/testsuite/ChangeLog:
* ld-frv/fdpic-pie-1.d: Adjust for pie-specific link script.
* ld-frv/fdpic-pie-2.d: Likewise.
* ld-frv/fdpic-pie-6.d: Likewise.
* ld-frv/fdpic-pie-7.d: Likewise.
* ld-frv/fdpic-pie-8.d: Likewise.
* ld-frv/fdpic-shared-1.d: Likewise.
* ld-frv/fdpic-shared-2.d: Likewise.
* ld-frv/fdpic-shared-3.d: Likewise.
* ld-frv/fdpic-shared-4.d: Likewise.
* ld-frv/fdpic-shared-5.d: Likewise.
* ld-frv/fdpic-shared-6.d: Likewise.
* ld-frv/fdpic-shared-7.d: Likewise.
* ld-frv/fdpic-shared-8.d: Likewise.
* ld-frv/fdpic-shared-local-2.d: Likewise.
* ld-frv/fdpic-shared-local-8.d: Likewise.
2004-06-21 14:45:42 +00:00
Nick Clifton
05576f107c * coffcode.h (styp_to_sec_flags): Ignore IMAGE_SCN_MEM_NOT_PAGED flags. 2004-06-21 14:40:41 +00:00
Jerome Guitton
02d5a37b2d * bfd-in.h (bfd_cache_close_all): New function declaration.
* bfd-in2.h: Regenerate.
	* cache.c (bfd_cache_close_all): New function definition.
2004-06-17 11:47:51 +00:00
Mark Kettenis
d2bef49288 * configure.in: Don't set COREFILE to trad-core.lo for FreeBSD
4.10 and beyond.
* configure: Regenerate.
2004-06-17 09:38:38 +00:00
Daniel Jacobowitz
8528d62e32 * elf32-ppc.c (ppc_elf_create_linker_section): Create symbols in
the pre-existing section.
2004-06-17 02:27:12 +00:00
Alan Modra
911d08a746 * section.c (struct sec): Remove usused flags. Reorganize a little.
(bfd_get_section_size_before_reloc): Delete.
	(bfd_get_section_size_after_reloc): Delete.
	(STD_SECTION): Update.
	(bfd_get_section_size_now): Delete.
	(bfd_set_section_contents): Don't referece reloc_done.
	(bfd_get_section_contents): Remove reloc_done comment.
	* bout.c (b_out_bfd_get_relocated_section_contents): Don't set
	reloc_done.
	* coff-alpha.c (alpha_ecoff_get_relocated_section_contents): Likewise.
	* ecoff.c (bfd_debug_section): Update initializer.
	* elfxx-mips.c (_bfd_elf_mips_get_relocated_section_contents): Ditto.
	* reloc.c (bfd_generic_get_relocated_section_contents): Likewise.
	* bfd-in.h (bfd_section_size): Expand.
	(bfd_get_section_size): New macro.
	* bfd-in2.h: Regenerate.
	* coff64-rs6000.c (xcoff64_write_object_contents): Replace
	bfd_get_section_size_before_reloc with bfd_get_section_size.
	* coffcode.h (coff_write_object_contents): Likewise.
	* coffgen.c (build_debug_section): Likewise.
	* dwarf1.c (parse_line_table): Likewise.
	(_bfd_dwarf1_find_nearest_line): Likewise.
	* ecoff.c (_bfd_ecoff_write_object_contents): Likewise.
	* i386msdos.c (msdos_write_object_contents): Likewise.
	* pdp11.c (squirt_out_relocs): Likewise.
	* elf32-sh64.c (sh64_find_section_for_address): Remove comment.
	* elf64-mmix.c (mmix_elf_final_link): Update comment.
2004-06-15 01:24:22 +00:00
Chris Demetriou
092dcd755d [ bfd/ChangeLog ]
2004-06-14  Chris Demetriou  <cgd@broadcom.com>

        * elf32-mips.c (elf_mips_gnu_pcrel32): Add (undoing 2004-04-24
        removal) with updated comment.
        (bfd_elf32_bfd_reloc_type_lookup): Add back case for
        BFD_RELOC_32_PCREL.
        (mips_elf32_rtype_to_howto): Add back case for R_MIPS_PC32.
        * elfxx-mips.c (mips_elf_calculate_relocation): Likewise.

[ include/elf/ChangeLog ]
2004-06-14  Chris Demetriou  <cgd@broadcom.com>

        * mips.h (R_MIPS_PC32): Add back (undoing removal on 2004-04-24),
        with an updated comment.
2004-06-14 18:25:10 +00:00
Alan Modra
3ffa5234cb * elf64-x86-64.c (elf64_x86_64_relocate_section): Ignore reloc
overflow on branches to undefweaks.
2004-06-12 11:30:10 +00:00
Maciej W. Rozycki
e9edc8084b * coff-alpha.c (alpha_relocate_section): Set used_by_bfd directly
as ecoff_section_data() does not return a valid lvalue.
2004-06-11 14:19:32 +00:00
Alexandre Oliva
a9b881beb1 * elflink.c (elf_sort_symbol): Compare section id, not pointers.
(elf_link_add_object_symbols): Likewise.
2004-06-09 13:49:04 +00:00
Alexandre Oliva
a873f25a22 * elf-m10300.c (_bfd_mn10300_elf_reloc_type_class): New.
(elf_backend_reloc_type_class): New.
2004-06-09 08:31:28 +00:00
Mark Kettenis
eef0f186e0 * configure.in (hppa*-*-netbsd*, hppa*-*-openbsd): Set COREFILE to
netbsd-core.lo.
* configure: Regenerate.
2004-06-08 07:39:37 +00:00
Daniel Jacobowitz
822392cef5 From: Albert Chin-A-Young <china@thewrittenword.com>
* bfd/elf-bfd.h (struct eh_cie_fde): Convert unsigned char bitfields
	to unsigned int.
2004-06-07 15:29:53 +00:00
H.J. Lu
9f2e92c5ac 2004-05-29 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_section): Undo the last
	change.
2004-05-29 19:25:54 +00:00
DJ Delorie
dd90f1b254 * elf-m10300.c (mn10300_elf_relax_section): Preserve reloc addend
for linking, but otherwise adjust reloc for merged sections.
2004-05-28 21:33:35 +00:00
H.J. Lu
5dd23ec18b 2004-05-28 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_section): Properly call
	_bfd_merged_section_offset for local symbols.
2004-05-28 20:30:29 +00:00
Joern Rennecke
f6f9408fbf 2004-05-28 Andrew Stubbs <andrew.stubbs@superh.com>
bfd:
	* Makefile.am: Regenerate dependencies.
	* Makefile.in: Regenerate.
	* archures.c: Add bfd_mach_sh3_nommu .
	* bfd-in2.h: Regenerate.
	* cpu-sh.c: Add sh3-nommu architecture.
	(bfd_to_arch_table): Create new table.
	(sh_get_arch_from_bfd_mach): Create new function.
	(sh_get_arch_up_from_bfd_mach): Create new function.
	(sh_merge_bfd_arch): Create new function.
	* elf32-sh.c (sh_ef_bfd_table): Add table.
	(sh_elf_check_relocs): Replace switch statement with
	use of sh_ef_bfd_table .
	(sh_elf_get_flags_from_mach): Add new function.
	(sh_find_elf_flags): Likewise.
	(sh_elf_copy_private_data): Replace most of non-elf contents
	with a call to sh_merge_bfd_arch() .

gas:
	* Makefile.am: Regenerate dependecies.
	* Makefile.in: Regenerate.
	* config/tc-sh.c (valid_arch): Make unsigned.
	(preset_target_arch): Likewise.
	(md_begin): Use new architecture flags system.
	(get_specific): Likewise.
	(assemble_ppi): Likewise.
	(md_assemble): Likewise. Also fix error check for bad opcodes.
	(md_parse_option): Likewise. Also generate -isa values according
	to the table in bfd/cpu-sh.c instead of just constants. Also
	allow <arch>-up ISA variants.
	(sh_elf_final_processing): Replace if-else chain with a call to
	sh_find_elf_flags().
	* testsuite/gas/sh/arch: New directory.
	* testsuite/gas/sh/arch/arch.exp: New test script.
	* testsuite/gas/sh/arch/arch_expected.txt: New file.
	* testsuite/gas/sh/arch/sh.s: New file.
	* testsuite/gas/sh/arch/sh2.s: New file.
	* testsuite/gas/sh/arch/sh-dsp.s: New file.
	* testsuite/gas/sh/arch/sh2e.s: New file.
	* testsuite/gas/sh/arch/sh3-nommu.s: New file.
	* testsuite/gas/sh/arch/sh3.s: New file.
	* testsuite/gas/sh/arch/sh3-dsp.s: New file.
	* testsuite/gas/sh/arch/sh3e.s: New file.
	* testsuite/gas/sh/arch/sh4-nommu-nofpu.s: New file.
	* testsuite/gas/sh/arch/sh4-nofpu.s: New file.
	* testsuite/gas/sh/arch/sh4.s: New file.
	* testsuite/gas/sh/arch/sh4a-nofpu.s: New file.
	* testsuite/gas/sh/arch/sh4al-dsp.s: New file.
	* testsuite/gas/sh/arch/sh4a.s: New file.

include/elf:
	* sh.h (EF_SH_HAS_DSP): Remove.
	(EF_SH_HAS_FP): Remove.
	(EF_SH_MERGE_MACH): Remove.
	(EF_SH4_NOFPU): Convert to decimal.
	(EF_SH4A_NOFPU): Likewise.
	(EF_SH4_NOMMU_NOFPU): Likewise.
	(EF_SH3_NOMMU): Add new macro.
	(EF_SH_BFD_TABLE): Likewise.
	(sh_find_elf_flags): Add prototype.
	(sh_elf_get_flags_from_mach): Likewise.

opcodes:
	* sh-dis.c (target_arch): Make unsigned.
	(print_insn_sh): Replace (most of) switch with a call to
	sh_get_arch_from_bfd_mach(). Also use new architecture flags system.
	* sh-opc.h: Redefine architecture flags values.
	Add sh3-nommu architecture.
	Reorganise <arch>_up macros so they make more visual sense.
	(SH_MERGE_ARCH_SET): Define new macro.
	(SH_VALID_BASE_ARCH_SET): Likewise.
	(SH_VALID_MMU_ARCH_SET): Likewise.
	(SH_VALID_CO_ARCH_SET): Likewise.
	(SH_VALID_ARCH_SET): Likewise.
	(SH_MERGE_ARCH_SET_VALID): Likewise.
	(SH_ARCH_SET_HAS_FPU): Likewise.
	(SH_ARCH_SET_HAS_DSP): Likewise.
	(SH_ARCH_UNKNOWN_ARCH): Likewise.
	(sh_get_arch_from_bfd_mach): Add prototype.
	(sh_get_arch_up_from_bfd_mach): Likewise.
	(sh_get_bfd_mach_from_arch_set): Likewise.
	(sh_merge_bfd_arc): Likewise.

ld:
	* testsuite/ld-sh/arch/arch.exp: New test script.
	* testsuite/ld-sh/arch/arch_expected.txt: New file.
	* testsuite/ld-sh/arch/sh.s: New file.
	* testsuite/ld-sh/arch/sh2.s: New file.
	* testsuite/ld-sh/arch/sh-dsp.s: New file.
	* testsuite/ld-sh/arch/sh2e.s: New file.
	* testsuite/ld-sh/arch/sh3-nommu.s: New file.
	* testsuite/ld-sh/arch/sh3.s: New file.
	* testsuite/ld-sh/arch/sh3-dsp.s: New file.
	* testsuite/ld-sh/arch/sh3e.s: New file.
	* testsuite/ld-sh/arch/sh4-nommu-nofpu.s: New file.
	* testsuite/ld-sh/arch/sh4-nofpu.s: New file.
	* testsuite/ld-sh/arch/sh4.s: New file.
	* testsuite/ld-sh/arch/sh4a-nofpu.s: New file.
	* testsuite/ld-sh/arch/sh4al-dsp.s: New file.
	* testsuite/ld-sh/arch/sh4a.s: New file.
2004-05-28 12:32:10 +00:00
Michael Chastain
d866f350ab 2004-05-27 Michael Chastain <mec.gnu@mindspring.com>
* Makefile.am (bfdver.h): Use explicit filename, not $< .
	* Makefile.in: Regenerate.
2004-05-27 21:22:49 +00:00
Alexandre Oliva
1055df0f95 * elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Avoid
custom calling conventions for dynamic symbols.
(mn10300_elf_relax_section): Avoid relaxing a function as a local
symbol if it's an alias to a global one.
2004-05-27 06:22:54 +00:00
H.J. Lu
b309625038 bfd/
2004-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_make_section_from_shdr): Undo the last
	change.

ld/

2004-05-26  H.J. Lu  <hongjiu.lu@intel.com>

	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Clear
	SEC_EXCLUDE on non-SEC_DEBUGGING sections for relocatable link.
	* ldlang.c (lang_add_section): Likewise.
2004-05-27 05:53:36 +00:00
Alexandre Oliva
9bb351fd9c * elf-m10300.c (mn10300_elf_relax_section): Don't test isym within
loop over hashes.
2004-05-27 04:07:41 +00:00
Alan Modra
e49f502242 bfd/
* elf.c (_bfd_elf_make_section_from_shdr): Don't set SEC_EXCLUDE
	for SHT_GROUP sections.
ld/
	* ldlang.c (lang_add_section): Set SEC_EXCLUDE for SEC_GROUP
	sections when doing a final link.  Clear SEC_EXCLUDE when doing
	a relocable link, except for SEC_DEBUGGING sections.
	* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Use the
	same condition here to drop SEC_EXCLUDE orphan sections.
2004-05-26 10:23:51 +00:00
Alan Modra
57ceae9483 bfd/
* elflink.c (elf_link_add_object_symbols): Don't set up merge
	section data here..
	* elf.c (_bfd_elf_merge_sections): .. Do it here instead.
	* merge.c: Formatting.  Remove unnecessary casts.  Expand
	bfd_get_section_alignment macro.
	(struct sec_merge_sec_info): Rename "first" to "first_str".  Update
	use throughout file.
	(_bfd_add_merge_section): Rename from _bfd_merge_section.  Update
	comment.  Abort on dynamic or non-SEC_MERGE input.  Don't test
	section name to determine sinfo group, instead test output section
	and alignment.
	(_bfd_merge_sections): Add struct bfd_link_info param.  Call
	_bfd_strip_section_from_output rather than just twiddling flags.
	* libbfd-in.h (_bfd_add_merge_section): Rename, update comment.
	(_bfd_merge_sections): Update prototype.
	* libbfd.h: Regenerate.
ld/
	* ldlang.c (lang_process): Call bfd_merge_sections later, and
	only when not a relocatable link.
	(print_input_section): Handle SEC_EXCLUDE sections.
	(size_input_section): Don't update dot on SEC_EXCLUDE sections.
	(lang_do_assignments_1): Likewise.
	* ldwrite.c (build_link_order): Ignore SEC_EXCLUDE input sections.
	* emultempl/armelf.em (arm_elf_set_bfd_for_interworking): Likewise.
	* emultempl/hppaelf.em (build_section_lists): Likewise.
	* emultempl/ppc64elf.em (build_toc_list): Likewise.
	(build_section_lists): Likewise.
2004-05-25 06:33:51 +00:00
Mark Kettenis
d34436e841 * netbsd-core.c: Correctly indent section that sets architecture
from machine ID.
2004-05-24 21:52:38 +00:00
Nick Clifton
c6f8758fa0 Add support for an m88k-openbsd target 2004-05-24 14:48:18 +00:00
Nick Clifton
7d7e6bc475 Remove bogus inode 2004-05-24 07:49:10 +00:00
Ben Elliston
bc286f95ec * configure.in (is_release): Remove.
(bfd_version_date, bfd_version, bfd_version_string): Likewise.
	(AC_OUTPUT): Don't output bfdver.h from version.h.
	* configure: Regenerate.
	* Makefile.am (RELEASE): New variable.
	(bfdver.h): New target.
	* Makefile.in: Regenerate.
	* doc/Makefile.in: Likewise.
2004-05-23 00:06:49 +00:00
Ben Elliston
8b89a4eb74 * Makefile.am (config.status): Don't depend on version.h.
* Makefile.in: Regenerate.
2004-05-22 06:06:22 +00:00
Alan Modra
753731eef0 * merge.c (_bfd_merged_section_offset): Remove "addend" param.
* libbfd-in.h (_bfd_merged_section_offset): Adjust prototype.
	* libbfd.h: Regenerate.
	* elf.c (_bfd_elf_rela_local_sym): Adjust call.
	(_bfd_elf_rel_local_sym): Likewise.
	* elflink.c (_bfd_elf_link_sec_merge_syms): Likewise.
	(elf_link_input_bfd): Likewise.
	* elf32-ppc.c (ppc_elf_relax_section): Likewise.
	* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relax_section): Likewise.
	(elfNN_ia64_relocate_section): Likewise.
2004-05-22 01:56:31 +00:00
Nick Clifton
2d643429de Add --hash-size switch to the linker 2004-05-21 15:38:04 +00:00
Mark Kettenis
8377c19cc4 * libaout.h (machine_type): Add M_88K_OPENBSD and M_HPPA_OPENBSD.
* netbsd-core.c (netbsd_core_file_p): Set architecture for alpha,
arm, m68k, m88k and hppa core files.
2004-05-21 14:56:07 +00:00
Nick Clifton
69fd475884 Do not use iovec if it is NULL. 2004-05-21 13:12:27 +00:00
Ben Elliston
cd9172901c * dwarf2.c (_bfd_dwarf2_find_nearest_line): Comment correction. 2004-05-21 01:58:03 +00:00
Nick Clifton
1b09e940ec Add code to cope with nested archives. 2004-05-19 14:46:59 +00:00
Bob Wilson
096c35a790 * elf32-xtensa.c (xtensa_get_property_section_name): Determine linkonce
section names by inserting a new substring after .gnu.linkonce, except
	for .gnu.linkonce.t.* where the "t." is replaced.
2004-05-17 20:33:33 +00:00
Nick Clifton
b2d65c0b3f Add PowerPC LynxOS support 2004-05-17 19:50:16 +00:00
Bob Wilson
80fccad2d4 binutils ChangeLog:
2004-05-17  David Heine  <dlheine@tensilica.com>
	* objcopy.c (setup_bfd_headers): New function.
	(copy_object): Call setup_bfd_headers.
bfd ChangeLog:
	2004-05-17  David Heine  <dlheine@tensilica.com>
	* aout-target.h (MY_bfd_copy_private_header_data): Define.
	* aout-tic30.c (MY_bfd_copy_private_header_data): Define.
	* bfd.c (bfd_copy_private_header_data): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add entries for new
	interface.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_copy_private_header_data): Define.
	* elf-bfd.h (_bfd_elf_copy_private_header_data): Declare.
	* elf.c (_bfd_elf_copy_private_section_data): Remove code to set up
	segments by calling copy_private_bfd_data.
	(_bfd_elf_copy_private_header_data): Define.
	* elfxx-target.h (bfd_elfNN_bfd_copy_private_header_data): Define.
	* libbfd-in.h (_bfd_generic_bfd_copy_private_header_data): Define.
	* libecoff.h (_bfd_ecoff_bfd_copy_private_header_data): Define.
	* mach-o.c (bfd_mach_o_bfd_copy_private_header_data): Define.
	* mmo.c (mmo_bfd_copy_private_header_data): Define.
	* ppcboot.c (ppcboot_bfd_copy_private_header_data): Define.
	* som.c (som_bfd_copy_private_header_data): Define.
	* targets.c (BFD_JUMP_TABLE_COPY): Add _bfd_copy_private_header_data.
	* vms.c (vms_bfd_copy_private_header_data): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
2004-05-17 16:40:01 +00:00
Thiemo Seufer
c5ae18403c * elfxx-mips.c (MINUS_TWO): Define.
(mips_elf_higher, mips_elf_highest,
	mips_elf_create_dynamic_relocation): Use MINUS_ONE and MINUS_TWO for
	some bfd_vma values.
	(_bfd_mips_elf_finish_dynamic_symbol): Likewise. Code cleanup.
2004-05-15 18:58:05 +00:00
Dave Anglin
a99cf92b09 * som.c (log2): Rename to exact_log2. Adjust all callers. 2004-05-14 17:42:47 +00:00
Nick Clifton
336b9722b8 Remove comment rendered obsolete by previous delta 2004-05-13 15:16:00 +00:00
Nick Clifton
c273895f54 fix typo in file name 2004-05-13 14:49:49 +00:00
Nick Clifton
0da76f83eb Handle dwarf3 format CIE entries. 2004-05-13 14:41:18 +00:00
Nick Clifton
4b36307329 Change or32-rtems target from COFF to ELF format 2004-05-13 14:12:27 +00:00
Nick Clifton
9598fbe5d4 Updated French translations 2004-05-13 12:54:36 +00:00
Jakub Jelinek
8c37241be3 bfd/
* elflink.c (elf_bfd_final_link): Don't output STT_SECTION symbol
	into .dynsym if elf_section_data (sec)->dynindx <= 0.
	Adjust counting of last_local.
	(_bfd_elf_link_renumber_dynsyms): Don't assign dynindx to sections
	other than SHT_PROGBITS/SHT_NOBITS and neither for .got/.got.plt/.plt
	created by the linker nor !SHF_ALLOC.

	* elf32-i386.c (elf_i386_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.  Set sh_entsize for .got section in addition
	to .got.plt.
	(elf_i386_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.
	* elf64-x86-64.c (elf64_x86_64_finish_dynamic_sections): Point
	DT_PLTGOT to the start of the .got.plt section instead of the
	.got output section.
	(elf64_x86_64_relocate_section): Don't assume _GLOBAL_OFFSET_TABLE_
	is at sgot->output_section->vma.  Set sh_entsize for .got section
	in addition to .got.plt.
	* elf.c (_bfd_elf_print_private_bfd_data): Handle PT_GNU_RELRO.
	(bfd_section_from_phdr): Likewise.
	(map_sections_to_segments): Likewise.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Likewise.
	* elflink.c (bfd_elf_size_dynamic_sections): Set
	elf_tdata (output_bfd)->relro from info->relro.
	* elf-bfd.h (struct elf_obj_tdata): Add relro field.
include/
	* bfdlink.h (struct bfd_link_info): Add relro, relro_start and
	relro_end fields.
	* elf/common.h (PT_GNU_EH_FRAME, PT_GNU_STACK): Add comments.
	(PT_GNU_RELRO): Define.
binutils/
	* readelf.c (get_segment_type): Handle PT_GNU_RELRO.
ld/
	* genscripts.sh: Generate -z combreloc -z now -z relro scripts
	for binaries, -shared and -pie.
	* emulparams/elf_i386.sh (SEPARATE_GOTPLT): Set.
	* emulparams/elf_x86_64.sh (SEPARATE_GOTPLT): Set.
	* emulparams/elf32ppc.sh (OTHER_READWRITE_SECTIONS): Rename to...
	(OTHER_RELRO_SECTIONS): ... this.
	* ldlex.l (DATA_SEGMENT_RELRO_END): Add.
	* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Handle
	-z relro and -z norelro.
	(gld${EMULATION_NAME}_list_options): Add it to usage.
	(gld${EMULATION_NAME}_get_script): Return -z combreloc -z now
	-z relro scripts when appropriate.
	* scripttempl/elf.sc: Unset SEPARATE_GOTPLT if RELRO_NOW is set.
	Create separate .got.plt section if SEPARATE_GOTPLT.
	Move sections which are only written during relocation handling
	to the beginning of RW segment.  If NO_SMALL_DATA, move .got
	before .data.  Add DATA_SEGMENT_RELRO_END directive.
	Include OTHER_RELRO_SECTIONS.
	* ldgram.y (DATA_SEGMENT_RELRO_END): Add.
	* ldexp.c (exp_print_token): Handle DATA_SEGMENT_RELRO_END.
	(fold_unary): Likewise.
	(fold_binary): Handle -z relro.
	* ldexp.h (struct exp_data_seg): Add exp_dataseg_relro_seen and
	exp_dataseg_relro_adjust phases.  Add relro_end field.
	* ldmain.c (main): Initialize link_info.relro to FALSE.
	* ldlang.c (lang_size_sections): Handle -z relro.
ld/testsuite/
	* ld-i386/tlspic.rd: Adjust for section reordering changes
	and removal of unneeded STT_SECTION symbols from .dynsym.
	* ld-i386/tlspic.dd: Likewise.
	* ld-i386/tlspic.sd: Likewise.
	* ld-i386/tlsbin.rd: Likewise.
	* ld-i386/tlsbinpic.s: Likewise.
	* ld-i386/tlsbin.dd: Likewise.
	* ld-i386/tlsbin.sd: Likewise.
	* ld-i386/tlsnopic.rd: Likewise.
	* ld-i386/tlsnopic1.s: Likewise.
	* ld-i386/combreloc.d: Likewise.
	* ld-i386/tlsnopic.dd: Likewise.
	* ld-i386/tlsnopic.sd: Likewise.
	* ld-x86-64/tlspic.rd: Likewise.
	* ld-x86-64/tlspic.dd: Likewise.
	* ld-x86-64/tlsbin.dd: Likewise.
	* ld-x86-64/tlspic.sd: Likewise.
	* ld-x86-64/tlsbin.sd: Likewise.
	* ld-x86-64/tlspic.td: Likewise.
	* ld-x86-64/tlsbin.td: Likewise.
	* ld-x86-64/tlsbin.rd: Likewise.
	* ld-s390/tlspic1.s: Likewise.
	* ld-s390/tlsbinpic.s: Likewise.
	* ld-s390/tlspic.rd: Likewise.
	* ld-s390/tlsbin.rd: Likewise.
	* ld-s390/tlspic.dd: Likewise.
	* ld-s390/tlsbin.dd: Likewise.
	* ld-s390/tlsbin.sd: Likewise.
	* ld-s390/tlsbin.td: Likewise.
	* ld-s390/tlspic.sd: Likewise.
	* ld-s390/tlspic.td: Likewise.
	* ld-s390/tlspic1_64.s: Likewise.
	* ld-s390/tlsbinpic_64.s: Likewise.
	* ld-s390/tlspic_64.rd: Likewise.
	* ld-s390/tlsbin_64.rd: Likewise.
	* ld-s390/tlspic_64.dd: Likewise.
	* ld-s390/tlsbin_64.dd: Likewise.
	* ld-s390/tlspic_64.sd: Likewise.
	* ld-s390/tlspic_64.td: Likewise.
	* ld-s390/tlsbin_64.td: Likewise.
	* ld-s390/tlsbin_64.sd: Likewise.
	* ld-powerpc/tlsexe32.r: Likewise.
	* ld-powerpc/tlsso32.r: Likewise.
	* ld-powerpc/tlsso32.d: Likewise.
	* ld-powerpc/tlsso32.g: Likewise.
	* ld-powerpc/tlsso32.t: Likewise.
	* ld-powerpc/tlsexe.r: Likewise.
	* ld-powerpc/tlsso.r: Likewise.
	* ld-powerpc/tlsso.g: Likewise.
	* ld-powerpc/tlsexetoc.r: Likewise.
	* ld-powerpc/tlstocso.r: Likewise.
	* ld-powerpc/tlstocso.g: Likewise.
	* ld-ia64/tlspic.rd: Likewise.
	* ld-ia64/tlspic.dd: Likewise.
	* ld-ia64/tlspic.sd: Likewise.
	* ld-ia64/tlspic.td: Likewise.
	* ld-ia64/tlsbin.rd: Likewise.
	* ld-ia64/tlsbin.sd: Likewise.
	* ld-ia64/tlsbin.td: Likewise.
	* ld-elfvsb/elfvsb.exp: XFAIL non-PIC load offset tests on s390x.
	* ld-shared/shared.exp: Likewise.
2004-05-11 17:08:38 +00:00
Alexandre Oliva
3f980e41d7 * elf32-frv.c (_frvfdpic_add_dyn_reloc): Don't warn when we get
a zero symndx for which we hadn't accounted a dynamic relocation.
(_frvfdpic_add_rofixup): Likewise.
2004-05-08 07:05:32 +00:00
Brian Ford
d70270c5ec * coffcode.h (coff_write_object_contents) [COFF_IMAGE_WITH_PE]:
Propagate IMAGE_FILE_LARGE_ADDRESS_AWARE.
* peXXigen.c (_bfd_XX_print_private_bfd_data_common): Recognize
IMAGE_FILE_LARGE_ADDRESS_AWARE.  Use PE defines.
2004-05-07 15:08:49 +00:00
Alexandre Oliva
7e9f3bd695 * elf32-frv.c (elf32_frvfdpic_modify_segment_map): Return
immediately if there's no link info.
(elf32_frvfdpic_copy_private_bfd_data): New.
(bfd_elf32_bfd_copy_private_bfd_data): Use it for frvfdpic.
2004-05-07 06:28:39 +00:00
Zack Weinberg
eb61d2d606 * dwarf2.c (add_line_info): Also set info->filename to NULL if
filename argument is null; do not call strlen on a null pointer.
2004-05-07 00:01:25 +00:00
Daniel Jacobowitz
ecb2d096d3 * elf32-arm.h (elf32_arm_relocate_section): Remove R_ARM_PLT32
special case.
2004-05-06 23:43:40 +00:00
Alexandre Oliva
43850d5b4b * configure.in (bfd_elf32_frvfdpic_vec): New.
* configure: Rebuilt.
* targets.c (bfd_elf32_frvfdpic_vec): New.
* config.bfd: Enable it on frv-*-elf and frv-*-*linux*, as default
on the latter.
* elf32-frv.c: Prefix all identifiers added for FDPIC support with
frvfdpic instead of frv.  Rearrange elf-target macros such that
the FDPIC-specific ones are only defined for this new target
vector.
(bfd_elf32_frvfdpic_vec): Declare.
(IS_FDPIC): New.
(elf32_frv_relocate_section): Use it to enable segment checking
and to control rofixup emission.  Add output section vma to
applied relocation in non-LOAD non-ALLOC sections.  Use
_bfd_error_handler for errors.
(_frv_create_got_section): Create .rel.got and .rofixup only in
FDPIC.  Create non-dynamic _gp at .got+2048 in non-FDPIC, like the
linker script.
(elf32_frvfdpic_size_dynamic_sections): Assume FDPIC.
(elf32_frvfdpic_modify_segment_map): Likewise.
(elf32_frv_finish_dynamic_sections): New, do-nothing.
(elf32_frvfdpic_finish_dynamic_sections): Assume FDPIC.  Improve
error message if we miscompute the rofixup size.
(frvfdpic_elf_use_relative_eh_frame): Assume FDPIC.
(frvfdpic_elf_encode_eh_address): Likewise.
(elf32_frv_check_relocs): Reject FDPIC-only relocs in non-FDPIC.
Record relocs only in FDPIC.  Make sure _gp is defined for GPREL
relocs.  Reject unknown relocation types.
(elf32_frv_object_p): Make sure target vector matches FDPIC bits.
(frv_elf_merge_private_bfd_data): Likewise.
(ELF_MAXPAGESIZE): Revert to 0x1000 for elf32-frv; keep it as
0x4000 for newly-added elf32-frvfdpic.
2004-05-06 02:46:29 +00:00
Nick Clifton
33216455a7 Remove checks of the return value from bfd_cache_ookup() 2004-05-05 15:46:35 +00:00
Nick Clifton
06fc8a8ce6 PR/136 - Have bfd_cache_lookup_worker() abort rather than return an
(unchecked-for) NULL.
2004-05-05 15:39:11 +00:00
Nick Clifton
6b6e92f432 Add support for 521x,5249,547x,548x. 2004-05-05 14:33:14 +00:00
Alan Modra
6a8d1586d1 * elf.c (_bfd_elf_rela_local_sym): Set kept_section for excluded
SEC_MERGE sections.
	* elflink.c (elf_link_input_bfd): Adjust output reloc index for
	those against discarded link-once and SEC_MERGE section symbols.
2004-05-03 14:52:02 +00:00
H.J. Lu
fafe6678a5 bfd/
2004-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* section.c (bfd_get_section_by_name_if): New.
	* bfd-in2.h: Regenerated.

gas/

2004-05-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-elf.c (get_section): Return bfd_boolean.
	(obj_elf_change_section): Call bfd_get_section_by_name_if
	instead of bfd_map_over_sections.
2004-05-02 14:36:25 +00:00
Alan Modra
ad7b9a3686 * som.c (som_bfd_is_group_section): Define. 2004-05-02 06:21:08 +00:00
Alan Modra
73499ab841 * section.c (bfd_make_section_anyway): Copy the whole
bfd_hash_entry, not just "next" from existing entry.
2004-05-01 14:20:26 +00:00
H.J. Lu
45c5e9ed66 2004-04-30 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (bfd_section_from_shdr): Maintain the section order in
	a section group.
	(special_sections): Add ".note.GNU-stack".
	(elf_fake_sections): Handle section group for relocatable
	link..
2004-04-30 15:04:30 +00:00
H.J. Lu
bc87dd2ec1 2004-04-30 H.J. Lu <hongjiu.lu@intel.com>
* section.c (bfd_sections_find_if): New.
	* bfd-in2.h: Regenerated.
2004-04-30 15:01:15 +00:00
Alan Modra
72adc23045 * section.c (bfd_make_section_anyway): Add all sections to hash tab.
* elf-bfd.h (bfd_elf_is_group_section): Declare.
	* elf.c (bfd_elf_is_group_section): New function.
	* elfxx-target.h (bfd_elfNN_bfd_is_group_section
	* section.c (bfd_generic_is_group_section): New function.
	* targets.c (struct bfd_target): Add _bfd_is_group_section field.
	(BFD_JUMP_TABLE_LINK): Adjust.
	* aout-adobe.c (aout_32_bfd_is_group_section): Define.
	* aout-target.h (MY_bfd_is_group_section): Define.
	* aout-tic30.c (MY_bfd_is_group_section): Define.
	* bfd.c (bfd_is_group_section): Define.
	* binary.c (binary_bfd_is_group_section): Define.
	* bout.c (b_out_bfd_is_group_section): Define.
	* coff-alpha.c (_bfd_ecoff_bfd_is_group_section): Define.
	* coff-mips.c (_bfd_ecoff_bfd_is_group_section): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Adjust.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Adjust.
	* coffcode.h (coff_bfd_is_group_section): Define.
	* i386msdos.c (msdos_bfd_is_group_section): Define.
	* i386os9k.c (os9k_bfd_is_group_section): Define.
	* ieee.c (ieee_bfd_is_group_section): Define.
	* ihex.c (ihex_bfd_is_group_section): Define.
	* libbfd-in.h (_bfd_nolink_bfd_is_group_section): Define.
	* mach-o.c (bfd_mach_o_bfd_is_group_section): Define.
	* mmo.c (mmo_bfd_is_group_section): Define.
	* nlm-target.h (nlm_bfd_is_group_section): Define.
	* oasys.c (oasys_bfd_is_group_section): Define.
	* pef.c (bfd_pef_bfd_is_group_section): Define.
	* ppcboot.c (ppcboot_bfd_is_group_section): Define.
	* srec.c (srec_bfd_is_group_section): Define.
	* tekhex.c (tekhex_bfd_is_group_section): Define.
	* versados.c (versados_bfd_is_group_section): Define.
	* vms.c (vms_bfd_is_group_section): Define.
	* xsym.c (bfd_sym_bfd_is_group_section): Define.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
2004-04-30 14:23:40 +00:00
Alan Modra
20f0a1ada4 * elflink.c (elf_gc_mark): Follow indirect and warning syms. 2004-04-30 08:48:55 +00:00
Hans-Peter Nilsson
f7458fc96a Eh... sanitize date of last entry 2004-04-30 06:29:36 +00:00
Hans-Peter Nilsson
7dfb3b6b58 * configure.in: Update version to 2.15.91.
* configure: Regenerate.
2004-04-30 06:28:46 +00:00
Nick Clifton
8a7140c38f Add support for generating DWARF2 debug sections in the x86 PE port 2004-04-29 16:40:20 +00:00
Chris Demetriou
3e722fb54b [ bfd/ChangeLog ]
2004-04-28  Chris Demetriou  <cgd@broadcom.com>

	* reloc.c: Remove BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.

[ gas/ChangeLog ]
2004-04-28  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (HAVE_32BIT_ADDRESSES, append_insn, macro_build)
	(load_address, macro, mips_ip, md_parse_option)
	(mips_force_relocation, mips_validate_fix, md_apply_fix3)
	(s_change_sec, pic_need_relax, tc_gen_reloc): Remove all
	embedded-PIC handling, and update comments.
	(SWITCH_TABLE): Remove.
	* config/tc-mips.h (DIFF_EXPR_OK): Delete.
	(enum mips_pic_level): Remove EMBEDDED_PIC.
	(EXTERN_FORCE_RELOC): Remove embedded-PIC handling.
	(TC_FORCE_RELOCATION): Update comment.
	* ecoff.c (ecoff_build_lineno): Add comment about some code that
	might be safe to remove now that MIPS embedded-PIC is gone.
2004-04-29 05:14:22 +00:00
Dave Anglin
351e2b5aa7 * som.c (struct som_misc_symbol_info): Add is_comdat, is_common and
dup_common fields.
	(setup_sections): Use som_subspace_dictionary_record struct instead
	subspace_dictionary_record.  Set SEC_LINK_ONCE if subspace is
	is_comdat, is_common or dup_common.
	(som_prep_headers): Use som_subspace_dictionary_record struct.  Set
	is_comdat, is_common and dup_common in section subspace_dict from
	copy_data.
	(som_begin_writing): Use som_subspace_dictionary_record struct.
	(som_finish_writing): Likewise.
	(som_bfd_derive_misc_symbol_info): Add support to set is_comdat,
	is_common and dup_common flags in info for symbol.  Add comment
	regarding linker support for these fields.  Slightly reorganize
	function.
	(som_build_and_write_symbol_table): Set is_comdat, is_common and
	dup_common fields in symbol table from symbol info.
	(bfd_som_set_subsection_attributes): Add comdat, common and dup_common
	arguments.  Set corresponding fields in copy_data.  Change all callers.
	(som_bfd_ar_write_symbol_stuff): Set dup_common flag in library
	symbol table.
	(som_vec): Add SEC_LINK_ONCE to applicable section flags.
	* som.h (som_subspace_dictionary_record): Define.
	(som_copyable_section_data_struct): Add is_comdat, is_common and
	dup_common fields.
	(som_section_data_struct): Use som_subspace_dictionary_record struct
	instead of subspace_dictionary_record.
	(bfd_boolean bfd_som_set_subsection_attributes): Adjust prototype.
	* config/obj-som.c (obj_som_init_stab_section): Add new arguments in
	call to obj_set_subsection_attributes.
	(obj_som_init_stab_section): Likewise.
	* config/tc-hppa.c (default_subspace_dict): Add comdat field.
	(pa_def_subspaces): Provide comdat default.
	(pa_subspace): Handle new "comdat" parameter.  Set SEC_LINK_ONCE and
	not SEC_IS_COMMON if section is comdat, common or dup_common.  Update
	calls to create_new_subspace and update_subspace to pass comdat flag.
	(create_new_subspace, update_subspace): Add new comdat argument.  Use
	it in calls to obj_set_subsection_attributes.
	* doc/c-hppa.texi (.subspa, .nsubspa): Document new comdat parameter
	and use of comdat, common and dup_comm parameters.
2004-04-28 18:02:49 +00:00
Bob Wilson
3ba3bc8c61 * elf32-xtensa.c (xtensa_read_table_entries): Use section _cooked_size
if set.  Check reloc_done flag before applying relocations.  Use
	output addresses, both when applying relocations and when comparing
	against the specified section.
	(elf_xtensa_relocate_section): Use output address to check if dynamic
	reloc is in a literal pool.  Set section's reloc_done flag.
2004-04-27 21:28:16 +00:00
H.J. Lu
beb8df56a1 2004-04-27 H.J. Lu <hongjiu.lu@intel.com>
* elf32-sh64.c (elf_backend_section_flags): New. Defined.
	(sh64_elf_set_mach_from_flags): Remove the kludge for .cranges
	section.
	(sh64_elf_section_flags): New. Set SEC_DEBUGGING for .cranges
	section.
2004-04-27 16:06:07 +00:00
Alan Modra
1829f4b2af * elf64-alpha.c (elf64_alpha_read_ecoff_info): Don't assign
structure field removed in 2004-04-24 patch.
	* elf64-sparc.c (sparc64_elf_plt_sym_val): Warning fix.

	* elf-bfd.h (struct elf_backend_data <elf_backend_section_flags>):
	Constify hdr arg.
	* elf32-arm.h (elf32_arm_section_flags): Likewise.
	* elf64-alpha.c (elf64_alpha_section_flags): Likewise.
	* elfxx-ia64.c (elfNN_ia64_section_flags): Likewise.
	* elf.c (_bfd_elf_make_section_from_shdr): Set the bfd_section
	field before calling elf_backend_section_flags.
2004-04-27 03:13:15 +00:00
Chris Demetriou
4030e8f624 [ bfd/ChangeLog ]
2004-04-24  Chris Demetriou  <cgd@broadcom.com>

	* elf32-mips.c (elf_mips_gnu_rel_hi16, elf_mips_gnu_rel_lo16)
	(elf_mips_gnu_pcrel64, elf_mips_gnu_pcrel32): Remove.
	(bfd_elf32_bfd_reloc_type_lookup): Remove cases for
	BFD_RELOC_PCREL_HI16_S, BFD_RELOC_PCREL_LO16, BFD_RELOC_64_PCREL,
	and BFD_RELOC_32_PCREL.
	(mips_elf32_rtype_to_howto): Remove cases for R_MIPS_GNU_REL_HI16,
	R_MIPS_GNU_REL_LO16, R_MIPS_PC64, R_MIPS_PC32.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.
	(_bfd_mips_elf_lo16_reloc): Remove handling for R_MIPS_GNU_REL_HI16.
	(mips_elf_next_relocation): Move comment about matching HI/LO
	relocations to...
	(_bfd_mips_elf_relocate_section): Here.  Remove handling for
	R_MIPS_GNU_REL_HI16.

[ include/elf/ChangeLog ]
2004-04-24  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (R_MIPS_PC32, R_MIPS_PC64, R_MIPS_GNU_REL_LO16)
	(R_MIPS_GNU_REL_HI16): Remove.
	(R_MIPS_GNU_REL16_S2): Update comment.

[ ld/testsuite/ChangeLog ]
2004-04-24  Chris Demetriou  <cgd@broadcom.com>

	* ld-elf/merge.d: XFAIL on all MIPS targets.
2004-04-24 22:07:14 +00:00
Chris Demetriou
3e27568fe9 [ bfd/ChangeLog ]
2004-04-23  Chris Demetriou  <cgd@broadcom.com>

        * coff-mips.c (mips_relhi_reloc, mips_rello_reloc)
        (mips_switch_reloc, mips_read_relocs, mips_relax_section)
        (mips_relax_pcrel16, PCREL16_EXPANSION_ADJUSTMENT): Remove.
        (mips_relocate_hi): Remove now-unused 'adjust' and 'pcrel' arguments,
        and update comments to reflect current usage.
        (mips_howto_table): Remove entries for MIPS_R_RELHI, MIPS_R_RELLO,
        and MIPS_R_SWITCH, as well as several empty entries.  Update comment
        for MIPS_R_PCREL16.
        (mips_ecoff_swap_reloc_in, mips_ecoff_swap_reloc_out)
        (mips_adjust_reloc_out, mips_bfd_reloc_type_lookup): Remove support
        for MIPS_R_SWITCH, MIPS_R_RELLO, and MIPS_R_RELHI relocations.
        (mips_adjust_reloc_in): Likewise, adjust maximum accepted relocation
        type number to be MIPS_R_PCREL16.
        (mips_relocate_section): Remove support for link-time relaxation
        of branches used by embedded-PIC.  Remove support for MIPS_R_SWITCH,
        MIPS_R_RELLO, and MIPS_R_RELHI relocations.
        (_bfd_ecoff_bfd_relax_section): Redefine to bfd_generic_relax_section.
        * ecoff.c (ecoff_indirect_link_order): Remove support for link-time
        relaxation of branches used by embedded-PIC.
        * ecofflink.c (bfd_ecoff_debug_accumulate): Likewise.
        * libecoff.h (struct ecoff_section_tdata): Remove embedded-PIC
        related members, update comment.
        * pe-mips.c: Remove disabled (commented-out and #if 0'd)
        code related to embedded-PIC.
        * elfxx-mips.c (_bfd_mips_elf_read_ecoff_info): Remove
        initialization of now-removed 'adjust' member of
        'struct ecoff_debug_info'.

[ include/coff/ChangeLog ]
2004-04-23  Chris Demetriou  <cgd@broadcom.com>

        * mips.h (MIPS_R_RELHI, MIPS_R_RELLO, MIPS_R_SWITCH): Remove
        (MIPS_R_PCREL16): Update comment.
        * ecoff.h (struct ecoff_value_adjust): Remove structure.
        (struct ecoff_debug_info): Remove 'adjust' member.
2004-04-24 06:12:25 +00:00
Chris Demetriou
b32de0bc66 oops, fix date on my last entry (2004-04-23) 2004-04-24 00:20:56 +00:00
Chris Demetriou
8472310da8 2004-04-22 Chris Demetriou <cgd@broadcom.com>
* elfxx-mips.c (mips_elf_get_global_gotsym_index): Remove.
2004-04-24 00:15:32 +00:00
Phil Blundell
955af22232 2004-04-21 Philip Blundell <pb@nexus.co.uk>
* elf32-arm.h (elf32_arm_check_relocs): Don't output REL32
	relocs for locally defined symbols during -shared final link.
	(elf32_arm_final_link_relocate): Likewise.
2004-04-23 19:12:55 +00:00
Jakub Jelinek
47a9f7b34f * elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Copy also
ELF_LINK_POINTER_EQUALITY_NEEDED.
	(elf64_x86_64_check_relocs): Set ELF_LINK_POINTER_EQUALITY_NEEDED
	if r_type is not R_X86_64_PC32.
	(elf64_x86_64_finish_dynamic_symbol): If
	ELF_LINK_POINTER_EQUALITY_NEEDED is not set, clear st_value of
	SHN_UNDEF symbols.
2004-04-23 08:51:10 +00:00
Kaz Kojima
1f1799d5ad bfd/
* elf32-sh.c (sh_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.

opcodes/
	* sh-dis.c (print_insn_sh): Print the value in constant pool
	as a symbol if it looks like a symbol.

gas/testsuite/
	* gas/sh/pcrel2.d: Update.
	* gas/sh/tlsd.d: Update.
	* gas/sh/tlsnopic.d: Update.
	* gas/sh/tlspic.d: Update.

ld/testsuite/
	* ld-sh/tlsbin-1.d: Update
	* ld-sh/tlspic-1.d: Update.
2004-04-23 02:47:39 +00:00
Andrew Cagney
0fdea5ce57 2004-04-22 Andrew Cagney <cagney@redhat.com>
* opncls.c (bfd_alloc): Fix type of "wanted" in doco.
2004-04-23 00:22:57 +00:00
Dave Anglin
5198ba8bd1 * hpux-core.c (hpux_core_core_file_p): Add cast in call to
make_bfd_asection.
	* som.c (som_set_section_contents): Constantify second argument.
	(hppa_som_gen_reloc_type): Abort for unsupported selectors.
	(som_object_setup): Rework to avoid warning.
	(setup_sections, som_write_fixups, bfd_section_from_som_symbol):
	Likewise.
2004-04-22 23:17:07 +00:00
Andrew Cagney
fe2e161ad6 2004-04-22 Andrew Cagney <cagney@redhat.com>
* cache.c (bfd_cache_close): Check for a previously closed file.
2004-04-22 16:17:31 +00:00
Jakub Jelinek
4c45e5c9ce bfd/
* bfd.c (bfd_get_synthetic_symtab): Define.
	* targets.c (BFD_JUMP_TABLE_DYNAMIC): Add
	NAME##_get_synthetic_symtab.
	(struct bfd_target): Add _bfd_get_synthetic_symtab.
	* libbfd-in.h (_bfd_nodynamic_get_synthetic_symtab): Define.
	* elf-bfd.h (struct elf_backend_data): Add plt_sym_val and
	relplt_name fields.
	(_bfd_elf_get_synthetic_symtab): New prototype.
	* elfcode.h (elf_get_synthetic_symtab): Define.
	* elf.c (_bfd_elf_get_synthetic_symtab): New function.
	* elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Define.
	(elf_backend_plt_sym_val, elf_backend_relplt_name): Define.
	(elfNN_bed): Add elf_backend_plt_sym_val and elf_backend_relplt_name.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-i386.c (elf_i386_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-x86-64.c (elf64_x86_64_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-s390.c (elf_s390_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-s390.c (elf_s390_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-sparc (elf32_sparc_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf64-sparc.c (sparc64_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* elf32-ppc.c (ppc_elf_plt_sym_val): New function.
	(elf_backend_plt_sym_val): Define.
	* aout-target.h (MY_get_synthetic_symtab): Define.
	* aout-tic30.c (MY_get_synthetic_symtab): Define.
	* coff-rs6000.c (rs6000coff_vec): Add
	_bfd_nodynamic_get_synthetic_symtab.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Add
	_bfd_nodynamic_get_synthetic_symtab.
	(aix5coff64_vec): Likewise.
	* sunos.c (MY_get_synthetic_symtab): Define.
	* vms.c (vms_get_synthetic_symtab): Define.
binutils/
	* objdump.c (synthsyms, synthcount): New variables.
	(disassemble_data): Use dynsyms for stripped binaries or libraries.
	Add synthetized symbols.
	(dump_bfd): For disassemble, initialize dynsyms always and
	also synthsyms.  Free synthsyms and clear {sym,dynsym,synth}count
	before returning.
2004-04-22 14:45:32 +00:00
Nick Clifton
d2f7ecac2c Have bfd_archive_filename() return NULL on NULL input 2004-04-22 10:43:34 +00:00
Nick Clifton
fd99574ba5 Add support for ColdFire MAC instructions and tidy up support for other m68k
variants.
2004-04-22 10:33:16 +00:00
Chris Demetriou
23867d6732 [ bfd/ChangeLog ]
2004-04-21  Chris Demetriou  <cgd@broadcom.com>

	* coff-mips.c (bfd_mips_ecoff_create_embedded_relocs): Remove.
	* elf32-mips.c (bfd_mips_elf32_create_embedded_relocs): Remove.
	* bfd-in.h (bfd_mips_ecoff_create_embedded_relocs)
	(bfd_mips_elf32_create_embedded_relocs): Remove prototypes
	* bfd-in2.h: Regenerate.

[ ld/ChangeLog ]
2004-04-21  Chris Demetriou  <cgd@broadcom.com>

	* ld.texinfo: Remove MIPS --embedded-relocs documentation.
	* emulparams/elf32bmip.sh (EXTRA_EM_FILE): Remove definition.
	* emulparams/mipsidt.sh (TEMPLATE_NAME): Use generic.em.
	(EXTRA_EM_FILE): Use mipsecoff.em
	* emulparams/mipsidtl.sh (TEMPLATE_NAME): Use generic.em.
	(EXTRA_EM_FILE): Use mipsecoff.em
	* emultempl/mipsecoff.em: Restructure to be included as an
	extra emulation file.
	(check_sections, gld${EMULATION_NAME}_after_open)
	(gld${EMULATION_NAME}_after_allocation)
	(gld${EMULATION_NAME}_get_script)
	(ld_${EMULATION_NAME}_emulation): Remove
	(gld${EMULATION_NAME}_before_parse): Rename to...
	(mipsecoff_before_parse): This.
	(LDEMUL_BEFORE_PARSE): Define.
	* emultempl/mipself.em: Remove file.
	* scripttempl/mips.sc (.rel.sdata): Do not include in output.
	(__runtime_reloc_start, __runtime_reloc_stop): Stop providing
	these symbols.
	* Makefile.am: Remove dependencies on emultempl/mipself.em.
	* Makefile.in: Regenerate.

[ ld/testsuite/ChangeLog ]
2004-04-21  Chris Demetriou  <cgd@broadcom.com>

	* ld-empic/run.c: Removed as part of MIPS --embedded-relocs removal.
	* ld-empic/empic.exp: Likewise.
	* ld-empic/relax.t: Likewise.
	* ld-empic/relax1.c: Likewise.
	* ld-empic/relax2.c: Likewise.
	* ld-empic/relax3.c: Likewise.
	* ld-empic/relax4.c: Likewise.
	* ld-empic/runtest1.c: Likewise.
	* ld-empic/runtest2.c: Likewise.
	* ld-empic/runtesti.s: Likewise.
	* ld-mips-elf/empic1-ln.d: Likewise.
	* ld-mips-elf/empic1-lp.d: Likewise.
	* ld-mips-elf/empic1-mn.d: Likewise.
	* ld-mips-elf/empic1-mp.d: Likewise.
	* ld-mips-elf/empic1-ref.s: Likewise.
	* ld-mips-elf/empic1-sn.d: Likewise.
	* ld-mips-elf/empic1-sp.d: Likewise.
	* ld-mips-elf/empic1-space.s: Likewise.
	* ld-mips-elf/empic1-tgt.s: Likewise.
	* ld-mips-elf/empic2-fwd-0.d: Likewise.
	* ld-mips-elf/empic2-fwd-1.d: Likewise.
	* ld-mips-elf/empic2-fwd-tgt.s: Likewise.
	* ld-mips-elf/empic2-ref.s: Likewise.
	* ld-mips-elf/empic2-rev-0.d: Likewise.
	* ld-mips-elf/empic2-rev-1.d: Likewise.
	* ld-mips-elf/empic2-rev-tgt.s: Likewise.
	* ld-mips-elf/empic2-space.s: Likewise.
	* ld-mips-elf/emrelocs-eb.d: Likewise.
	* ld-mips-elf/emrelocs-el.d: Likewise.
	* ld-mips-elf/emrelocs.ld: Likewise.
	* ld-mips-elf/emrelocs1.s: Likewise.
	* ld-mips-elf/emrelocs2.s: Likewise.
	* ld-mips-elf/mips-elf.exp: Don't run now-removed tests.
2004-04-21 20:52:31 +00:00
Bob Wilson
2c8c90bcd5 * elf32-xtensa.c (is_same_value): Add final_static_link argument and
require relocations against a weak symbol to reference the same
	symbol hash entry if not a final, static link.
	(get_cached_value, add_value_map): Add final_static_link argument.
	(remove_literals): Pass final_static_link argument as needed.
2004-04-21 18:12:47 +00:00
Andrew Cagney
40838a725a 2004-04-21 Andrew Cagney <cagney@redhat.com>
* opncls.c (_bfd_new_bfd_contained_in): Copy "iovec".
	(struct opncls, opncls_btell, opncls_bseek, opncls_bread)
	(opncls_bwrite, opncls_bclose, opncls_bflush)
	(opncls_bstat, opncls_iovec, bfd_openr_iovec): Implement a
	bfd iovec that uses function callbacks.
	(bfd_close): Use the iovec's bclose.
	* cache.c (cache_btell, cache_bseek, cache_bread, cache_bwrite)
	(cache_bclose, cache_bflush, cache_bstat)
	(cache_iovec): New functions and global variable, implement a
	cache "iovec", where applicable set bfd_error.
	(bfd_cache_init, bfd_cache_close): Set/test the bfd's iovec.
	* bfdio.c (struct bfd_iovec): Define.
	(real_read): Delete function.
	(bfd_bread, bfd_bread, bfd_bwrite, bfd_tell, bfd_flush, bfd_stat)
	(bfd_seek, bfd_get_mtime, bfd_get_size): Use the bfd's "iovec",
	assume that bread and bwrite set bfd_error.
	* bfd.c (struct bfd): Add "iovec", update comments.
	* bfd-in2.h, libbfd.h: Re-generate.
2004-04-21 17:05:12 +00:00
Andrew Cagney
7f919c8471 2004-04-21 Andrew Cagney <cagney@redhat.com>
* libaout.h (enum machine_type): Add M_POWERPC_NETBSD.
2004-04-21 16:58:57 +00:00
Eric Botcazou
715df9b8e0 * elflink.c (elf_gc_mark_dynamic_ref_symbol): New function.
(bfd_elf_gc_sections): Fail if a shared object is being created.
	Do not fail if dynamic sections have been created.  Instead call
	elf_gc_mark_dynamic_ref_symbol to mark sections that contain
	dynamically referenced symbols.  Do not mark the whole graph
	rooted at .eh_frame, only the section proper.
2004-04-21 07:14:15 +00:00
Nick Clifton
6482c264f4 Add support for a .secrel32 x86 reloc to allow DWARF" debug information to used
with COFF based x86 ports.
2004-04-20 12:17:16 +00:00
Jakub Jelinek
4dc570c2f5 bfd/
* elf32-sparc.c (elf32_sparc_relocate_section): Handle
	relocs against hidden/protected undefweak symbols properly.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
gas/testsuite/
	* gas/cfi/cfi-sparc64-1.d: Update.
ld/testsuite/
	* ld-elfvsb/elfvsb.exp: XFAIL some tests on sparc64.
	* ld-shared/shared.exp: Likewise.
2004-04-19 14:25:49 +00:00
Mark Kettenis
0b60d5d323 * libaout.h (enum machine_type): Add M_POWERPC_NETBSD.
* netbsd-core.c (netbsd_core_file_p): Set architecture for PowerPC
core files.
2004-04-18 20:55:55 +00:00
Alan Modra
d48bdb9974 * peXXigen.c (_bfd_XXi_swap_aouthdr_out): Use the first non-zero
filepos for the SizeOfHeaders field.
	(_bfd_XXi_swap_scnhdr_out): Correct section flags lossage on reloc
	overflow.
	(_bfd_XXi_swap_sym_in): Remove redundant section flags assignment.
2004-04-17 11:18:47 +00:00
Alan Modra
57a1784ed8 * simple.c (bfd_simple_get_relocated_section_contents): Don't
change reloc_done.  Set and restore _cooked_size.
	(RETURN): Delete.
2004-04-16 03:29:13 +00:00
Mark Kettenis
d1ad3f6f20 * netbsd-core.c (netbsd_core_file_p): Set architecture for VAX
core files.
2004-04-15 16:04:38 +00:00
Nick Clifton
3d1bca9dfb Catch NULL bfd pointers passed to bfd_archive_filename 2004-04-15 08:48:56 +00:00
Alan Modra
019b892f34 * elf64-sparc.c (sparc64_elf_check_relocs): Fix thinko last change. 2004-04-15 06:03:59 +00:00
Alan Modra
15b43f483c * elflink.c (_bfd_elf_merge_symbol): Treat weak as strong only
when it is a definition.
2004-04-15 02:55:20 +00:00
Alan Modra
6de00a7823 * elf32-sparc.c (elf32_sparc_relocate_section): Don't abort
when statically linking PIC code.
	* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
2004-04-14 09:50:07 +00:00
Thiemo Seufer
279500dea9 /bfd/ChangeLog
* config.bfd: Remove mips*-*-mach3* and mips*-dec-mach3* targets.
	* configure.in: Remove mips-dec-bsd*, mips-dec-mach3*, mips-*-mach3*
	targets amd aout_mips_big_vec, aout_mips_little_vec target vectors.
	* configure: Regenerate.

	/gas/ChangeLog
	* Makefile.am: Remove mips from aout targets.
	* Makefile.in: Regenerate.
	* configure.in: Remove mips-dec-bsd* target.
	* configure: Regenerate.

	/ld/ChangeLog
	* configure.host: Remove mips*-dec-bsd* target.
	* configure.tgt: Likewise.
2004-04-11 04:07:46 +00:00
Richard Sandiford
ccf2f65243 * elflink.c: Include libiberty.h.
* Makefile.am (elflink.lo): Depend on libiberty.h.
	* Makefile.in: Regenerate.
2004-04-08 15:17:35 +00:00
Daniel Jacobowitz
ca07892d88 * elfxx-mips.c (MIPS_ELF_STUB_SECTION_NAME): Always use
".MIPS.stubs".
2004-04-06 15:48:50 +00:00
H.J. Lu
a5a58ba4de 2004-04-05 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections): Always
	reserve the memory for dynamic linker
2004-04-06 00:59:22 +00:00
Mark Kettenis
24d18d3088 * netbsd-core.c (CORE_WCOOKIE_OFFSET): New define.
(netbsd_core_file_p): Create a .wcookie section for OpenBSD/sparc.
2004-04-05 14:43:36 +00:00
H.J. Lu
a4d7b4b518 2004-04-02 H.J. Lu <hongjiu.lu@intel.com>
* elf32-cr16c.c (elf32_cr16c_relocate_section): Use
	RELOC_FOR_GLOBAL_SYMBOL.
	(elf32_cr16c_add_symbol_hook): Remove const from Elf_Internal_Sym.
2004-04-02 15:26:04 +00:00
H.J. Lu
1f433d93ad 2004-04-02 H.J. Lu <hongjiu.lu@intel.com>
* elf32-arm.h (elf32_arm_final_link_relocate): Handle
	R_ARM_ALU* only if OLD_ARM_ABI is not defined.
2004-04-02 15:25:05 +00:00
Paul Brook
e489d0aef7 * bfd/bfd-in.h (bfd_elf32_arm_process_before_allocation): Update.
* bfd/elf32-arm.h (struct elf32_elf_section_map): New.
	(struct _arm_elf_section_data): New.
	(elf32_arm_section_data): Define.
	(struct elf32_arm_link_hash_table): Add byteswap_code.
	(elf32_arm_link_hash_table_create): Initialize byteswap_code.
	(bfd_elf32_arm_process_before_allocation): Add byteswap_code.
	(elf32_arm_post_process_headers): Set EF_ARM_BE8.
	(elf32_arm_output_symbol_hook, elf32_arm_new_section_hook,
	elf32_arm_compare_mapping, elf32_arm_write_section): New functions.
	(bfd_elf32_new_section_hook, elf_backend_write_section,
	elf_backend_link_output_symbol_hook): Define.
	* ld/emultempl/armelf.em (byteswap_code): Add.
	(arm_elf_before_allocation): Pass extra parameter.
	(PARSE_AND_LIST_PROLOGUE): Add OPTION_BE8.
	(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add be8.
	(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_BE8.
	* ld/emultempl/armelf_oabi.em: Pass extra parameter.
	* ld/ld.texinfo: Document --be8.
2004-04-01 11:20:04 +00:00
Nick Clifton
66a695f0b6 (struct stab_link_includes_totals): Add field 'symb' that keeps the characters
in a B_INCL..B_EINCL range.
(_bfd_link_section_stabs): When computing the sum of the characters in a
B_INCL..B_EINCL range also keep a copy of those	characters.  Use this
information to distinguish between include sections that have the same sum
and the same length but which are nevertheless unique.
2004-04-01 08:40:05 +00:00
Paul Brook
8375c36b6a * elf32-arm.h (elf32_arm_final_link_relocate): Add R_ARM_ALU*.
* elfarm-nabi.c (elf32_arm_howto_table): Ditto.
2004-03-31 10:20:12 +00:00
Nick Clifton
a56b48eb0f (struct stab_link_includes_totals): Rename field 'total' to 'sum_chars'
and add field 'num_chars'.
(_bfd_link_section_stabs): When computing the sum of the characters in a
B_INCL..B_EINCL range also keep a count of the number of characters.  Use
this information to help distinguish between include sections when have
the same sum but which nevertheless are still unique.
2004-03-31 09:27:40 +00:00
Nick Clifton
3d45646427 (_bfd_link_section_stabs): Do not skip N_EXCL stabs. 2004-03-31 08:45:00 +00:00
Nick Clifton
0949843db2 Add (linker) support for CR16C processor 2004-03-30 14:04:32 +00:00
Jakub Jelinek
baaff79e16 * elf.c (map_sections_to_segments): Fix handling of .tbss. 2004-03-30 09:58:28 +00:00
Alan Modra
c152c7961c * Makefile.am: Remove all mention of elflink.h.
* Makefile.in: Regenerate.
	* bfd-in.h (bfd_elf_discard_info): Declare.
	(bfd_elf32_discard_info, bfd_elf64_discard_info): Delete.
	* bfd-in2.h: Regenerate.
	* elf-bfd.h (bfd_elf32_print_symbol, bfd_elf64_print_symbol,
	bfd_elf32_link_record_dynamic_symbol,
	bfd_elf64_link_record_dynamic_symbol,
	_bfd_elf_link_record_dynamic_symbol, bfd_elf32_bfd_final_link,
	bfd_elf64_bfd_final_link, elf_link_record_local_dynamic_symbol,
	_bfd_elf32_link_record_local_dynamic_symbol,
	_bfd_elf64_link_record_local_dynamic_symbol,
	_bfd_elf32_gc_sections, _bfd_elf32_gc_common_finalize_got_offsets,
	_bfd_elf32_gc_common_final_link, _bfd_elf64_gc_common_final_link,
	_bfd_elf32_gc_record_vtinherit, _bfd_elf32_gc_record_vtentry,
	_bfd_elf64_gc_sections, _bfd_elf64_gc_common_finalize_got_offsets,
	_bfd_elf64_gc_record_vtinherit, _bfd_elf64_gc_record_vtentry,
	_bfd_elf32_reloc_symbol_deleted_p,
	_bfd_elf64_reloc_symbol_deleted_p): Delete.
	(bfd_elf_link_record_dynamic_symbol,
	bfd_elf_link_record_local_dynamic_symbol,
	bfd_elf_final_link, bfd_elf_gc_sections,
	bfd_elf_gc_record_vtinherit, bfd_elf_gc_record_vtentry,
	bfd_elf_gc_common_finalize_got_offsets, bfd_elf_gc_common_final_link,
	bfd_elf_reloc_symbol_deleted_p): Declare.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define.
	* elf32-arm.h: Update for changed function names.  Remove local
	WILL_CALL_FINISH_DYNAMIC_SECTION define.
	* elf-hppa.h, elf-m10300.c, elf32-cris.c, elf32-d10v.c, elf32-dlx.c,
	* elf32-fr30.c, elf32-frv.c, elf32-h8300.c, elf32-hppa.c, elf32-i386.c,
	* elf32-iq2000.c, elf32-m32r.c, elf32-m68hc1x.c, elf32-m68k.c,
	* elf32-mcore.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
	* elf32-sh.c, elf32-sparc.c, elf32-v850.c, elf32-vax.c,
	* elf32-xstormy16.c, elf32-xtensa.c, elf64-alpha.c, elf64-hppa.c,
	* elf64-mmix.c, elf64-ppc.c, elf64-s390.c, elf64-sh64.c, elf64-sparc.c,
	* elf64-x86-64.c, elfxx-ia64.c, elfxx-mips.c, elfxx-target.h: Likewise.
	* elfxx-target.h (bfd_elfNN_bfd_final_link): Define.
	(bfd_elfNN_print_symbol): Define.
	* elfcode.h: Don't include elflink.h.
	(elf_bfd_discard_info, elf_reloc_symbol_deleted_p,
	elf_link_record_dynamic_symbol, elf_bfd_final_link, elf_gc_sections,
	elf_gc_common_finalize_got_offsets, elf_gc_common_final_link,
	elf_gc_record_vtinherit, elf_gc_record_vtentry,
	elf_link_record_local_dynamic_symbol): Don't define.
	* elflink.c: Update for changed function names.  Move elflink.h
	code here.
	* elflink.h: Delete file.
	* po/SRC-POTFILES.in: Regenerate.
	* po/bfd.pot: Regenerate.
doc/
	* bfdint.texi: Remove all mention of elflink.h.
2004-03-27 10:58:09 +00:00
Alan Modra
6a9cae7f5c * elf64-mmix.c (mmix_elf_relocate_section): Restore code setting
"name" for global syms accidentally removed in 2004-03-20 change.
2004-03-27 10:16:19 +00:00
Alan Modra
140f6c8e6d * elf-bfd.h (struct elf_reloc_cookie): Add r_sym_shift field.
* elflink.h: Replace all occurrences of sizeof (Elf_External_*)
	where Elf_External_* is different for 64 and 32 bit, with
	corresponding elf_size_info field.
	(struct elf_final_link_info): Use "bfd_byte *" instead
	of "Elf_External_Sym *" for external_syms and symbuf.
	(elf_link_adjust_relocs): Set up r_type_mask and r_sym_shift local
	vars and use instead of ELF_R_INFO and ELF_R_TYPE macros.
	(struct elf_link_sort_rela): Add "sym_mask" alias for "offset".
	(elf_link_sort_cmp1): Use sym_mask field instead of ELF_R_SYM.
	(elf_link_sort_cmp2): Adjust.
	(elf_link_sort_relocs): Set up r_sym_mask local var instead of
	using ELF_R_SYM macro.  Set u.sym_mask.
	(elf_bfd_final_link): Call _bfd_elf_stringtab_init instead of macro
	version, elf_stringtab_init.  Ditto for bfd_section_from_elf_index
	vs. section_from_elf_index.  Adjust Elf_External_Sym pointer
	arithmetic.  Pass bed to elf_link_flush_output_syms.  Adjust
	Elf_External_Dyn pointer arithmentic.  Use bed swap_dyn_in and
	swap_syn_out functions.  Rearrange dyn swap in/out switch.
	(elf_link_output_sym): Adjust Elf_External_Sym pointer arithmentic.
	Pass bed to elf_link_flush_output_syms.  Use bed swap_symbol_out.
	(elf_link_flush_output_syms): Add elf_backend_data arg.
	(elf_link_check_versioned_symbol): Likewise.
	(elf_link_output_extsym): Pass bed to elf_link_check_versioned_symbol.
	Adjust Elf_External_Sym pointer arithmetic.  Use bed swap_symbol_out.
	(elf_link_input_bfd): Use bfd_section_from_elf_index.  Set up
	r_type_mask and r_sym_shift local vars and use instead of ELF_R_SYM,
	ELF_R_TYPE and ELF_R_INFO macros.
	(elf_reloc_link_order): Select ELF32_R_INFO or ELF64_R_INFO invocation
	based on size rather than using ELF_R_INFO.
	(elf_gc_mark): Set up r_sym_shift local var and use instead of
	ELF_R_SYM macro.
	(struct alloc_got_off_arg): New.
	(elf_gc_common_finalize_got_offsets): Use elf_size_info instead of
	ARCH_SIZE.  Pass get entry size down to elf_gc_allocate_got_offsets.
	(elf_gc_allocate_got_offsets): Adjust.
	(elf_reloc_symbol_deleted_p): Usee cookie.r_sym_shift instead of
	ELF_R_SYM.  Use bfd_section_from_elf_index.
	(elf_bfd_discard_info): Set cookie.r_sym_shift.
	* elfcode.h (elf_stringtab_init, section_from_elf_index): Delete.
	(elf_slurp_symbol_table): Use bfd_section_from_elf_index.
2004-03-27 10:08:59 +00:00
Stan Shebs
14bde3788a Remove MPW support, no longer used.
* config.bfd (powerpc-*-mpw*): Remove configuration.
        * mpw-config.in, mpw-make.sed: Remove files.
        * ecoffswap.h [MPW_C]: Remove MPW-C-friendly version of code.
2004-03-27 05:45:50 +00:00
Alan Modra
555cd47695 * elf64-ppc.c (elf_backend_add_symbol_hook): Define.
(ppc64_elf_add_symbol_hook): New function.
	* elf-bfd.h (struct elf_backend_data <elf_add_symbol_hook>): Remove
	const from Elf_Internal_Sym param.
	* elflink.c (elf_link_add_object_symbols): Adjust.
	* elf-hppa.h (elf_hppa_add_symbol_hook): Adjust.
	* elf32-frv.c (elf32_frv_add_symbol_hook): Adjust.
	* elf32-i370.c (elf_backend_add_symbol_hook): Adjust.
	* elf32-m32r.c (m32r_elf_add_symbol_hook): Adjust.
	* elf32-m68hc1x.c (elf32_m68hc11_add_symbol_hook): Adjust.
	* elf32-m68hc1x.h (elf32_m68hc11_add_symbol_hook): Adjust.
	* elf32-ppc.c (ppc_elf_add_symbol_hook): Adjust.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Adjust.
	* elf32-v850.c (v850_elf_add_symbol_hook): Adjust.
	* elf64-alpha.c (elf64_alpha_add_symbol_hook): Adjust.
	* elf64-mmix.c (mmix_elf_add_symbol_hook): Adjust.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Adjust.
	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Adjust.
	* elfxx-ia64.c (elfNN_ia64_add_symbol_hook): Adjust.
	* elfxx-mips.c (_bfd_mips_elf_add_symbol_hook): Adjust.
	* elfxx-mips.h (_bfd_mips_elf_add_symbol_hook): Adjust.
2004-03-26 06:13:40 +00:00
Alan Modra
4ad4eba5b2 * elfxx-target.h (bfd_elfNN_bfd_link_add_symbols): Define.
* elf-bfd.h (_bfd_elf_link_add_archive_symbols): Delete.
	(_bfd_elf_sort_symbol, _bfd_elf_add_dt_needed_tag): Delete.
	(_bfd_elf_finalize_dynstr, bfd_elf32_bfd_link_add_symbols): Delete.
	(bfd_elf64_bfd_link_add_symbols): Delete.
	(bfd_elf_link_add_symbols): Declare.
	* elfcode.h (elf_bfd_link_add_symbols): Delete.
	* elflink.c: Include safe-ctype.h.
	(elf_add_dt_needed_tag): Rename from _bfd_elf_add_dt_needed_tag,
	make static.
	(elf_sort_symbol): Rename from _bfd_elf_sort_symbol, make static.
	(elf_finalize_dynstr): Rename from _bfd_elf_finalize_dynstr, make
	static.
	(elf_link_add_archive_symbols): Rename from
	_bfd_elf_link_add_archive_symbols, make static.
	(elf_link_add_object_symbols): New function.  Corresponding
	elflink.h function converted to use elf_size_info.
	(bfd_elf_link_add_symbols): Likewise.
	(bfd_elf_size_dynamic_sections): Adjust.
	* elflink.h (elf_bfd_link_add_symbols): Delete.
	(elf_link_add_object_symbols): Delete.
	* elf32-gen.c (elf32_generic_link_add_symbols): Call
	bfd_elf_link_add_symbols.
	* elf64-gen.c (elf64_generic_link_add_symbols): Likewise.
2004-03-26 05:55:15 +00:00
Alan Modra
5a580b3ac2 bfd/
* elflink.h (elf_link_add_object_symbols): Add DT_NEEDED for as-needed
	and chained shared libs only if dynsym.  Clear dynsym on forced-local.

	* elf-bfd.h (_bfd_elf_add_dynamic_entry): Declare.
	(bfd_elf32_add_dynamic_entry, bfd_elf64_add_dynamic_entry): Delete.
	(_bfd_elf_add_dt_needed_tag): Declare.
	(_bfd_elf_sort_symbol): Declare.
	(_bfd_elf_finalize_dynstr): Declare.
	(RELOC_FOR_GLOBAL_SYM): Formatting.
	* elfcode.h (elf_add_dynamic_entry): Delete.
	* elflink.c (_bfd_elf_add_dynamic_entry): New function.  Corresponding
	elflink.h function converted to use elf_size_info.
	(_bfd_elf_add_dt_needed_tag): Likewise.
	(_bfd_elf_sort_symbol): Likewise.
	(_bfd_elf_finalize_dynstr): Likewise.
	(compute_bucket_count): Likewise.
	(bfd_elf_size_dynamic_sections): Likewise.  Check result of
	_bfd_elf_strtab_add before calling _bfd_elf_strtab_addref.
	(elf_adjust_dynstr_offsets, elf_collect_hash_codes): Moved from..
	* elflink.h: ..here.
	(sort_symbol, add_dt_needed_tag): Delete.
	(elf_add_dynamic_entry, elf_finalize_dynstr): Delete.
	(compute_bucket_count, NAME(bfd_elf,size_dynamic_sections)): Delete.
	Update all users.
	* elf32-arm.h (add_dynamic_entry): Update.  Remove casts.
	* elf32-cris.c (add_dynamic_entry): Likewise.
	* elf32-hppa.c (add_dynamic_entry): Likewise.
	* elf32-i370.c (add_dynamic_entry): Likewise.
	* elf32-i386.c (add_dynamic_entry): Likewise.
	* elf32-m32r.c (add_dynamic_entry): Likewise.
	* elf32-m68k.c (add_dynamic_entry): Likewise.
	* elf32-ppc.c (add_dynamic_entry): Likewise.
	* elf32-s390.c (add_dynamic_entry): Likewise.
	* elf32-sh.c (add_dynamic_entry): Likewise.
	* elf32-sparc.c (add_dynamic_entry): Likewise.
	* elf32-vax.c (add_dynamic_entry): Likewise.
	* elf32-xtensa.c (add_dynamic_entry): Likewise.
	* elf64-alpha.c (add_dynamic_entry): Likewise.
	* elf64-hppa.c (add_dynamic_entry): Likewise.
	* elf64-ppc.c (add_dynamic_entry): Likewise.
	* elf64-s390.c (add_dynamic_entry): Likewise.
	* elf64-sparc.c (add_dynamic_entry): Likewise.
	* elf64-x86-64.c (add_dynamic_entry): Likewise.
	* elfxx-ia64.c (add_dynamic_entry): Likewise.
	* elfxx-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
	* elf-m10300.c (_bfd_mn10300_elf_size_dynamic_sections): Likewise.
	* elf32-frv.c (elf32_frv_size_dynamic_sections): Likewise.
	* elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
ld/
	* emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Update
	size_dynamic_sections call.
2004-03-25 12:48:45 +00:00
Paul Brook
d507cf36a6 * bfd/elf32-arm.h (arm_print_private_bfd_data): Add EABI v3.
* binutils/readelf.c (decode_ARM_machine_flags): Add EABI v3.
	* gas/config/tc-arm.c (meabi_flags): New variable.
	(arm_parse_eabi): New function.
	(md_begin): Set flags for EABI v3.
	(arm_eabis): Add.
	(arm_long_opts): Add meabi.
	* include/elf/arm.h (EF_ERM_BE8, EF_ARM_LE8, EF_ARM_EABI_VER3): Add.
	* doc/as.texinf <ARM>: Document -meabi.
	* doc/c-arm.texi: Ditto.
2004-03-23 23:05:52 +00:00
Bob Wilson
88d65ad6f1 bfd/ChangeLog:
* elf32-xtensa.c (elf_xtensa_check_relocs): Remove code to read
	literal tables and check for relocs outside of literal pools.
	(elf_xtensa_make_sym_local): Don't clear ELF_LINK_NON_GOT_REF flag.
	(elf_xtensa_fix_refcounts): Don't check ELF_LINK_NON_GOT_REF or
	set DF_TEXTREL.
	(elf_xtensa_size_dynamic_sections): Don't add DT_TEXTREL entry.
	(elf_xtensa_relocate_section): Read literal tables and check for
	dynamic relocations in read-only sections and not in literal pools.
gas/ChangeLog:
	* config/tc-xtensa.c (xtensa_post_relax_hook): Create literal
	tables even when use_literal_section flag is not set.
2004-03-23 01:37:00 +00:00
Alan Modra
b9cf773d1a include/
PR 51.
	* bfdlink.h (struct bfd_link_info): Add wrap_char.

bfd/
	PR 51.
	* linker.c (bfd_wrapped_link_hash_lookup): Handle info->wrap_char.

ld/
	PR 51.
	* emultempl/ppc64elf.em (ppc_create_output_section_statements): Set
	link_info.wrap_char.
2004-03-22 22:58:04 +00:00
Hans-Peter Nilsson
e4a2175c7d * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_16_GOTPLT,
R_CRIS_16_GOTPLT>: Also error if there's no PLT for a symbol
	not defined by the executable, or defined in a DSO.
	<eliding run-time relocation of .got>: Initialize GOT entry for a
	function symbol or ELF_LINK_HASH_NEEDS_PLT statically in an
	executable.
	(cris_elf_gc_sweep_hook): Improve fallthrough marking.
	(elf_cris_try_fold_plt_to_got): Improve head comment.  Do not fold
	a PLT reloc to GOT for an executable.
	(elf_cris_adjust_dynamic_symbol): Only fold a .got.plt entry with
	.got for a DSO and explain why.
	(elf_cris_discard_excess_program_dynamics): Also lose GOT-relocs
	and unreferenced symbols for which a PLT is defined.  Adjust
	dynamic-symbol pruning correspondingly, to make sure we don't lose
	a dynamic symbol also defined by a DSO.
2004-03-22 04:08:39 +00:00
Alan Modra
b2a8e7660e * elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Add input_bfd, input_section
and rel args.  Group input and output args.  Wrap to 80 columns.
	* elf-m10200.c, elf-m10300.c, elf32-arm.h, elf32-avr.c,
	elf32-cris.c, elf32-d10v.c, elf32-fr30.c, elf32-h8300.c,
	elf32-hppa.c, elf32-i386.c, elf32-i860.c, elf32-ip2k.c,
	elf32-iq2000.c, elf32-m68hc1x.c, elf32-m68k.c, elf32-mcore.c,
	elf32-msp430.c, elf32-openrisc.c, elf32-ppc.c, elf32-s390.c,
	elf32-sparc.c, elf32-v850.c, elf32-vax.c, elf32-xstormy16.c,
	elf32-xtensa.c, elf64-alpha.c, elf64-mmix.c, elf64-ppc.c,
	elf64-s390.c, elf64-sparc.c, elf64-x86-64.c, elfxx-ia64.c: Update
	RELOC_FOR_GLOBAL_SYMBOL invocation.
2004-03-22 02:28:17 +00:00
H.J. Lu
59c2e50f29 bfd/
2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>

	* elf-bfd.h (RELOC_FOR_GLOBAL_SYMBOL): Report error if
	unresolved symbols in objects aren't allowed.

	* elf-hppa.h (elf_hppa_relocate_section): Properly handle
	unresolved symbols.
	(elf_hppa_remark_useless_dynamic_symbols): Likewise.
	(elf_hppa_unmark_useless_dynamic_symbols):
	* elf32-frv.c (elf32_frv_relocate_section): Likewise.
	* elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
	(elf32_hppa_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf32-sh.c (sh_elf_relocate_section): Likewise.
	* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
	* elfxx-mips.c (mips_elf_calculate_relocation): Likewise.

	* elf-m10200.c (mn10200_elf_relocate_section): Use
	RELOC_FOR_GLOBAL_SYMBOL.
	* elf32-avr.c (elf32_avr_relocate_section): Likewise.
	* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m68hc1x.c (m68hc11_get_relocation_value): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-v850.c (v850_elf_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-mmix.c (mmix_elf_relocate_section): Likewise.

include/

2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdlink.h (bfd_link_info): Correct comments for the
	unresolved_syms_in_objects field.

ld/

2004-03-20  H.J. Lu  <hongjiu.lu@intel.com>

	* lexsup.c (parse_args): Don't set unresolved_syms_in_objects
	or unresolved_syms_in_shared_libs for -Bdynamic and -Bstatic.
2004-03-20 23:16:43 +00:00
Dave Anglin
36751eee4a * elf32-hppa.c (elf32_hppa_check_relocs): Handle R_PARISC_PCREL32.
(final_link_relocate): Likewise.
2004-03-20 00:42:10 +00:00
Dave Anglin
9992270f89 * elf-hppa.h (elf_hppa_reloc_final_type): Handle selectors for
R_PARISC_PCREL32 and R_PARISC_PCREL64 relocations.
	* tc-hppa.c (cons_fix_new_hppa): Check for PC relative base type.
	(pa_comm): Set BSF_OBJECT in symbol flags.
2004-03-19 19:19:53 +00:00
Alan Modra
05864e2a71 * Makefile.am: Run "make dep-am".
* Makefile.in: Regenerate.
	* aclocal.m4: Regenerate.
	* config.in: Regenerate.
	* po/bfd.pot: Regenerate.
doc/
	* Makefile.in: Regenerate.
2004-03-19 07:00:51 +00:00
Alan Modra
0f8a2703a9 * elflink.c (_bfd_elf_merge_symbol): Revert last change. Move
type and size change code to where it was previously.  Remove
	dt_needed param.  Treat old weak syms as strong if new sym is
	from a shared lib, even when old sym is from another shared
	lib.  Remove unnecessary tests of oldweak and newweak.  Correct
	comments.
	(_bfd_elf_add_default_symbol): Remove dt_needed param.  Update
	_bfd_elf_merge_symbol calls.
	* elflink.h (elf_link_add_object_symbols): Update calls.  Remove
	dt_needed local var.  Update comments.
	* elf-bfd.h (_bfd_elf_merge_symbol): Update prototype.
	(_bfd_elf_add_default_symbol): Likewise.
2004-03-19 01:36:45 +00:00
Alan Modra
f218a464b2 * elflink.c (_bfd_elf_merge_symbol): Reinstate code to handle
strong syms in one shared object overriding weak syms in another.
2004-03-18 23:02:06 +00:00
Alan Modra
4a43e768f1 bfd/
* elf-bfd.h (struct elf_obj_tdata): Delete dt_soname field.  Add
	dyn_lib_class field.  Rearrange for better packing.
	(elf_dt_soname): Delete.
	(elf_dyn_lib_class): Define.
	* elf.c (bfd_elf_set_dt_needed_name): Update comment.
	(bfd_elf_set_dt_needed_soname): Delete.
	(bfd_elf_set_dyn_lib_class): New function.
	* elflink.h (add_dt_needed_tag): New function.  Split out from..
	(elf_link_add_object_symbols): ..here.  Rename "name" to "soname".
	Use elf_dyn_lib_class to set dt_needed and add_needed.  Move fallback
	initialization of soname.
	(elf_link_check_versioned_symbol): Test elf_dyn_lib_class instead of
	elf_dt_soname.
	* bfd-in.h (enum dynamic_lib_link_class): New.
	(bfd_elf_set_dt_needed_soname): Delete.
	(bfd_elf_set_dyn_lib_class): Declare.
	* bfd-in2.h: Regenerate.
ld/
	* ld.texinfo: Add --as-needed doco.
	* ldmain.c (as_needed): New global var.
	* ldmain.h (as_needed): Declare.
	* lexsup.c (option_values): Add OPTION_AS_NEEDED and
	OPTION_NO_AS_NEEDED.
	(ld_options): Likewise.
	(parse_args): Handle them.
	* ldlang.h (lang_input_statement_type): Add as_needed field.
	* ldlang.c (new_afile): Set p->as_needed.
	* emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): New function.
	(gld${EMULATION_NAME}_try_needed): Use bfd_elf_set_dyn_lib_class.
	(ld_${EMULATION_NAME}_emulation): Set LDEMUL_RECOGNIZED_FILE entry.

	* ldlang.c (open_input_bfds): Remove useless cast.
	(lang_do_assignments_1): Likewise.
	(lang_for_each_input_section): Delete.
2004-03-18 12:50:20 +00:00
Alan Modra
79349b0926 * elflink.c (_bfd_elf_merge_symbol): Rewrite weak symbol handling.
(_bfd_elf_add_default_symbol): Remove indirect BFD_ASSERTs.
	* elflink.h (elf_link_add_object_symbols): Don't clear dt_needed in
	symbol loop.  Instead use add_needed to flag tag as written.
2004-03-18 04:32:17 +00:00
Nathan Sidwell
d13d89fafa * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Correct
logic for null_input_bfd detection.
2004-03-17 12:27:05 +00:00
Alan Modra
9183ed4b1b Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff*. 2004-03-17 00:46:25 +00:00
Mark Kettenis
021d7868d0 * netbsd-core.c (netbsd_core_file_p) [CORE_FPU_OFFSET]: Remove
code.
2004-03-16 12:22:18 +00:00
Alan Modra
51992aec7a * elflink.c (elf_link_read_relocs_from_section): Don't use
NUM_SHDR_ENTRIES in end of reloc calc.  Move NULL shdr check..
	(_bfd_elf_link_read_relocs): ..to here.
	* elf32-ppc.c (ppc_elf_relax_section): Formatting.
2004-03-16 10:29:12 +00:00
Alan Modra
ccba357f63 * configure.in (HOST_64BIT_TYPE, HOST_U_64BIT_TYPE): Don't override
values selected in configure.host.  Require both to be defined
	before setting BFD_HOST_64_BIT_DEFINED.  Protect assignment to
	corresponding BFD_HOST vars with quotes.
	<${host64}-${target64}-${want64} in *true*>: Don't exempt gcc;
	Always require BFD_HOST_64_BIT_DEFINED.
	<file_ptr type>: Find off_t size before emitting message.  Combine
	off_t and ftello64 conditional.
	* configure: Regenerate.
2004-03-16 09:05:22 +00:00
Alan Modra
419783084d * elf32-m32r.c (m32r_elf_create_dynamic_sections): Fix pointer
aliasing warning.  Remove trailing whitespace throughout file.
2004-03-16 01:49:30 +00:00
Dave Anglin
d63b5ed92a * elf-hppa.h (elf_hppa_relocate_section): Pass input_bfd instead of
input_section in calls to get_dyn_name.
	* elf64-hppa.c (get_dyn_name): Change type of first argument to "bfd *".	Use section id of first section in input BFD to build dynamic name for
	local symbols.
	(elf64_hppa_check_relocs): Pass abfd in call to get_dyn_name.
2004-03-15 17:53:45 +00:00
Alan Modra
8ce8c090f3 * bfd-in.h (bfd_int64_t, bfd_uint64_t): New types.
(BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Don't define here.
	(bfd_getb64, bfd_getl64, bfd_get_bits): Return bfd_uint64_t.
	(bfd_getb_signed_64, bfd_getl_signed_64): Return bfd_int64_t.
	(bfd_putb64, bfd_putl64, bfd_put_bits): Accept bfd_uint64_t.
	* configure.in (HOST_U_64BIT_TYPE): Set when sizeof long is 8.
	(BFD_HOST_64_BIT_DEFINED, BFD_HOST_64_BIT, BFD_HOST_U_64_BIT): Set
	when using long.
	* libbfd.c (EIGHT_GAZILLION, COERCE64): Use bfd_int64_t.
	(bfd_getb64): Return bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
	(bfd_getl64, bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
	(bfd_putb64): Accept bfd_uint64_t.  Enable when BFD_HOST_64_BIT.
	(bfd_putl64, bfd_put_bits, bfd_get_bits): Likewise.
	* dwarf2.c (struct attribute): Use bfd_int64_t and bfd_uint64_t.
	(read_8_bytes, read_indirect_string, read_address): Likewise.
	(read_abbrevs, parse_comp_unit): Likewise.
	* targets.c (struct bfd_target): Likewise.
	* aix386-core.c (NO_GET64, NO_PUT64, NO_GETS64): Define and use.
	* hppabsd-core.c: Likewise.  Formatting.
	* hpux-core.c: Likewise.
	* irix-core.c: Likewise.
	* netbsd-core.c: Likewise.
	* osf-core.c: Likewise.
	* ptrace-core.c: Likewise.
	* sco5-core.c: Likewise.
	* trad-core.c: Likewise.
	* configure: Regenerate.
	* bfd-in2.h: Regenerate.
2004-03-15 14:21:43 +00:00
Alan Modra
edeb6e24a9 * bfd-in.h (bfd_getb64, bfd_getl64): Replace bfd_byte* with void*.
(bfd_getb32, bfd_getl32, bfd_getb16, bfd_getl16): Likewise.
	(bfd_getb_signed_64, bfd_getl_signed_64): Likewise.
	(bfd_getb_signed_32, bfd_getl_signed_32): Likewise.
	(bfd_getb_signed_16, bfd_getl_signed_16): Likewise.
	(bfd_putb64, bfd_putl64, bfd_putb32, bfd_putl32): Likewise.
	(bfd_putb16, bfd_putl16, bfd_get_bits, bfd_put_bits): Likewise.
	* libbfd.c: Likewise in function definitions.
	(bfd_put_8): Mask with 0xff rather than casting to char.
	(bfd_putb16, bfd_putl16, bfd_putb32, bfd_putl32): Likewise.
	(bfd_putb64, bfd_putl64, bfd_put_bits): Likewise.
	(H_PUT_64, H_PUT_32, H_PUT_16, H_PUT_8): Remove casts, simplify.
	(H_PUT_S64, H_PUT_S32, H_PUT_S16, H_PUT_S8): Likewise.
	(H_GET_64, H_GET_32, H_GET_16, H_GET_8): Likewise.
	(H_GET_S64, H_GET_S32, H_GET_S16, H_GET_S8): Likewise.
	* libaout.h (H_PUT_64 H_PUT_32, H_PUT_16): Remove casts, simplify.
	(H_PUT_S64, H_PUT_S32, H_PUT_S16): Likewise.
	(H_GET_64, H_GET_32, H_GET_16): Likewise.
	(H_GET_S64, H_GET_S32, H_GET_S16): Likewise.
	* archive.c (do_slurp_coff_armap): Update swap prototype.
	* coff-tic54x.c (tic54x_getl32): Replace bfd_byte* with void*.
	(tic54x_getl_signed_32): Likewise.
	(tic54x_putl32): Likewise.  Mask with 0xff rather than casting to char.
	* mach-o.c (bfd_mach_o_read_header): Update get32 prototype.
	* pdp11.c (bfd_getp32): Make static, replace bfd_byte* with void*.
	(bfd_getp_signed_32, bfd_putp32): Likewise.
	* targets.c (struct bfd_target): Use void* in place of bfd_byte* for
	bfd_getx64, bfd_getx_signed_64, bfd_putx64, bfd_getx32,
	bfd_getx_signed_32, bfd_putx32, bfd_getx16, bfd_getx_signed_16,
	bfd_putx16, bfd_h_getx64, bfd_h_getx_signed_64, bfd_h_putx64,
	bfd_h_getx32, bfd_h_getx_signed_32, bfd_h_putx32, bfd_h_getx16,
	bfd_h_getx_signed_16, bfd_h_putx16.
	* aix386-core.c (NO_GET, NO_GETS, NO_PUT): Update prototypes.
	* hppabsd-core.c: Similarly.  Rename NO_SIGNED_GET to NO_GETS.
	* hpux-core.c: Likewise.
	* irix-core.c: Likewise.
	* netbsd-core.c: Likewise.
	* osf-core.c: Likewise.
	* ptrace-core.c: Likewise.
	* sco5-core.c: Likewise.
	* trad-core.c: Likewise.
	* bfd-in2.h: Regenerate.
2004-03-15 12:23:11 +00:00
Alan Modra
c1b954e2d7 * config.bfd: Add x86-64 vector to NetBSD/i386 if 64bit BFD is
selected.
2004-03-15 00:02:56 +00:00
Mark Kettenis
85cfd8d379 * config.bfd: Add x86_64-*-openbsd*.
* configure.in (x86_64-*-openbsd*): Set COREFILE to
netbsd-core.lo.
* configure: Regenerate.
2004-03-13 12:33:48 +00:00
Nick Clifton
d1f161ea0a Ignore data-only sections when checking interworking status 2004-03-12 11:57:05 +00:00
Jim Wilson
8b6f268359 Patch from Steve Ellcey for potential race condition.
* elfxx-ia64.c (plt_full_entry): Change ld8 to ld8.acq.
2004-03-09 20:50:56 +00:00
Fred Fish
79cda7cfd9 Reviewed and approved by Alan Modra <amodra@bigpond.net.au>
2004-03-05  Fred Fish  <fnf@redhat.com>
	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Just force
	mips16 symbols to be even rather than testing first for even/odd.
	(_bfd_mips_elf_link_output_symbol_hook): Ditto.
2004-03-05 23:50:54 +00:00
Nathan Sidwell
e5caec89a0 * elf.c (map_sections_to_segments): Ignore .tbss sections for
layout purposes.

	* ldlang.c (lang_add_section): Don't force SEC_LOAD on
	SEC_THREAD_LOCAL.
	(IGNORE_SECTION): Ignore .tbss sections too.
	(lang_size_sections_1): .tbss sections do not advance dot.

	* ld-scripts/size.exp: New.
	* ld-scripts/size-[12].{d,s,t}: New.
2004-03-05 11:26:05 +00:00
Alexandre Oliva
02bb6eae73 * elflink.c (bfd_elf_record_link_assignment): Mark undefweak and
undefined symbols as hash_new.
2004-03-03 21:31:10 +00:00
Joern Rennecke
ae51a426eb 2003-03-03 Andrew Stubbs <andrew.stubbs@superh.com>
opcodes:
	* sh-dis.c (print_insn_sh): Don't disassemble fp instructions in
	nofpu mode.  Add BFD type bfd_mach_sh4_nommu_nofpu.
	* sh-opc.h: Add sh4_nommu_nofpu architecture and adjust instructions
	accordingly.
bfd:
	* archures.c: Add bfd_mach_sh4_nommu_nofpu.
	* cpu-sh.c: Ditto.
	* elf32-sh.c: Ditto.
	* bfd-in2.h: Regenerate.
include/elf:
	* sh.h: Add EF_SH4_NOMMU_NOFPU.
gas:
	* config/tc-sh.c (md_parse_option): Add -isa=sh4-nofpu and
	-isa=sh4-nommu-nofpu options. Adjust help messages accordingly.
	(sh_elf_final_processing): Output BFD type sh4_nofpu if that is
	the most general type or the user specifically requested it.
	(md_assemble): Add a new error message for when an instruction
	is understood, but is not allowed due to an -isa option.
2004-03-03 18:01:49 +00:00
Alexandre Oliva
3b712a1afc * elf32-frv.c (struct frv_pic_relocs_info): Added fixups and
dynrelocs.
(_frv_count_got_plt_entries): Initialize them.
(frv_pic_relocs_info_find): Add insert argument.  Adjust all
callers.
(frv_pic_relocs_info_for_global): Likewise.
(frv_pic_relocs_info_for_local): Likewise.
(frv_pic_merge_early_relocs_info): New.
(_frv_resolve_final_relocs_info): Use it in case one entry maps to
another.
(_frv_add_dyn_reloc): Add entry argument.  Adjust all callers.
Check that we don't exceed the allocated count for entry.
(_frv_add_rofixup): Likewise.
(_frv_emit_got_relocs_plt_entries): Adjust for coding standards.
(elf32_frv_finish_dynamic_sections): Improve error message in case
we emit too few rofixup entries.
2004-03-02 23:01:18 +00:00
Richard Sandiford
676a64f422 Add fr450 support. 2004-03-01 10:11:46 +00:00
H.J. Lu
0ad989f9fd 2004-02-28 H.J. Lu <hongjiu.lu@intel.com>
* elf-bfd.h (_bfd_elf_link_add_archive_symbols): New prototype.

	* elflink.h (is_global_data_symbol_definition): Moved to
	elflink.c.
	(elf_link_is_defined_archive_symbol): Likewise.
	(elf_link_add_archive_symbols): Likewise. Renamed to
	_bfd_elf_link_add_archive_symbols.

	* elflink.c (elf_link_is_defined_archive_symbol): Get the size
	of ELF symbol table entry from backend.
	(_bfd_elf_link_add_archive_symbols): Call bfd_link_add_symbols
	instead of elf_link_add_object_symbols.
2004-02-29 06:11:52 +00:00
Alexandre Oliva
ec3391e704 * elf-bfd.h (struct elf_backend_data): Added
elf_backend_can_make_relative_eh_frame,
elf_backend_can_make_lsda_relative_eh_frame and
elf_backend_encode_eh_address.
(_bfd_elf_encode_eh_address): Declare.
(_bfd_elf_can_make_relative): Declare.
* elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use new
hooks to decide whether to attempt to make_relative and
make_lsda_relative.
(_bfd_elf_write_section_eh_frame_hdr): Call encode_eh_address.
(_bfd_elf_can_make_relative): New.
(_bfd_elf_encode_eh_address): New.
* elf32-frv.c (frv_elf_use_relative_eh_frame): New.
(frv_elf_encode_eh_address): New.
(elf_backend_can_make_relative_eh_frame): Define.
(elf_backend_can_make_lsda_relative_eh_frame): Define.
(elf_backend_encode_eh_address): Define.
* elfxx-target.h
(elf_backend_can_make_relative_eh_frame): Define.
(elf_backend_can_make_lsda_relative_eh_frame): Define.
(elf_backend_encode_eh_address): Define.
(elfNN_bed): Add them.
2004-02-28 00:35:45 +00:00
Alexandre Oliva
e6deed0a00 * elf32-frv.c (elf32_frv_howto_table) <R_FRV_LABEL16>: Set
complain_on_overflow to signed.
2004-02-28 00:33:33 +00:00
H.J. Lu
b60d7a1a49 2004-02-27 H.J. Lu <hongjiu.lu@intel.com>
* elflink.h (sort_symbol): New.
	(elf_link_add_object_symbols): Use a sorted symbol array for
	weakdef.
2004-02-27 17:02:48 +00:00
Martin Schwidefsky
1c3ff0f2a5 * elf32-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
for pc relative relocs.
	(elf_s390_relocate_section): Likewise.
	* elf64-s390.c (allocate_dynrelocs): Use SYMBOL_REFERENCES_LOCAL
	for pc relative relocs.
	(elf_s390_relocate_section): Likewise.
2004-02-27 10:03:05 +00:00
H.J. Lu
de9811afe2 2004-02-26 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_check_relocs): Fix call to
	count_dyn_reloc.
2004-02-26 17:45:19 +00:00
H.J. Lu
ac33696c68 2004-02-25 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_dyn_reloc_entry): Add the reltext.
	field to track if a relocation is against readonly section.
	(count_dyn_reloc): Take a new argument for rent->reltext.
	(elfNN_ia64_check_relocs): Adjust call to count_dyn_reloc.
	(get_reloc_section): Don't set ia64_info->reltext here.
	(allocate_dynrel_entries): Set ia64_info->reltext here.
2004-02-26 03:54:06 +00:00
Alexandre Oliva
072c89031a * elf32-frv.c (FRV_SYM_LOCAL): Weak undefined doesn't imply local.
(_frv_emit_got_relocs_plt_entries): Decay relocation to protected
function's descriptor to symbol+offset, and map local undefweak
symbol to NULL function descriptor.
(elf32_frv_relocate_section): Likewise.
2004-02-24 16:39:01 +00:00
Nick Clifton
aca305d96d Add support for 64bit NETBSD cores 2004-02-23 15:25:20 +00:00
Jakub Jelinek
646411fba0 * elflink.h (size_dynamic_sections): If not adding DT_FLAGS and
DF_BIND_NOW is set in info->flags, create DT_BIND_NOW dynamic entry.
2004-02-23 09:01:58 +00:00
H.J. Lu
1de1a3173e 2004-02-21 H.J. Lu <hongjiu.lu@intel.com>
* elflink.c (_bfd_elf_merge_symbol): Properly handle undefined
	symbols with non-default visibility.
2004-02-21 23:05:13 +00:00
Danny Smith
3c9d0484ea * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Clear
IMAGE_SCN_MEM_WRITE on known sections only.
2004-02-21 06:16:02 +00:00
Jakub Jelinek
a876ecf9be * elf32-ppc.c (allocate_dynrelocs): Create dynsym for undef weak
symbols used in PIE relocs.
2004-02-20 17:36:36 +00:00
Jakub Jelinek
a8a6d7cef4 * elf32-sparc.c (elf32_sparc_finish_dynamic_sections): Clear
.plt sh_entsize.
2004-02-19 11:01:39 +00:00
Daniel Jacobowitz
d080fcd283 * configure.in: Update version to 2.15.90.
* configure: Regenerate.
2004-02-18 17:17:17 +00:00
Richard Sandiford
d25aed713b bfd/
* elfxx-mips.c (mips_elf_calculate_relocation): Use
	_bfd_elf_symbol_refs_local_p to decide whether to decay
	a GOT_PAGE/GOT_OFST pair to GOT_DISP/addend.
	(_bfd_mips_elf_check_relocs): Add a global GOT entry for GOT_PAGE
	relocs if the symbol wasn't defined by a regular object file.
	Don't check the symbol's dynindx.

ld/testsuite/
	* ld-mips/elf/elf-rel-xgot-{n32,n64-linux}.d: Update after 2004-02-02
	changes to the way large constants are added.
	* ld-mips/elf/elf-rel-got-{n32,n64-linux}.d: Likewise.  Adjust order
	of GOT entries after today's change to the handling of GOT_PAGE
	relocations.
2004-02-17 10:19:24 +00:00
Andrew Cagney
d7ce59e3ac 2004-02-16 Andrew Cagney <cagney@redhat.com>
* bfd-in.h (file_ptr, ufile_ptr): Configure type using
	@bfd_file_ptr@.
	* bfd-in2.h: Re-generate.
2004-02-16 18:46:40 +00:00
Andrew Cagney
ca0b76868a 2004-02-14 Andrew Cagney <cagney@redhat.com>
* configure.host (HDEFINES): When hppa*-*-hpux*, define
	_LARGEFILE64_SOURCE.
2004-02-14 15:38:20 +00:00
Andrew Cagney
340b6d9120 2004-02-13 Andrew Cagney <cagney@redhat.com>
* elf.c	(vma_page_aligned_bias): New function.
	(assign_file_positions_except_relocs)
	(assign_file_positions_for_segments): Replace broken modulo
	arithmetic with call to vma_page_aligned_bias.
2004-02-13 14:58:58 +00:00
Andrew Cagney
7c1927339f 2004-02-11 Andrew Cagney <cagney@redhat.com>
* bfd-in.h: Update copyright.
	(bfd_tell): Change return type to file_ptr.
	* bfd-in2.h: Re-generate.
	* cache.c: Update copyright.
	(bfd_cache_lookup_worker): Use real_fseek, do not cast offset
	parameter.
	(close_one): Use real_ftell.
	* bfdio.c: Update copyright.
	(real_ftell, real_fseek): New functions.
	(bfd_tell): Use real_fseek and real_ftell, change return type to
	file_ptr.
	(bfd_seek): Use real_ftell and real_fseek, change type of
	file_position to a file_ptr.
	* libbfd-in.h: Update copyright.
	(real_ftell, real_fseek): Declare.
	* libbfd.h: Re-generate.
2004-02-11 23:23:20 +00:00
Andrew Cagney
c1ea0c0914 * config.in: Re-generate. 2004-02-11 22:05:35 +00:00
Andrew Cagney
1012372a47 2004-02-11 Andrew Cagney <cagney@redhat.com>
* configure.in (AC_CHECK_FUNCS): Check for ftello, ftello64,
	fseeko and fseeko64.  Determine bfd_file_ptr.
	* configure: Re-generate.
2004-02-11 22:01:00 +00:00
Nick Clifton
3255318a04 Add support for relaxing the 32bit ldc/stc instructions. 2004-02-09 12:15:57 +00:00
Nick Clifton
0d5f99947b Catch GOT offsets for a symbol which have no associated GOT subsection. 2004-02-09 10:30:13 +00:00
Richard Sandiford
174fd7f955 * bfd-elf.h (elf_backend_name_local_section_symbols): New hook.
* elf.c (swap_out_syms): Use it to decide whether local section
	symbols should be named.
	* elfxx-target.h (elf_backend_name_local_section_symbols): New macro.
	* elfxx-mips.h (_bfd_mips_elf_name_local_section_symbols): Declare.
	(elf_backend_name_local_section_symbols): Define.
	* elfxx-mips.c (_bfd_mips_elf_name_local_section_symbols): New.
2004-02-09 08:04:00 +00:00
H.J. Lu
03609792ae 2004-01-30 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_brl): New function.
	(elfNN_ia64_relax_section): Optimize brl to br during the relax
	finalize pass.
2004-01-30 23:13:28 +00:00
Alexandre Oliva
ea01195e38 * elf32-frv.c (elf32_frv_always_size_sections): Initialize pointer
to bfd_link_hash_entry passed by reference to
_bfd_generic_link_add_one_symbol.
2004-01-30 21:11:37 +00:00
H.J. Lu
838e70c548 2004-01-25 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relocate_section): Disallow imm
	relocations against dynamic symbols.
2004-01-26 20:32:08 +00:00
Daniel Jacobowitz
4f199be3eb * elf32-arm.h (elf32_arm_check_relocs): Revert part of 2004-01-13
change.
2004-01-23 16:51:48 +00:00
Nick Clifton
28d39d1a3a Stop indexed move byte instructions from being relaxed. 2004-01-21 11:17:53 +00:00
Danny Smith
66bed356fc * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Don't remove
IMAGE_SCN_MEM_WRITE flag from .text section if WP_TEXT
	flag has been cleared.
2004-01-20 21:04:19 +00:00
Kazu Hirata
7e89635aac * coff-h8300.c: Add and adjust comments about relaxation.
* elf32-h8300.c: Likewise.
2004-01-19 17:02:45 +00:00
Kazu Hirata
e804e83606 * coff-h8300.c: Fix comment typos.
* elf32-h8300.c: Likewise.
2004-01-16 23:50:20 +00:00
Kazu Hirata
630a7b0ab7 * coff-h8300.c: Add comments about relaxation.
* elf32-h8300.c: Likewise.
2004-01-16 23:35:49 +00:00
Maciej W. Rozycki
f8b7303064 * gettext.m4: Quote names of macros to be defined by AC_DEFUN
throughout.

* acinclude.m4: Quote names of macros to be defined by AC_DEFUN
throughout.
* aclocal.m4: Regenerate.
* configure: Regenerate.
2004-01-14 13:41:37 +00:00
Ian Lance Taylor
32159579f0 * elf64-mips.c (mips_elf64_slurp_one_reloc_table): Call
mips_elf64_rtype_to_howto instead of using howto_table.

	* gas/mips/mips16-64.d: New test.
	* gas/mips/mips.exp: Run it.
2004-01-14 03:06:02 +00:00
Daniel Jacobowitz
c84cd8eead * elf32-arm.h (elf32_arm_final_link_relocate): Check that we created
the .plt section.
	(elf32_arm_check_relocs): Don't increment the PLT refcount for
	relocs which would not use the PLT.
2004-01-13 21:09:34 +00:00
Alan Modra
680a337845 * elf64-ppc.c (ppc64_elf_check_relocs): Ignore !SEC_ALLOC relocs.
(ppc64_elf_gc_sweep_hook): Likewise.
	(ppc64_elf_size_dynamic_sections): Test for .plt directly.
2004-01-13 00:31:07 +00:00
Nick Clifton
faca21e56e oops - add changeog entry for previous delta 2004-01-12 15:04:05 +00:00
Alan Modra
818a27acd6 * dwarf2.c: Convert to C90, remove unneeded casts and prototypes. 2004-01-12 05:34:16 +00:00
Kazu Hirata
96ef141947 * elf32-h8300.c: Fix formatting. 2004-01-11 08:05:10 +00:00
Kazu Hirata
babfd660dd * elf32-cris.c (cris_elf_gc_sweep_hook): Return early if no
dynamic object is present.  Declare r_symndx and h in an inner
	scope.
	* elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
2004-01-11 07:40:24 +00:00
Daniel Jacobowitz
7359ea6525 * elf32-arm.h (struct elf32_arm_relocs_copied): Remove pc_count.
(elf32_arm_copy_indirect_symbol): Don't copy pc_count.
	(elf32_arm_final_link_relocate): Handle PLT32 and PC24 relocs
	identically.  Do not emit PC24 relocations for shared libraries.
	(elf32_arm_gc_sweep_hook): Handle PLT32 and PC24 relocs
	identically.  Don't adjust pc_count.
	(elf32_arm_check_relocs): Handle PLT32 and PC24 relocs identically.
	Set ELF_LINK_HASH_NEEDS_PLT for both.  Don't adjust pc_count; don't
	adjust count for branch relocations.
	(allocate_dynrelocs): Correct typo in call to
	WILL_CALL_FINISH_DYNAMIC_SYMBOL.  Never allocate space for
	PC24 or PLT32 relocs when linking.
2004-01-09 16:53:45 +00:00
Nick Clifton
44e8895283 Remainder of fixes for ARM WINCE support 2004-01-09 13:59:55 +00:00
Nick Clifton
1e7fef1d44 (coff_arm_relocate_section): Do not alter relocs that are not partial_inplace
during a relocatable link.
2004-01-08 16:46:56 +00:00
Kazu Hirata
4f075348c0 * elf32-m68k.c (elf_m68k_gc_sweep_hook): Terminate early
if no dynamic object is present.  Declare r_symndx and h in an
	inner scope.
2004-01-08 11:01:37 +00:00
H.J. Lu
de0d9f330b 2004-01-07 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_ia64_relax_section): Don't install
	trampoline if it is known out of range.
2004-01-07 21:34:24 +00:00
Alexandre Oliva
5153284539 2003-12-17 Alexandre Oliva <aoliva@redhat.com>
* elf32-frv.c (_frv_osec_readonly_p): New.
(_frv_emit_got_relocs_plt_entries): Don't emit rofixup for
undefweak symbol.
(_frv_count_got_plt_entries): Adjust expected count accordingly.
(elf32_frv_relocate_section): Likewise.  Error out if attempting
to emit rofixups or dynamic relocs in read-only segments.  Use
_bfd_elf_section_offset to adjust r_offsets in rofixups and
dynamic relocations.
2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Compute dynamic
relocations or fixups involving merged sections correctly.  Avoid
crash when undefined symbol is referenced by R_FRV_32 or
R_FRV_FUNCDESC_VALUE.
2003-12-02  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Add output_offset of
input section holding local symbol to addend of R_FRV_32 or
R_FRV_FUNCDESC_VALUE dynamic relocation.
2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_modify_segment_map): Add link info arg.
(elf32_frv_always_size_sections): Don't store pointer to
__stacksize symbol in sec_info.
(elf32_frv_modify_segment_map): Look it up here.
2003-11-26  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Emit the address
of the lazy PLT entry, not only its offset, as the low word of a
function descriptor.
2003-11-10  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_always_size_sections): Define __stacksize
if a hash table entry already exists but is not a definition.
2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (frv_elf_link_hash_table_create): Use bfd_zalloc.
(_frv_add_rofixup): Don't inline.
(_frv_emit_got_relocs_plt_entries): Use NULL as funcdesc address
for undefweak symbols.
(elf32_frv_relocate_section): Avoid crash while computing
relocation when linking with shared library.  Only emit rofixups
and dynamic relocations for alloc&load sections.  Mark binaries
with inter-segment relocations for relocation as a unit.
(_frv_create_got_section): Rename .rofixup.got to .rofixup.
(DEFAULT_STACK_SIZE): New.
(_frv_count_got_plt_entries): Fix thinko in deciding whether to
emit rofixups or dynamic relocs when linking dynamic non-PIE
executables.
(elf32_frv_size_dynamic_sections): Generate rofixup on PIEs and
shared libs too.  Reserve the last entry for the GOT pointer.
(elf32_frv_finish_dynamic_sections): Emit it.
(elf32_frv_always_size_sections): New.
(elf32_frv_modify_segment_map): New.
(elf32_frv_check_relocs): Reserve relocs32 space only in ALLOC
sections.
(frv_elf_merge_private_bfd_data): Clear PIC bit if FDPIC is set.
(frv_elf_print_private_bfd_data): Handle FDPIC and LIBPIC.
(elf_backend_always_size_sections): New.
(elf_backend_modify_segment_map): New.
2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
* config.bfd: Added frv-*-*linux*.
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Use idx 0 for
ABS section, instead of crashing.
(elf32_frv_relocate_section): Don't crash before warning about
different segments in non-PIC relocation.
2003-10-17  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Don't warn on LABEL24
relocs to undefweak symbols.
(elf32_frv_relocate_section): Ditto for undefined symbols.
2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_create_dynamic_sections): Make sure
gotfixup section was created.
2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_howto_table): Change GOT12,
FUNCDESC_GOT12, GOTOFF12 and FUNCDESC_GOTOFF12 to
complain_overflow_signed.
* elf32-frv.c (_frv_add_rofixup): Do not error out if contents
have not been allocated.
(_frv_emit_got_relocs_plt_entries): Return non-void.  Assert
privfd only if dynamic sections were created.
(elf32_frv_relocate_section): Compute gprel_segment, and use it
for GPREL relocs.  When linking relocatable FDPIC executables,
emit warnings for relocations that would be illegal on PIE or
shared libraries.  Emit rofixup for R_FRV_32 only if input object
is not FDPIC.
(_frv_create_got_section): Define _gp symbol in the rofixup
section.
(elf32_frv_finish_dynamic_sections): If rofixups needed but
dynamic sections missing, error out requesting -melf32frvfd.
2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Rearrange
computation of addends from section and global or local symbol
value.  Change return type to bfd_boolean, and return a failure if
a dynamic FUNCDESC or FUNCDESC_VALUE relocation that requires a
nonzero addend is required.
(elf32_frv_relocate_section): Likewise.  Print error for
unsupported nonzero addends.
2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (FRV_SYM_LOCAL): In the absence of dynamic sections,
force everything local.
(_frv_emit_got_relocs_plt_entries): Cope with NULL sec.
* elf32-frv.c (struct frv_elf_link_hash_table): Added sgotfixup.
(frv_gotfixup_section): New.
(FRV_SYM_LOCAL): Accept undefweak and local common symbols.
(struct frv_pic_relocs_info): Split relocs into relocs32, relocsfd
and relocsfdv.
(_frv_add_rofixup): New.
(_frv_emit_got_relocs_plt_entries): Generate fixups for non-PIE
fdpic executables.  Use FRV_SYM_LOCAL more widely to simplify and
improve some ugly conditions.
(elf32_frv_relocate_section): Likewise.  Reject inter-segment
relocations in fdpic.
(_frv_create_got_section): Create .rofixup.got section.
(struct _frv_dynamic_got_info): Added fixups.
(_frv_count_got_plt_entries): Account in-GOT relocations into
relocs32, relocsfd and relocsfdv.  Account them into relocs or
fixups, as appropriate.
(elf32_frv_size_dynamic_sections): Size rofixup section.  Simplify
sizing of gotrel.
(elf32_frv_finish_dynamic_sections): Verify that the right number
of relocations and fixups was generated.
(elf32_frv_check_relocs): Compute relocs32, relocsfd and
relocsfdv.
* elf32-frv.c (FRV_SYM_LOCAL): New macro, used instead of
SYMBOL_CALLS_LOCAL and SYMBOL_REFERENCES_LOCAL.
(FRV_FUNCDESC_LOCAL): New macro, used to decide whether a function
descriptor of a (formerly-)global symbol is local.
(struct frv_pic_relocs_info): Adjust comments.
(_frv_emit_got_relocs_plt_entries): Adjust.
(elf32_frv_relocate_section): Likewise.
(_frv_count_got_plt_entries): Likewise.
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Don't add global
symbol's value to addend in the common preamble.  Decay dynamic
symbols to section+offset if they bind or call locally, for GOT
and FUNCDESC_VALUE, respectively.
(elf32_frv_relocate_section): Likewise.
(elf32_frv_check_relocs): Don't register as dynamic symbols of
internal or hidden visibility.
2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frv_emit_got_relocs_plt_entries): Get addend as
argument, so as to not call _bfd_elf_rel_local_sym to compute it.
(elf32_frv_relocate_section): Pass relocation addend in.  Use
original relocation addend to look up the got relocs/plt entries
table.  Do not call _bfd_elf_rel_local_sym.  Don't error out when
processing relocations that reference .scommon symbols.
2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
Introduce support for dynamic linking.
* elf32-frv.c (R_FRV_FUNCDESC_VALUE): Mark it as 64 bits.
(elf32_frv_rel_32_howto, elf32_frv_rel_funcdesc_howto,
elf32_frv_rel_funcdesc_value_howto): New REL descriptors.
(frv_reloc_type_lookup): Return REL howtos for executables and
dynamic libraries.
(frv_info_to_howto_rel): New.
(struct frv_elf_link_hash_table): New.
(frv_hash_table, frv_got_section, frv_gotrel_section,
frv_plt_section, frv_pltrel_section, frv_relocs_info,
frv_got_initial_offset, frv_plt_initial_offset): New macros.
(frv_elf_link_hash_table_create): New.
(struct frv_pic_relocs_info): New.
(frv_pic_relocs_info_hash, frv_pic_relocs_info_eq): New.
(frv_pic_relocs_info_find): New.
(frv_pic_relocs_info_for_global, frv_pic_relocs_info_for_local):
New.
(FRV_LZPLT_BLOCK_SIZE, FRV_LZPLT_RESOLVE_LOC): New.
(_frv_add_dyn_reloc, _frv_osec_to_segment): New.
(_frv_emit_got_relocs_plt_entries): New.
(elf32_frv_relocate_section): Add support for dynamic linking.
Handle new relocations.
(_frv_create_got_section): New.
(elf32_frv_create_dynamic_sections): New.
(ELF_DYNAMIC_INTERPRETER): New.
(struct _frv_dynamic_got_info): New.
(_frv_count_got_plt_entries): New.
(struct _frv_dynamic_got_plt_info): New.
(_frv_compute_got_alloc_data): New.
(_frv_get_got_entry, _frv_get_fd_entry): New.
(_frv_assign_got_entries, _frv_assign_plt_entries): New.
(_frv_resolve_final_relocs_info): New.
(elf32_frv_size_dynamic_sections): New.
(elf32_frv_finish_dynamic_sections): New.
(elf32_frv_adjust_dynamic_symbol): New.
(elf32_frv_finish_dynamic_symbol): New.
(elf32_frv_check_relocs): Handle new relocs.  Explain how the
whole thing works.
(elf_info_to_howto_rel): Define.
(bfd_elf32_bfd_link_hash_table_create): Define.
(elf_backend_create_dynamic_sections): Define.
(elf_backend_adjust_dynamic_symbol): Define.
(elf_backend_size_dynamic_sections): Define.
(elf_backend_finish_dynamic_symbol): Define.
(elf_backend_finish_dynamic_sections): Define.
(elf_backend_want_got_sym): Define.
(elf_backend_got_header_size): Define.
(elf_backend_want_got_plt): Define.
(elf_backend_plt_readonly): Define.
(elf_backend_want_plt_sym): Define.
(elf_backend_plt_header_size): Define.
(elf_backend_may_use_rel_p): Define.
(elf_backend_may_use_rela_p): Define.
(elf_backend_default_use_rela_p): Define.
2003-08-08  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (R_FRV_FUNCDESC_VALUE, R_FRV_FUNCDESC_GOTOFF12,
R_FRV_FUNCDESC_GOTOFFHI, R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12,
R_FRV_GOTOFFHI, R_FRV_GOTOFFLO): New.
(frv_reloc_map): Map the corresponding BFD relocs to them.
(frv_reloc_type_lookup): ... and back to BFD relocs.
* reloc.c: New relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
R_FRV_FUNCDESC_GOTLO): New.
(frv_reloc_map): Map the corresponding BFD relocs to them.
(frv_reloc_type_lookup): ... and back to BFD relocs.
* reloc.c: New relocs.
* bfd-in2.h, libbfd.h: Rebuilt.
2004-01-06 19:18:59 +00:00
Maciej W. Rozycki
4301eeb1c7 * elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf32_bed): Redefine to get a separate backend data structure for
traditional targets.
* elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf64_bed): Redefine to get a separate backend data structure for
traditional targets.
* elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional
targets to support pages of up to 64kB.
(elf32_bed): Redefine to get a separate backend data structure for
traditional targets.
2004-01-05 22:09:38 +00:00
Mark Kettenis
0647ed71ac * elf32-sparc.c (elf32_sparc_grok_psinfo): New function. 2004-01-04 09:24:27 +00:00
Nick Clifton
61adc1a4d5 Add support for FreeBSD cores 2004-01-02 17:39:51 +00:00
Nick Clifton
b50c15dce9 Add m68k-uclinux target 2004-01-02 16:37:12 +00:00
Alan Modra
c9e214e571 Split ChangeLog files. 2004-01-02 11:16:21 +00:00
Alan Modra
2627de8318 * elflink.h (elf_gc_sections): Warn when gc-sections option is ignored.
* elf32-h8300.c (elf32_h8_gc_mark_hook): New function.
	(elf32_h8_gc_sweep_hook): New function.
	(elf_backend_gc_mark_hook): Define.
	(elf_backend_gc_sweep_hook): Define.
	(elf_backend_can_gc_sections): Define.
2004-01-01 10:01:45 +00:00
Nick Clifton
6edf0760c5 Add support for m32r-linux target, including a RELA ABI and PIC. 2003-12-19 11:44:01 +00:00
Nick Clifton
c4bf77942d Do not mark .reloc sections as containing debug info. 2003-12-19 10:01:59 +00:00
Richard Sandiford
30ac9238df bfd/
* elf32-mips.c (elf_mips_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16,
	_bfd_mips_elf_lo16_reloc for R_MIPS_LO16 and R_MIPS_GNU_REL_LO16,
	and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.  Change rightshift
	to 16 for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(_bfd_mips_elf32_gprel16_reloc): Remove special case.
	(mips_elf_gprel32_reloc, mips32_64bit_reloc): Likewise.

	* elf64-mips.c (mips_elf64_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16, _bfd_mips_elf_lo16_reloc
	for R_MIPS_LO16 and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.
	Change R_MIPS_HI16's rightshift to 16.
	(mips_elf64_howto_table_rela): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.
	Use _bfd_mips_elf_generic_reloc for R_MIPS_GOT16 as well.
	(mips_elf64_hi16_reloc, mips_elf64_got16_reloc): Delete.
	(mips_elf64_shift6_reloc): Remove special case.  Use
	_bfd_mips_elf_generic_reloc instead of returning bfd_reloc_continue.

	* elfn32-mips.c (prev_reloc_section): Delete.
	(prev_reloc_address, prev_reloc_addend): Delete.
	(elf_mips_howto_table_rel, elf_mips_howto_table_rela): As for
	elf64-mips.c
	(GET_RELOC_ADDEND, SET_RELOC_ADDEND): Delete.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(mips_elf_gprel16_reloc): Delete use of GET_RELOC_ADDEND.
	(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
	(mips16_jump_reloc, mips16_gprel_reloc): Likewise.
	(mips_elf_shift6_reloc): Likewise.  Delete use of SET_RELOC_ADDEND.

	* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Use
	_bfd_relocate_contents to install an in-place addend.
	(mips_hi16): New structure.
	(mips_hi16_list): Moved from elf32-mips.c.
	(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_got16_reloc): New functions.
	(_bfd_mips_elf_lo16_reloc, _bfd_mips_elf_generic_reloc): New functions.
	(mips_elf_calculate_relocation): Assume addend is unshifted.
	(_bfd_mips_elf_relocate_section): Don't apply the howto rightshift
	on top of the usual high-part shift.  Don't shift the addend right
	before calling mips_elf_calculate_relocation.

	* elfxx-mips.h (_bfd_mips_elf_hi16_reloc): Declare.
	(_bfd_mips_elf_got16_reloc, _bfd_mips_elf_lo16_reloc): Declare.
	(_bfd_mips_elf_generic_reloc): Declare.

gas/
	* config/tc-mips.c (mips_need_elf_addend_fixup): Delete.
	(md_apply_fix3): Remove bfd_install_relocation workarounds.
	(tc_gen_reloc): Likewise. Factor handling of pc-relative relocations
	and treat fx_addnumber as relative to the relocation address.

gas/testsuite/
	* gas/mips/mips16-jalx.d: Use -mabi=o64.
	* gas/mips/mips16.d: Likewise.
	* gas/mips/elf-rel17.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2003-12-18 10:23:10 +00:00
Nick Clifton
87cc7031ac Only skip one instance of each prefix character, if they are present. 2003-12-16 11:10:42 +00:00
Nick Clifton
25c80428af Ensure that correct flags are set on known PE section types. 2003-12-15 11:50:11 +00:00
Nick Clifton
d0a5adde99 Updated Romanian translation 2003-12-12 20:42:51 +00:00
Alan Modra
ac7bbf74d3 * elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Check for
NULL dyn_h.
2003-12-12 14:11:58 +00:00
Nick Clifton
03394ac999 (INCLUDE_SECTION_IN_SEGMENT): Skip PT_GNU_STACK segments. 2003-12-11 18:10:19 +00:00
Richard Sandiford
9719ad4149 * elfxx-mips.h, elfxx-mips.c, cpu-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-08 20:04:34 +00:00
Alan Modra
754021d045 * elf-bfd.h (struct elf_backend_data): Remove "bfd *" and add
"elflink_hash_entry *" param to elf_backend_link_output_symbol_hook.
	Add "elflink_hash_entry *" param to elf_backend_output_arch_syms.
	* elflink.h (elf_link_output_sym): Add "elflink_hash_entry *" param,
	and pass to output_symbol_hook.
	(elf_bfd_final_link): Adjust elf_link_output_sym calls.
	(elf_link_output_extsym): Likewise.
	(elf_link_input_bfd): Likewise.
	* elf32-sh64.c (sh64_elf_link_output_symbol_hook): Adjust.
	* elf32-v850.c (v850_elf_link_output_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_link_output_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_link_output_symbol_hook): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_link_output_symbol_hook): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_link_output_symbol_hook): Likewise.
	* elf64-sparc.c (sparc64_elf_output_arch_syms): Likewise.
	* elf64-hppa.c (elf64_hppa_link_output_symbol_hook): Likewise.
	Validate dynh->h against h.
	* elf64-ppc.c (struct ppc_link_hash_entry): Add adjust_done bitfield.
	(link_hash_newfunc): Init it.
	(adjust_opd_syms): New function.
	(ppc64_elf_edit_opd): Set adjust_done when global .opd sym adjusted.
	Set opd.adjust for all .opd relocs.  Call adjust_opd_syms.
	(ppc64_elf_tls_optimize): Adjust possible .opd sym values here.
	(ppc64_elf_relocate_section): Also adjust syms not a multiple of 24.
	(ppc64_elf_output_symbol_hook): New function.
	(elf_backend_link_output_symbol_hook): Define.
2003-12-08 13:05:11 +00:00
Richard Sandiford
11a2be4ddc * elf32-mips.c, elfn32-mips.c, elf64-mips.c: Convert prototypes.
Remove casts that were only needed for K&R compatibility.
2003-12-07 21:24:28 +00:00
Nick Clifton
d3793eaa60 Fixes for use of ARM_26D reloc in arm-wince toolchain. 2003-12-05 11:30:18 +00:00
H.J. Lu
a070c2b16c 2003-12-04 H.J. Lu <hongjiu.lu@intel.com>
* elf32-ppc.c (ppc_elf_relax_section): Don't check relax_finalizing.
2003-12-04 22:48:20 +00:00
H.J. Lu
d9c458fcc1 bfd/
2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* elfxx-ia64.c (elfNN_ia64_relax_section): Use the
	need_relax_finalize field in link_info instead of
	relax_finalizing to check if the relax finalize pass is being
	done.

include/

2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* bfdlink.h (bfd_link_info): Change relax_finalizing to
	need_relax_finalize.

ld/

2003-12-04  H.J. Lu  <hongjiu.lu@intel.com>

	* emultempl/ia64elf.em (gld${EMULATION_NAME}_after_parse): Set
	link_info.need_relax_finalize to TRUE.

	* ldlang.c (lang_process): Use link_info.need_relax_finalize
	instead of link_info.relax_finalizing.
	* ldmain.c (main): Likewise.
2003-12-04 22:43:36 +00:00
Nick Clifton
d21356d8ba Change ARM26* to ARM_26* in comments to match definitions.
Replace hard-coded constants with appropriate definitions (ARM_26*).
2003-12-04 17:46:24 +00:00
Alan Modra
1a101a4220 * coff-i860.c (coff_i860_reloc_nyi): Return bfd_reloc_not_supported.
* elf-m10300.c (elf32_mn10300_finish_hash_table_entry): Warning fixes.
	(mn10300_elf_relax_section): Likewise.
	* nlm32-alpha.c (ONES): Define.
	(nlm32_alpha_howto_table): Use it to avoid warnings.
2003-12-04 12:08:42 +00:00
Alan Modra
66becf3266 * elf32-i386.c (elf_i386_object_p): Delete.
(elf_backend_object_p): Don't define.
	* elf32-s390.c (elf_s390_object_p): No need to alloc tdata here.
	* elf32-sh.c (sh_elf_object_p): Likewise.
	* elf32-sparc.c (elf32_sparc_object_p): Likewise.
	* elf64-alpha.c (elf64_alpha_object_p): Likewise.
	* elf64-s390.c (elf_s390_object_p): Likewise.
	* elf64-x86-64.c (elf64_x86_64_elf_object_p): Likewise.
2003-12-04 03:03:27 +00:00
Nick Clifton
8884595866 Add support for the M32R2 processor. 2003-12-03 17:38:48 +00:00
Nick Clifton
f8fc344381 Add vax-linux-gnu target 2003-12-03 15:07:17 +00:00
Alan Modra
6ad841a183 Rename bfd_link_hash_entry field "next" -> "und_next". 2003-12-02 23:00:00 +00:00
Nick Clifton
f9d1e83fed Add Romanian translation for bfd. 2003-12-02 10:49:10 +00:00
Alan Modra
9fa06c65f0 make "dep-am" 2003-12-02 08:14:35 +00:00