Commit Graph

1786 Commits

Author SHA1 Message Date
Tom Rix
f1f0d9ab14 XCOFF64 fixes. For setting arch/mach and for R_BR relocations. 2002-05-10 21:20:16 +00:00
Alan Modra
16a1038833 * elf32-i386.c (elf_i386_relocate_section): Remove overflow checks
addend in 2002-05-09 commit.
2002-05-10 07:34:52 +00:00
Alan Modra
c432ba1a88 * elf32-hppa.c (elf32_hppa_size_stubs): Revert part of 2002-05-04,
don't look for stubs on all undefined syms.
2002-05-10 02:03:47 +00:00
Alan Modra
d0965404a4 daily update 2002-05-10 00:00:04 +00:00
Alan Modra
8fc39d5d55 * elf64-ppc.c (RA_REGISTER_MASK, RA_REGISTER_SHIFT): Delete.
(ppc64_elf_howto_raw <R_PPC64_RELATIVE>): Not pc_relative or
	pcrel_offset.
2002-05-09 11:40:16 +00:00
Alan Modra
4a335f3dc2 * elf32-i386.c (elf_howto_table): Comments.
(elf_i386_relocate_section): Handle more relocs for relocatable
	linking and against SEC_MERGE sections.
2002-05-09 06:34:43 +00:00
Alan Modra
aed0229aa8 daily update 2002-05-09 00:00:05 +00:00
Alan Modra
41fcb14eb3 * elf32-ppc.c (ppc_elf_create_got): New function.
(ppc_elf_create_dynamic_sections): Call ppc_elf_create_got before
	_bfd_elf_create_dynamic_sections.  Correct .plt flags.
	(ppc_elf_check_relocs): Use ppc_elf_create_got in place of
	_bfd_elf_create_got_section.
2002-05-08 05:12:54 +00:00
Alan Modra
fc432c1fd5 daily update 2002-05-08 00:00:04 +00:00
Alan Modra
b491616acb * elf-bfd.h (struct elf_backend_data): Add rela_normal.
* elfxx-target.h (elf_backend_rela_normal): Define.
	(elfNN_bed): Init rela_normal.
	* elflink.h (elf_link_input_bfd <emit_relocs>): Handle adjustment
	for section symbols here if rela_normal.  Simplify abs section test.
	* elf-m10200.c (mn10200_elf_relocate_section): If relocatable,
	return immediately.  Remove code handling relocatable linking.
	* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
	* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
	* elf32-i370.c (i370_elf_relocate_section): Likewise.
	* elf32-i860.c (elf32_i860_relocate_section): Likewise.
	* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
	* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
	* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
	* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
	* elf32-s390.c (elf_s390_relocate_section): Likewise.
	* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
	* elf64-s390.c (elf_s390_relocate_section): Likewise.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	* elfxx-ia64.c (elfNN_ia64_relocate_section): Likewise.
	* elf32-arm.h (elf32_arm_relocate_section): Likewise #ifndef USE_REL.
	* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
	* elf-m10200.c (elf_backend_rela_normal): Define.
	* elf-m10300.c (elf_backend_rela_normal): Define.
	* elf32-fr30.c (elf_backend_rela_normal): Define.
	* elf32-i370.c (elf_backend_rela_normal): Define.
	* elf32-i860.c (elf_backend_rela_normal): Define.
	* elf32-m68k.c (elf_backend_rela_normal): Define.
	* elf32-mcore.c (elf_backend_rela_normal): Define.
	* elf32-openrisc.c (elf_backend_rela_normal): Define.
	* elf32-ppc.c (elf_backend_rela_normal): Define.
	* elf32-s390.c (elf_backend_rela_normal): Define.
	* elf32-xstormy16.c (elf_backend_rela_normal): Define.
	* elf64-ppc.c (elf_backend_rela_normal): Define.
	* elf64-s390.c (elf_backend_rela_normal): Define.
	* elf64-x86-64.c (elf_backend_rela_normal): Define.
	* elfxx-ia64.c (elf_backend_rela_normal): Define.
	* elf32-arm.h (elf_backend_rela_normal): Define #ifndef USE_REL.
	* elf32-m32r.c (elf_backend_rela_normal): Likewise.
