Commit graph

1687 commits

Author SHA1 Message Date
Alan Modra
067653c535 * elf32-sh.c (sh_elf_copy_indirect_symbol): New.
(create_got_section, allocate_dynrelocs, readonly_dynrelocs):
	Likewise.
	(struct elf_sh_pcrel_relocs_copied): Removed.
	(struct elf_sh_dyn_relocs): New.
	(struct elf_sh_link_hash_entry): Replace pcrel_relocs_copied
	field with dyn_relocs.
	(struct elf_sh_link_hash_table): Add short-cuts to get dynamic
	sections and sym_sec.
	(sh_elf_link_hash_newfunc): Clear dyn_relocs.
	(sh_elf_link_hash_table_create): Clear shorts-cuts and sym_sec.
	(sh_elf_create_dynamic_sections): Use create_got_section instead
	of _bfd_elf_create_got_section.
	(sh_elf_check_relocs): Likewise.
	(sh_elf_create_dynamic_sections): Use short-cuts to the dynamic
	sections.
	(sh_elf_adjust_dynamic_symbol, sh_elf_size_dynamic_sections,
	sh_elf_relocate_section, sh_elf_check_relocs,
	sh_elf_finish_dynamic_symbol, sh_elf_finish_dynamic_sections):
	Likewise.
	(sh_elf_adjust_dynamic_symbol): Handle nocopyreloc. Keep the
	dynamic relocations and avoiding the copy relocation when we
	didn't find any dynamic relocations in the section which has
	contents or is read-only.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): New.
	(sh_elf_size_dynamic_sections): Don't reset the size of
	.rela.got section even if dynamic_sections_created flag is off.
	Don't use sh_elf_discard_copies. Scan all input bfd and use
	allocate_dynrelocs. Call readonly_dynrelocs to determine
	whether we need DT_TEXTREL.
	(sh_elf_adjust_dynamic_symbol): Use plt.refcount to determine
	whether the symbol was never referred to.
	(sh_elf_relocate_section): Use WILL_CALL_FINISH_DYNAMIC_SYMBOL.
	(sh_elf_gc_sweep_hook): Fill with the real sweep function.
	(sh_elf_check_relocs): Call create_got_section if the short-cut
	to .got is null. Increment reference counters only instead of
	allocating space on dynamic sections here. Don't conditionalize
	uninitialized got.offset value when marking the symbol as a
	global offset table entry. Keep relocations for symbols satisfied
	by a dynamic library to avoid copy relocations for the symbol.
	Set dynobj field of an elf hash table if needed.
	(sh_elf_finish_dynamic_sections): Handle null section pointer
	correctly.
	(elf_backend_copy_indirect_symbol): Defined.
	(elf_backend_can_refcount): Defined.
