Commit Graph

1464 Commits

Author SHA1 Message Date
Daniel Jacobowitz
a9a32010d5 2002-05-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
Daniel Jacobowitz  <drow@mvista.com>

        * coff-sh.c (sh_reloc_map): Map to R_SH_IMM32 for non-PE.  Don't
        map BFD_RELOC_RVA.
2002-05-11 17:15:53 +00:00
Nick Clifton
690cc98be9 Add configure supprot for: alpha*-*-openbsd*, sparc64*-*-openbsd*,
hppa*-*-openbsd*
2002-05-11 09:10:14 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
eba9104496 * coffcode.h (coff_compute_section_file_positions): Set
section_tail after shuffling section list.
2002-04-26 03:16:43 +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
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
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
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
Jakub Jelinek
09ae86c216 * elf-eh-frame.c (struct eh_cie_fde): Add per_encoding_relative.
(_bfd_elf_discard_section_eh_frame): Set it for CIEs with pcrel
	encoded personality.
	(_bfd_elf_write_section_eh_frame): Adjust pcrel encoded personality
	for CIE/FDE removal.
2002-04-22 12:06:01 +00:00
Tom Rix
deeb2cd7e6 Fix C_FILE auxent on xcoff64. 2002-04-20 06:47:24 +00:00
Alan Modra
aa3d5824a4 * archures.c (bfd_lookup_arch): Move the list order comment..
(struct bfd_arch_info): ..to where it belongs.
2002-04-20 03:25:20 +00:00
Alan Modra
99dc00929f * archures.c (bfd_lookup_arch): Add comment on list order.
(bfd_default_set_arch_mach): Use bfd_lookup_arch.
	* cpu-powerpc.c (bfd_powerpc_archs): Re-order so that the default
	is always at head of list.
2002-04-20 02:54:26 +00:00
Nick Clifton
7831a7758e Fix problems building arm-wince-pe toolchain. 2002-04-18 09:28:29 +00:00
Joern Rennecke
a44d7f9cfb Re-enable linking for sh5:
ld:
	* emulparams/shelf32.sh (MACHINE): Now sh5.
bfd:
	* cpu-sh.c (scan_mach): Delete.
	(arch_info_struct): Replace scan_mach with bfd_default_scan.
	(bfd_sh_arch): Likewise.
2002-04-17 19:31:53 +00:00
Nick Clifton
3d8dbe36e2 Fix test for records crossing a 64K boundary 2002-04-16 10:18:14 +00:00
Alan Modra
4ab8270019 * elf32-m32r.c (m32r_elf_add_symbol_hook): Check the hash table
type rather than just assuming entries are ELF.
	* elf32-sh64.c (sh64_elf_add_symbol_hook): Likewise.
	* elf64-sh64.c (sh64_elf64_add_symbol_hook): Likewise.
	* elf64-sparc.c (sparc64_elf_add_symbol_hook): Likewise.
	* elf64-mmix.c (mmix_elf_add_symbol_hook): Use bfd_link_hash_entry
	rather than elf_link_hash_entry.
2002-04-16 04:58:12 +00:00
Richard Henderson
036fe0fe8e * elf32-mips.c (mips_elf32_object_p): Revert 0404 fragment: allow
n32 binaries.
2002-04-16 00:57:00 +00:00
Nick Clifton
c4f3d13082 Write contents if writeable. 2002-04-15 14:32:28 +00:00
Alan Modra
272423870a * elf32-ppc.c (ppc_elf_add_symbol_hook): Check the hash table type. 2002-04-15 08:47:03 +00:00
Michael Snyder
0c04d16993 2002-04-12 Michael Snyder <msnyder@redhat.com>
* bfd-in.h (bfd_get_section_lma): New access macro.
	Minor white-space fix-up.
2002-04-12 23:02:12 +00:00
Alan Modra
89d4966ff8 * elf.c (prep_headers): Don't zero EI_OSABI, EI_ABIVERSION or
header pad.
2002-04-12 03:30:56 +00:00
DJ Delorie
8d0da3c2f5 * elfarm-nabi.c (elf32_arm_howto_table): Fix ABS16 masks. 2002-04-10 16:45:31 +00:00
Nick Clifton
05793179d7 Compute checksum for PE images. 2002-04-09 16:43:26 +00:00
Alan Modra
46fe4e66d4 * elf32-hppa.c (hppa_unwind_entry_compare): Move to elf-hppa.h.
(elf32_hppa_final_link): Split out sorting logic to..
	* elf-hppa.h (elf_hppa_sort_unwind): ..here.
	(elf_hppa_final_link): Call elf_hppa_sort_unwind.
2002-04-08 11:01:43 +00:00
Andrew Cagney
3b5b409c5c * configure.in: Add missing ``|'' to powerpc-*-aix4.[4-9]*
pattern.
* configure: Re-generate.
2002-04-07 21:49:09 +00:00
Andrew Cagney
ac7b6ceb87 * configure.in: Only define AIX_CORE_DUMPX_CORE when AIX version
is greater or equal to 4.3.3.
* configure: Regenerate.
Fix PR gdb/344.
2002-04-07 21:42:32 +00:00