2002-05-07 00:16:53 +00:00
Alan Modra
862eabf1fb daily update 2002-05-07 00:09:35 +00:00
Nick Clifton
df212a7e7f Fix check for overflow of relocation for the Thumb BL instruction. 2002-05-06 13:47:55 +00:00
Alan Modra
3decf53c32 * elflink.h (elf_link_input_bfd <emit_relocs>): Adjust r_offset
when not relocatable.  Fix reloc_emitter call for K&R.
2002-05-06 12:49:58 +00:00
Alan Modra
fd984e46b6 * elflink.h (elf_link_input_bfd <emit_relocs>): Adjust r_offset
when not relocatable.  Fix reloc_emitter call for K&R.
2002-05-06 08:54:44 +00:00
Alan Modra
dba8e4d779 daily update 2002-05-06 00:00:03 +00:00
Alan Modra
e7ba5db766 daily update 2002-05-05 00:00:05 +00:00
Alan Modra
f46c2da63e * elf64-ppc.c (ppc64_elf_relocate_section): Reinstate code
reloading local sym addend mistakenly removed in 2002-05-01 change.

	* dwarf2.c (struct line_head): Make prologue_length a bfd_vma.
	(read_abbrevs): Change "offset" param to bfd_vma.
	(parse_comp_unit): Change "version" and addr_size to unsigned ints.
	Change "abbrev_offset" to bfd_vma.
	(read_indirect_string): Use correct conversion chars in error
	message format string, cast bfd_vma's to unsigned long.
	(read_abbrevs): Likewise.
	(read_attribute_value): Likewise.
	(decode_line_info): Likewise.
	(scan_unit_for_functions): Likewise.
	(parse_comp_unit): Likewise.
2002-05-04 12:01:02 +00:00
Tom Rix
59862849e4 Fix problem with objdump and 16 bit R_BA. 2002-05-04 10:07:18 +00:00
Alan Modra
b4655ea917 * elf32-hppa.c (struct elf32_hppa_link_hash_table): Add
bfd_count top_index, input_list, all_local_syms.
	(elf32_hppa_setup_section_lists): New function, split from
	elf32_hppa_size_stubs.
	(elf32_hppa_next_input_section): Likewise.
	(group_sections): Likewise.
	(get_local_syms): Likewise.
	(elf32_hppa_size_stubs): Adjust for split out functions.  Look for
	stubs on undefined syms too.
	(elf32_hppa_set_gp): Use bfd_link_hash* instead of elf_link_hash*.
	Only access htab elf fields when we have and elf hash table.
	* elf32-hppa.h (elf32_hppa_setup_section_lists): Declare.
	(elf32_hppa_next_input_section): Declare.
2002-05-04 02:06:22 +00:00
Alan Modra
301e31397f * opncls.c (_bfd_new_bfd_contained_in): Check return value of
_bfd_new_bfd.
2002-05-04 01:31:08 +00:00
Alan Modra
ae0c415a5c daily update 2002-05-04 00:00:06 +00:00
H.J. Lu
7c5fcef7ab 2002-05-03 H.J. Lu (hjl@gnu.org)
* elfxx-mips.c (mips_elf_link_hash_entry): Add forced_local.
	(mips_elf_link_hash_newfunc): Initialize forced_local to false.
	(mips_elf_record_global_got_symbol): Call _bfd_mips_elf_hide_symbol
	to hide a global symbol.
	(_bfd_mips_elf_hide_symbol): Return if forced_local is true. Set
	forced_local to true.