2002-08-24 01:44:56 +00:00
Nick Clifton
7e326afc19 Undo previous delta. Add comment explaining why. 2002-08-23 09:42:21 +00:00
Alan Modra
c8614e8e65 * elf32-sh.c (elf_sh_plt0_entry_be, elf_sh_plt0_entry_le): Copy
contents of .got.plt[2] to tr0, not address of .got.plt.
	(sh_elf_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, set bottom bit
	of branch to plt0 as this is a branch to an shmedia instruction.
	* elf64-sh64.c (elf_sh64_plt0_entry_be, elf_sh64_plt0_entry_le):
	Copy contents of .got.plt[2] to tr0, not address of .got.plt.
	(elf_sh64_plt_entry_be, elf_sh64_plt_entry_le): Use ptrel to
	branch to plt0.
	(sh64_elf64_finish_dynamic_symbol): Do not apply GOT_BIAS when
	patching absolute plt entry. For shmedia plt entry, branch to
	plt0 is now ptrel, so use relative offset.  Set bottom bit of
	branch target as it is a branch to an shmedia instruction.
2002-08-23 08:26:13 +00:00
Alan Modra
3b587c71d7 * elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT
value if .init is an SHmedia function.  Similarly for DT_FINI.
	* elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise.
2002-08-23 08:13:12 +00:00
Alan Modra
957dcaa8ef * bfd/elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize
dynamic section.
	* bfd/elf64-sh64.c (sh64_elf64_size_dynamic_sections): Likewise.
2002-08-23 04:23:37 +00:00
Nick Clifton
a4263c47c0 Use a simple byte read when reading the return address register column. 2002-08-22 20:00:14 +00:00
Nick Clifton
db4ed12147 Add powerpc64-*-*bsd* target. 2002-08-22 17:45:36 +00:00
Nick Clifton
ed71e1110d Add sh-nto support 2002-08-22 17:27:20 +00:00
Nick Clifton
75c8328346 Updated Turkish translation. 2002-08-22 16:22:03 +00:00
Nick Clifton
0ab72ee2fd Set bfd_error to no_symbols if the symbols could not be read. 2002-08-22 16:12:00 +00:00
Alan Modra
56780f18c5 * elf32-m68hc11.c: Formatting fixes.
(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.
	* elf32-m68hc12.c: Formatting fixes.
	(elf32_m68hc11_gc_mark_hook): Correct params.  Remove unnecessary test.
2002-08-22 05:41:53 +00:00
Alan Modra
a7c71b0c65 * coff-rs6000.c (rs6000coff_vec <object_flags>): Add SEC_CODE and
SEC_DATA.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c (rs6000coff64_vec): Likewise.
	(aix5coff64_vec): Likewise.
2002-08-22 05:13:04 +00:00
Alan Modra
b48fa14c86 * elf-bfd.h (struct elf_backend_data): Add struct elf_backend_data
param to elf_backend_copy_indirect_symbol.
	(_bfd_elf_link_hash_copy_indirect): Likewise.
	* elflink.h (elf_add_default_symbol, elf_fix_symbol_flags): Adjust
	calls to copy_indirect_symbol.
	* elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
	* elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
	* elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
	* elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
	* elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
	* elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
	* elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elfxx-mips.h (_bfd_mips_elf_copy_indirect_symbol): Likewise.
	* elf.c (_bfd_elf_link_hash_copy_indirect): Likewise.  Properly
	test refcounts for "used" values.
2002-08-22 01:27:20 +00:00
Alan Modra
8c2ab17d27 * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Add PARAMS to
argument declaration.
2002-08-20 23:45:41 +00:00
Elena Zannoni
d62b1198f8 2002-08-19 Elena Zannoni <ezannoni@redhat.com>
* archures.c (bfd_mach_ppc_e500): Added.
        * bfd-in2.h: Rebuilt.
        * cpu-powerpc.c (bfd_powerpc_archs): Added e500.
2002-08-19 21:12:34 +00:00
Alan Modra
9f88ba0968 * elf32-m68hc12.c (elf_backend_can_gc_sections): False. 2002-08-19 06:38:43 +00:00
Andrew Cagney
df622259f2 * elf.c (bfd_elf_get_elf_syms): Change type of `esym' to
`bfd_byte'.
2002-08-17 16:09:02 +00:00
Stan Cox
44c410de10 * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Use the
IRIX 6 segment layout for NEWABI.
2002-08-17 15:31:29 +00:00
Stephen Clarke
4972a8e93e * bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect
symbols when looking for section referred to by a relocation.
	* bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise.
2002-08-16 18:40:54 +00:00
Alan Modra
c5cd6d6226 * elf32-i370.c: Move reloc enum to include/elf/i370.h. 2002-08-15 12:21:39 +00:00
Hans-Peter Nilsson
0741c7bed7 * elf32-cris.c (elf_cris_discard_excess_program_dynamics): Add
missing check for whether the symbol is referenced by DSO before
	unexporting it as an unneeded dynamic symbol.
2002-08-15 05:20:54 +00:00
H.J. Lu
e8d5d1796f 2002-08-14 H.J. Lu <hjl@gnu.org>
* libbfd.h: Regenerate.
2002-08-14 16:42:56 +00:00
H.J. Lu
e92290077e Always enable 64bit targets for 32bit Linux/mips. 2002-08-14 15:05:41 +00:00
Stephane Carrez
1fd03b5ab2 * elf32-m68hc11.c (m68hc11_relax_group): New to relax group of
instructions.
	(m68hc11_direct_relax): New to define table of relaxable instructions.
	(find_relaxable_insn): New, find a relaxable insn.
	(compare_reloc): New to compare two relocs.
	(m68hc11_elf_relax_section): New, relax text sections.
	(m68hc11_elf_relax_delete_bytes): New, delete bytes and adjust branchs.
	(elf32_m68hc11_check_relocs): New function for GC support.
	(elf32_m68hc11_relocate_section): New function for GC support.
	(bfd_elf32_bfd_relax_section): Define to support linker relaxation.
	(elf_backend_check_relocs): Likewise.
	(elf_backend_relocate_section): Likewise.
2002-08-14 08:14:30 +00:00
H.J. Lu
c828c7718e 2002-08-13 H.J. Lu <hjl@gnu.org>
* elflink.h (NAME(bfd_elf,size_dynamic_sections): Don't count
	definitions in shared objects when checking symbol with
	undefined version.
2002-08-14 03:25:48 +00:00
Stephane Carrez
9b701e4403 * elf32-m68hc11.c (elf32_m68hc11_gc_mark_hook): New for section GC.
(elf32_m68hc11_gc_sweep_hook): Likewise.
	(elf_backend_gc_mark_hook): Define for GC section support.
	(elf_backend_gc_sweep_hook): Likewise.
	(elf_backend_can_gc_sections): Likewise.

	* elf32-m68hc12.c: Likewise.
2002-08-13 21:15:47 +00:00
Stephane Carrez
96405e3cc3 * elf32-m68hc11.c (_bfd_m68hc11_elf_print_private_bfd_data): New.
(_bfd_m68hc11_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc11_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC11.

	* elf32-m68hc12.c (_bfd_m68hc12_elf_print_private_bfd_data): New.
	(_bfd_m68hc12_elf_merge_private_bfd_data): New function.
	(_bfd_m68hc12_elf_set_private_flags): New function.
	Use them to set/check/print ELF flags specific to 68HC12.
2002-08-13 20:56:59 +00:00
Stephane Carrez
dae78fb09d * elf32-m68hc11.c (elf_m68hc11_howto_table): Add the new relocs;
fix masks for PC-rel relocs.
	(m68hc11_elf_ignore_reloc): New function.

	* elf32-m68hc12.c (m68hc12_elf_special_reloc): New to handle specific
	68HC12 banked addressing relocs.
	(m68hc12_phys_addr): New to compute physical address of banked memory.
	(m68hc12_phys_page): Likewise for page.
	(m68hc12_addr_is_banked): New to see if address is in banked area.
	(elf_m68hc12_howto_table): Add new relocs and rename to xx12.
2002-08-13 20:43:01 +00:00
Stephane Carrez
3dbfec8644 * reloc.c (BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP,
BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE,
	BFD_RELOC_M68HC11_24): New relocs for 68HC11/68HC12.
	* bfd-in2.h: Regenerate.
2002-08-13 20:08:49 +00:00
H.J. Lu
871da94f03 2002-08-12 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_add_default_symbol): Preserve section across
	elf_merge_symbol.
2002-08-12 19:23:33 +00:00
Nick Clifton
59bc061d4b Add QNX Neutrino PowerPC support and common up QNX functions 2002-08-09 15:38:24 +00:00
Nick Clifton
2b692c5912 Updated Swedish translation 2002-08-09 15:07:57 +00:00
Thiemo Seufer
d0c7ff072c * elfxx-mips.c (mips_elf_global_got_index): Avoid segfault if
g->global_gotsym is NULL.
2002-08-09 05:35:26 +00:00
H.J. Lu
d8bbe7789d 2002-08-08 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_add_default_symbol): Don't warn a defintion
	overrides an indirect versioned symbol.
2002-08-09 04:40:29 +00:00
Jakub Jelinek
c366c25e10 * elf32-i386.c (elf_i386_relocate_section): Fill in proper addend
for R_386_TLS_TPOFF32 relocs against symndx 0.
2002-08-08 21:38:27 +00:00
H.J. Lu
3194163592 Check symbols with undefine version. 2002-08-08 03:50:18 +00:00
Alan Modra
7330fb86f2 * elflink.h (elf_link_output_extsym): Don't output symbols from
SEC_EXCLUDE sections.
2002-08-08 00:20:16 +00:00
Alan Modra
0f3bd64fc5 * aoutx.h (aout_link_write_symbols): Correct handling of warning syms. 2002-08-08 00:11:37 +00:00
Alan Modra
a4aa0fb7d0 * elf64-ppc.c (edit_opd): Arrange to drop symbols for discarded .opd
entries.
2002-08-07 05:23:09 +00:00
Thiemo Seufer
34ea4a364d * elfxx-mips.c (mips_elf_create_dynamic_relocation): Cast signedness
mismatch.
2002-08-07 04:44:14 +00:00
Thiemo Seufer
141ff9705a * elfxx-mips.c (ABI_64_P): Remove superfluous check. 2002-08-07 04:37:24 +00:00
Thiemo Seufer
28458e7e44 * elf32-mips.c (mips_reloc_map): Fix typo. 2002-08-07 04:32:14 +00:00
Alan Modra
0121a3da9e * xcofflink.c (xcoff_write_global_symbol): Set n_scnum for abs_section. 2002-08-06 11:24:40 +00:00
Alan Modra
d006db6c06 * elf64-ppc.c (ppc64_elf_howto_raw): Zero all src_mask entries. 2002-08-06 09:09:08 +00:00
Alan Modra
2a52da5326 * libxcoff.h: Use PARAMS on function declarations.
* coff-rs6000.c (xcoff_generate_rtinit): Simplify size calc.
	* coff64-rs6000.c (xcoff64_generate_rtinit): Likewise.
2002-08-06 08:59:34 +00:00
Alan Modra
8ea80f0843 * coff-rs6000.c: (xcoff_rtype2howto): Don't place reloc address in
addend.
	* coff64-rs6000.c: (xcoff64_rtype2howto): Likewise.
2002-08-06 08:51:42 +00:00
Alan Modra
cf9ab45bc0 * coff-rs6000.c: Formatting fixes.
(xcoff_calculate_relocation): Use PARAMS in declaration.
	(xcoff_complain_overflow): Likewise.
	(xcoff_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff_vec): Likewise.
	(bfd_pmac_xcoff_backend_data): Likewise.
	(pmac_xcoff_vec): Likewise.
	* coff64-rs6000.c: Formatting fixes.
	(xcoff64_calculate_relocation): Use PARAMS in declaration.
	(xcoff64_ppc_relocate_section): Use old-style function pointer call.
	(bfd_xcoff_backend_data): Remove useless comments.
	(rs6000coff64_vec): Likewise.
	(bfd_xcoff_aix5_backend_data): Likewise.
	(aix5coff64_vec): Likewise.
2002-08-06 05:52:29 +00:00
Alan Modra
a78eab4eaf * coff-rs6000.c (xcoff_howto_table): Revert some of last change to
mask entries.  Use complain_overflow_dont for R_REF.
	(xcoff_reloc_type_ba): Revert last change.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Likewise.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Likewise.
	(xcoff64_ppc_relocate_section): Likewise.
	(xcoff64_howto_table): Revert some of last change to mask entries.
	Use complain_overflow_dont for R_REF.
2002-08-06 03:18:25 +00:00
Alan Modra
48bfecdd71 * coff-rs6000.c (xcoff_howto_table): Fix src_mask entries. Make all
relocs with bitsize == 16 have size = 1.
	(xcoff_reloc_type_ba): Correct src_mask and dst_mask adjustment.
	(xcoff_reloc_type_br): Likewise.
	(xcoff_reloc_type_crel): Likewise.
	(xcoff_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	* coff64-rs6000.c (xcoff64_reloc_type_br): Correct src_mask and
	dst_mask adjustment.
	(xcoff64_ppc_relocate_section): Set up src_mask and dst_mask correctly.
	(xcoff64_howto_table): Fix src_mask entries.  Make all relocs with
	bitsize == 16 have size = 1.
2002-08-06 02:29:25 +00:00
Denis Chertykov
fd13ed0cdd * elf32-ip2k.c: Processor manufacturer changed to Ubicom.
(struct misc): New field isymbuf. All free_* fields removed.
	(symbol_value): Pass in internal syms. No need to swap syms in.
	(ip2k_elf_relax_section): Use bfd_elf_get_elf_syms. Properly free
	possibly cached info.
	(tidyup_after_error): Removed.
	(ip2k_elf_relax_section_pass1): Don't use removed fields of struct
	misc. Use new field.
	(adjust_all_relocations): Use internal syms. No need to swap syms
	in and out.
	(add_page_insn): Don't use removed fields of struct misc.
2002-08-01 18:29:09 +00:00