2002-05-03 19:53:20 +00:00
Alan Modra
38110bc4c3 daily update 2002-05-03 00:00:04 +00:00
Richard Henderson
84de6048cc * elf64-alpha.c (elf64_alpha_relocate_section): Force relative relocs
vs SHN_UNDEF to zero.
2002-05-02 17:46:59 +00:00
Alan Modra
c061c2d8bb * elf64-ppc.c (ppc64_elf_howto_raw <R_PPC64_SECTOFF>): Change to a
16 bit reloc.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(ppc64_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.
	* elf32-ppc.c (ppc_elf_howto_raw <R_PPC_SECTOFF>): Correct.
	(ppc_elf_reloc_type_lookup): Map from BFD_RELOC_16_BASEREL to
	SECTOFF reloc.
2002-05-02 12:35:25 +00:00
Alan Modra
805fc79928 * elf64-ppc.c (ppc64_elf_addr16_ha_reloc): Delete.
(ppc64_elf_ha_reloc): New function.
	(ppc64_elf_brtaken_reloc): New function.
	(ppc64_elf_sectoff_reloc): New function.
	(ppc64_elf_sectoff_ha_reloc): New function.
	(ppc64_elf_toc_reloc): New function.
	(ppc64_elf_toc_ha_reloc): New function.
	(ppc64_elf_toc64_reloc): New function.
	(ppc64_elf_unhandled_reloc): New function.
	(ppc64_elf_howto_raw): Use the above.
	<R_PPC64_RELATIVE>: Mark pc_relative, pcrel_offset.
	<R_PPC64_SECTOFF>: Not pc_relative or pcrel_offset.  Fix dst_mask.
	<R_PPC64_SECTOFF_DS>: Likewise.
	(IS_ABSOLUTE_RELOC): Update.
	(struct ppc_link_hash_table): Add have_undefweak.
	(ppc64_elf_link_hash_table_create): Init.
	(func_desc_adjust): Set have_undefweak.
	(ppc64_elf_func_desc_adjust): Call func_desc_adjust earlier.  Only
	add the .sfpr blr when have_undefweak.
	(ppc64_elf_setup_section_lists): Check hash table flavour.
	(ppc64_elf_next_input_section): Move output_section->owner test to
	ppc64elf.em.
	(ppc64_elf_set_toc): Rename to ppc64_elf_toc, remove info param
	and relocatable test.  Return TOCstart and don't set elf_gp.
	(ppc64_elf_relocate_section): Correct BRTAKEN/BRNTAKEN branch
	offset calculation.  Add assert on weak sym branch tweaks.
	* elf64-ppc.h (ppc64_elf_set_toc): Delete.
	(ppc64_elf_toc): Declare.
	(ppc64_elf_next_input_section): Update.

	* emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation):
	Adjust for ppc64_elf_set_toc change.  #include libbfd.h.
	(build_section_lists): Do output_section tests here.
2002-05-02 09:48:15 +00:00
Alan Modra
8c9776af97 daily update 2002-05-02 00:00:06 +00:00
Alan Modra
818c39a387 * syms.c (_bfd_stab_section_find_nearest_line): Don't bomb on NULL
file_name.
2002-05-01 07:36:39 +00:00
Alan Modra
721956f4fe * elf64-ppc.c (CROR_151515, CROR_313131): Define.
(ppc64_elf_relocate_section): Use them.  Don't look for plt calls
	on R_PPC64_ADDR24 relocs.  Require a nop or no link reg on plt
	call branches.  Correct undefined weak destination.
	(ppc64_elf_func_desc_adjust): Always create at least one blr in
	.sfpr, and correct case where either only savef* or restf* is
	needed.

	Long branch stubs, multiple stub sections.
	* elf64-ppc.h (ppc64_elf_setup_section_lists): Declare.
	(ppc64_elf_next_input_section): Declare.
	* elf64-ppc.c: Move linker-only prototypes.
	(STUB_SUFFIX): Define.
	(enum ppc_stub_type): New.
	(struct ppc_stub_hash_entry): New.
	(struct ppc_branch_hash_entry): New.
	(struct ppc_link_hash_entry): Add stub_cache, oh.
	(struct ppc_link_hash_table): Add stub_hash_table etc.  Remove
	sstub.  Add sbrlt, srelbrlt, has_14bit_branch, stub_iteration.
	Rename plt_overflow to stub_error.
	(ppc_stub_hash_lookup): Define.
	(ppc_branch_hash_lookup): Define.
	(stub_hash_newfunc): New function.
	(branch_hash_newfunc): New function.
	(link_hash_newfunc): Init new fields.
	(ppc64_elf_link_hash_table_create): Likewise.
	(ppc64_elf_link_hash_table_free): New function.
	(ppc_stub_name): New function.
	(ppc_get_stub_entry): New function.
	(ppc_add_stub): New function.
	(create_linkage_sections): Use bfd_make_section_anyway.  Create
	.branch_lt and .rela.branch_lt sections.  Don't create .stub.
	(ppc64_elf_check_relocs): Set has_14bit_branch on R_PPC64_REL14*,
	and set up for plt call stubs.  Link func and func desc syms.
	(ppc64_elf_gc_sweep_hook): Handle REL14* as per REL24.
	(func_desc_adjust): Avoid hash lookup when func desc sym available
	via shortcut, and set links when processing.
	(ppc64_elf_hide_symbol): Likewise.
	(allocate_dynrelocs): Don't allocate stub section here.
	(ppc64_elf_size_dynamic_sections): Handle sbrlt and srelbrlt.
	Remove sstub code.
	(ppc_type_of_stub): New function.
	(build_one_stub): Delete.
	(ppc_build_one_stub): New function.
	(ppc_size_one_stub): New function.
	(ppc64_elf_setup_section_lists): New function.
	(ppc64_elf_next_input_section): New function.
	(group_sections): New function.
	(get_local_syms): New function.
	(ppc64_elf_size_stubs): Rewrite.
	(ppc64_elf_build_stubs): Rewrite.
	(ppc64_elf_relocate_section): Look up stub entry for REL24
	relocs.  Don't propagate REL14* to dynamic objects.  Look for long
	branch stubs if REL14* or REL24 relocs won't reach.
	(bfd_elf64_bfd_link_hash_table_free): Define.
2002-05-01 02:34:20 +00:00
Alan Modra
ac6f77a8d3 daily update 2002-05-01 00:00:04 +00:00
Mark Mitchell
09c2219b6b * bfd/config.bfd: Add support for powerpc-*-windiss. 2002-04-30 17:42:34 +00:00
Tom Rix
07b678c0c3 Fix a problem with static linking with cross tools. 2002-04-30 04:32:51 +00:00
Alan Modra
ebd6292812 daily update 2002-04-30 00:00:05 +00:00
Alan Modra
7ba93af661 daily update 2002-04-29 00:00:04 +00:00
Tom Rix
dbe341c625 Rewrite xcoff*_ppc_relocate_section. 2002-04-28 14:34:39 +00:00
Alan Modra
985142a4c6 * elf64-x86-64.c (struct elf64_x86_64_dyn_relocs): Comment typo.
* elf32-hppa.c (elf32_hppa_final_link): Formatting.
2002-04-28 12:29:46 +00:00
Alan Modra
201f5c0309 daily update 2002-04-28 00:00:05 +00:00
Alan Modra
e32eb77491 daily update 2002-04-27 00:00:05 +00:00
Alan Modra
e54fdaa5c9 * opncls.c (bfd_make_readable): Call bfd_section_list_clear.
* xcofflink.c (xcoff_link_add_dynamic_symbols): Likewise.
2002-04-26 13:43:10 +00:00
Alan Modra
a50c18456e * elflink.h (elf_bfd_final_link): Ensure input bfd class is the
same as the output before calling elf_link_input_bfd.
2002-04-26 12:59:23 +00:00
Alan Modra
fd55a5dffb typo fix in last change 2002-04-26 06:01:20 +00:00
Alan Modra
eba9104496 * coffcode.h (coff_compute_section_file_positions): Set
section_tail after shuffling section list.
2002-04-26 03:16:43 +00:00
Alan Modra
d5ba2a0169 daily update 2002-04-26 00:00:05 +00:00
Nick Clifton
3c25c5f6e8 The patch contains mostly fixes for the disassembler. It also fixes
a crash of the assembler with some malformed source input.
Long segmented addresses are now correctly relocated.
Finally it updates my email address in the MAINTAINERS file.
2002-04-25 10:59:24 +00:00
Alan Modra
96c4b5e0c7 daily update 2002-04-25 00:00:08 +00:00
Chris Demetriou
40d32fc608 2002-04-24 Chris G. Demetriou <cgd@broadcom.com>
* elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): If MDMX or
        MIPS-16 ASE flags are set, print something to indicate that.
2002-04-24 18:49:00 +00:00
Alan Modra
9146f2980c daily update 2002-04-24 00:00:05 +00:00
Alan Modra
067fa4a66b * elf32-hppa.c (hppa_type_of_stub): Correct and simplify condition
under which a plt call stub is used.
	(final_link_relocate): Similarly.
	(allocate_plt_static): Clear h-plabel except when plt entry is
	exclusively used for a plabel.
	(allocate_dynrelocs): Use the above to simplify plt sizing.
	(struct elf32_hppa_link_hash_table): Add has_22bit_branch.
	(elf32_hppa_link_hash_table_create): Init.
	(BL22_RP): Define.
	(hppa_build_one_stub): Use BL22_RP if has_22bit_branch.
	(elf32_hppa_check_relocs): Set has_22bit_branch.

	* elf32-hppa.c (elf32_hppa_check_relocs): Remove debug message.
	(final_link_relocate): Likewise.
2002-04-23 05:11:23 +00:00
Alan Modra
bfa37dc8d3 daily update 2002-04-23 00:00:07 +00:00
Jakub Jelinek
af40ce3c79 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Don't build
search table if some FDE is DW_EH_PE_aligned encoded either.
	(_bfd_elf_write_section_eh_frame): Handle terminating FDE specially.
2002-04-22 21:37:48 +00:00