Commit Graph

1900 Commits

Author SHA1 Message Date
Alan Modra 5bc5648443 * elfarm-oabi.c (bfd_elf32_arm_add_glue_sections_to_bfd): Define.
Move other similar defines to start of file.
2002-05-31 02:28:53 +00:00
Tom Rix 1b164155d9 Add 16 bit R_RBA. 2002-05-31 01:07:21 +00:00
Alan Modra fdd89c9823 daily update 2002-05-31 00:00:06 +00:00
Richard Henderson 3765b1be13 include/elf/
* alpha.h (R_ALPHA_TLSGD, R_ALPHA_TLSLDM, R_ALPHA_DTPMOD64,
        R_ALPHA_GOTDTPREL, R_ALPHA_DTPREL64, R_ALPHA_DTPRELHI,
        R_ALPHA_DTPRELLO, R_ALPHA_DTPREL16, R_ALPHA_GOTTPREL, R_ALPHA_TPREL64,
        R_ALPHA_TPRELHI, R_ALPHA_TPRELLO, R_ALPHA_TPREL16): New.

bfd/
        * elf64-alpha.c (ALPHA_ELF_LINK_HASH_LU_TLSGD,
        ALPHA_ELF_LINK_HASH_LU_TLSLDM, ALPHA_ELF_LINK_HASH_LU_FUNC): New.
        (ALPHA_ELF_GOT_ENTRY_RELOCS_DONE): Remove.
        (ALPHA_ELF_GOT_ENTRY_RELOCS_XLATED): Remove.
        (struct alpha_elf_got_entry): Add reloc_type, reloc_done, reloc_xlated.
        (struct alpha_elf_obj_tdata): Rename total_got_entries and
        n_local_got_entries to total_got_size and local_got_size.
        (elf64_alpha_howto, elf64_alpha_reloc_map): Update for TLS relocs.
        (alpha_got_entry_size): New.
        (elf64_alpha_relax_with_lituse): Use it.
        (elf64_alpha_relax_without_lituse): Likewise.
        (MAX_GOT_SIZE): Rename from MAX_GOT_ENTRIES.
        (get_got_entry): New.
        (elf64_alpha_check_relocs): Handle TLS relocs.  Reorganize.
        (elf64_alpha_adjust_dynamic_symbol): Test LU_FUNC as a mask.
        (elf64_alpha_merge_ind_symbols): Check gotent->reloc_type.
        (elf64_alpha_can_merge_gots, elf64_alpha_merge_gots): Likewise.
        (elf64_alpha_calc_got_offsets_for_symbol): Use alpha_got_entry_size.
        (elf64_alpha_calc_got_offsets): Likewise.
        (alpha_dynamic_entries_for_reloc): New.
        (elf64_alpha_calc_dynrel_sizes): Use it.
        (elf64_alpha_size_dynamic_sections): Likewise.
        (elf64_alpha_relocate_section): Handle TLS relocations.
        * reloc.c: Add Alpha TLS relocations.
        * bfd-in2.h, libbfd.h: Rebuild.

gas/
        * expr.h (operatorT): Add O_md17..O_md32.
        * config/tc-alpha.c (O_lituse_tlsgd, O_lituse_tlsldm, O_tlsgd,
        O_tlsldm, O_gotdtprel, O_dtprelhi, O_dtprello, O_dtprel, O_gottprel,
        O_tprelhi, O_tprello, O_tprel): New.
        (USER_RELOC_P, alpha_reloc_op_tag, debug_exp): Include them.
        (DUMMY_RELOC_LITUSE_TLSGD, DUMMY_RELOC_LITUSE_TLSLDM): New.
        (LITUSE_TLSGD, LITUSE_TLSLDM): New.
        (struct alpha_reloc_tag): Add master, saw_tlsgd, saw_tlsld,
        saw_lu_tlsgd, saw_lu_tlsldm.  Make multi_section_p a bit field.
        (md_apply_fix3): Handle TLS relocations.
        (alpha_force_relocation, alpha_fix_adjustable): Likewise.
        (alpha_adjust_symtab_relocs): Sort LITERAL relocs after the
        associated TLS reloc.  Check lituse_tls relocs match up.
        (emit_insn): Handle TLS relocations.
        (ldX_op): Remove.

gas/testsuite/
        * gas/alpha/elf-tls-1.s, gas/alpha/elf-tls-1.d: New.
        * gas/alpha/elf-tls-2.s, gas/alpha/elf-tls-1.l: New.
        * gas/alpha/elf-tls-3.s, gas/alpha/elf-tls-1.l: New.
        * gas/alpha/alpha.exp: Run them.
2002-05-30 22:01:38 +00:00
Nick Clifton 5e226794ca Remove double printed import table lines; add Bound-To comment. 2002-05-30 11:06:10 +00:00
Jason Thorpe 90ace9e95d 2002-05-29 Matt Thomas <matt@3am-software.com>
* Makefile.am (BFD32_BACKENDS): Add elf32-vax.lo.
(BFD32_BACKENDS_CFILES): Add elf32-vax.c.
(elf32-vax.lo): New rule.
* Makefile.in: Regenerate.
* configure.in (bfd_elf32_vax_vec)
(vaxnetbsd_vec): New vectors.
* configure: Regenerate.
* config.bfd (vax-*-netbsdelf*)
(vax-*-netbsdaout*)
(vax-*-netbsd*): New targets.
* elf32-vax.c: New file.
* reloc.c: Add VAX relocations.
* bfd-in2.h: Regenerate.
* targets.c (_bfd_target_vector): Add bfd_elf32_vax_vec.
2002-05-30 02:14:13 +00:00
Jason Thorpe 4a253e8176 * config.bfd (arm-*-netbsd*): Add bfd_elf32_littlearm_vec
and bfd_elf32_bigarm_vec to targ_selvecs.
2002-05-29 21:10:18 +00:00
Christopher Faylor 6e7c73dd85 * peXXigen.c (pe_print_idata): Fix seg faults on printing import tables with
auto-imported symbols.
2002-05-29 20:06:28 +00:00
Nick Clifton 8afb0e028c Fix genreation of arm <->thumb glue stubs by ensuring that they are in the last section linked. 2002-05-29 16:03:04 +00:00
Nick Clifton a95653f53e Move declaration and initialisation of saw_line and saw_func out of for loop.
(Actual patch accidentally checked in yesterday!)
2002-05-29 08:46:58 +00:00
Alan Modra 7cdc5bba78 * elf64-ppc.c (ppc64_elf_get_symbol_info): New function.
(bfd_elf64_get_symbol_info): Define.
	* elfxx-target.h (bfd_elfNN_get_symbol_info): Only define if undef.
2002-05-29 05:00:01 +00:00
Alan Modra 4c7aad1c75 * cpu-h8300.c: Make default h8300 machine first in machine list. 2002-05-29 00:58:46 +00:00
Alan Modra 69ed25ef57 daily update 2002-05-29 00:00:05 +00:00
Nick Clifton d172d4ba03 Add DLX target 2002-05-28 14:08:47 +00:00
Alan Modra 8cf23aec33 daily update 2002-05-28 00:26:27 +00:00
Alan Modra b9d2bdcb04 daily update 2002-05-27 00:00:06 +00:00
Alan Modra c2f89d5dd7 daily update 2002-05-26 00:00:05 +00:00
Alan Modra 428d0de365 * elf32-m68k.c (elf32_m68k_print_private_bfd_data): Formatting. 2002-05-25 13:09:37 +00:00
Alan Modra f742faa65b * chew.c: Use #include "" instead of <> for local header files. 2002-05-25 12:50:18 +00:00
Alan Modra d1329ca363 * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Revert last change.
(ppc64_elf_check_relocs): Don't set up function descriptor symbol
	strings to point inside function code sym string.
	(func_desc_adjust): Likewise.
	(ppc64_elf_hide_symbol): Rewrite code to look up function code sym.
2002-05-25 10:13:23 +00:00
Alan Modra 43f8ec3896 daily update 2002-05-25 00:00:06 +00:00
Michal Ludvig 3bab7989f4 2002-05-24 Michal Ludvig <mludvig@suse.cz>
* elf64-x86-64.c (elf64_x86_64_grok_prstatus): Added.
	(elf64_x86_64_grok_psinfo): Added.
2002-05-24 14:25:08 +00:00
Nick Clifton 436e8db0b7 Add a target for i386-netbsdpe. 2002-05-24 09:26:58 +00:00
Alan Modra ea1e4b0d54 * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy is_func
and is_func_descriptor.
	(func_desc_adjust): Hide function code sym in shared libs unless
	there is a matching exported function descriptor sym.
2002-05-24 04:07:38 +00:00
Alan Modra 8a18e99d4c daily update 2002-05-24 00:00:06 +00:00
Jakub Jelinek 13ae64f3c7 * elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCAL
for symbols from SHF_TLS section.
	(_bfd_elf_print_private_bfd_data): Add PT_TLS.
	(elf_fake_sections): Set SHF_TLS for SEC_THREAD_LOCAL sections.
	(map_sections_to_segments): Build PT_TLS segment if necessary.
	(assign_file_positions_for_segments): Likewise.
	(get_program_header_size): Account for PT_TLS segment.
	(swap_out_syms): Set type of BSF_THREAD_LOCAL symbols and symbols from
	SEC_THREAD_LOCAL sections to STT_TLS.
	* reloc.c: Add 386 and IA-64 TLS relocs.
	* section.c (SEC_THREAD_LOCAL): Define.
	(SEC_CONSTRUCTOR_TEXT, SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS):
	Remove.
	* elflink.h (elf_link_add_object_symbols): Support .tcommon.
	(size_dynamic_sections): If DF_STATIC_TLS, set DF_FLAGS
	unconditionally.
	(struct elf_final_link_info): Add first_tls_sec.
	(elf_bfd_final_link): Set first_tls_sec.
	Compute elf_hash_table (info)->tls_segment.
	(elf_link_output_extsym): Handle STT_TLS symbols.
	(elf_link_input_bfd): Likewise.
	* syms.c (BSF_THREAD_LOCAL): Define.
	* bfd-in2.h: Rebuilt.
	* libbfd.h: Rebuilt.
	* elf32-i386.c (elf_i386_tls_transition, dtpoff_base, tpoff,
	elf_i386_mkobject, elf_i386_object_p): New functions.
	(elf_howto_table): Add TLS relocs.
	(elf_i386_reloc_type_lookup): Support TLS relocs.
	(elf_i386_info_to_howto_rel): Likewise.
	(struct elf_i386_link_hash_entry): Add tls_type.
	(struct elf_i386_obj_tdata): New.
	(elf_i386_hash_entry, elf_i386_tdata, elf_i386_local_got_tls_type):
	New macros.
	(struct elf_i386_link_hash_table): Add tls_ldm_got.
	(link_hash_newfunc): Clear tls_type.
	(elf_i386_check_relocs): Support TLS relocs.
	(elf_i386_gc_sweep_hook): Likewise.
	(allocate_dynrelocs): Likewise.
	(elf_i386_size_dynamic_sections): Likewise.
	(elf_i386_relocate_section): Likewise.
	(elf_i386_finish_dynamic_symbol): Likewise.
	(bfd_elf32_mkobject, elf_backend_object_p): Define.
	* elfxx-ia64.c (struct elfNN_ia64_dyn_sym_info): Add tprel_offset,
	dtpmod_offset, dtprel_offset, tprel_done, dtpmod_done, dtprel_done,
	want_tprel, want_dtpmod, want_dtprel.
	(elfNN_ia64_tprel_base, elfNN_ia64_dtprel_base): New functions.
	(ia64_howto_table): Add TLS relocs, rename R_IA64_LTOFF_TP22 to
	R_IA64_LTOFF_TPREL22.
	(elf_code_to_howto_index): Add TLS relocs.
	(elfNN_ia64_check_relocs): Support TLS relocs.
	(allocate_global_data_got): Account for TLS .got data.
	(allocate_dynrel_entries): Account for TLS dynamic relocations.
	(elfNN_ia64_install_value): Supprt TLS relocs.
	(set_got_entry): Support TLS relocs.
	(elfNN_ia64_relocate_section): Likewise.

	* config/obj-elf.c (elf_common): Renamed from obj_elf_common.
	(obj_elf_common): Call elf_common.
	(obj_elf_tls_common): New function.
	(elf_pseudo_tab): Support .tls_common.
	(special_sections): Add .tdata and .tbss.
	(obj_elf_change_section): Set SEC_THREAD_LOCAL for SHF_TLS
	sections.
	(obj_elf_parse_section_letters): Support T in section flags (SHF_TLS).
	(obj_elf_parse_section_letters): Include T in error message.
	* config/tc-ppc.c (ppc_section_letter): Likewise.
	* config/tc-alpha.c (alpha_elf_section_letter): Likewise.
	(tc_gen_reloc): Handle SEC_THREAD_LOCAL the same way as
	SEC_MERGE.
	* config/tc-sparc.c (md_apply_fix3): Likewise.
	* config/tc-i386.c (tc_i386_fix_adjustable): Add TLS relocs.
	Define them if not BFD_ASSEMBLER.
	(lex_got): Support @TLSGD, @TLSLDM, @GOTTPOFF, @TPOFF, @DTPOFF
	and @NTPOFF.
	(md_apply_fix3): Add TLS relocs.
	* config/tc-ia64.c (enum reloc_func): Add FUNC_DTP_MODULE,
	FUNC_DTP_RELATIVE, FUNC_TP_RELATIVE, FUNC_LT_DTP_MODULE,
	FUNC_LT_DTP_RELATIVE, FUNC_LT_TP_RELATIVE.
	(pseudo_func): Support @dtpmod(), @dtprel() and @tprel().
	(ia64_elf_section_letter): Include T in error message.
	(md_begin): Support TLS operators.
	(md_operand): Likewise.
	(ia64_gen_real_reloc_type): Support TLS relocs.
	* testsuite/gas/i386/tlspic.s: New file.
	* testsuite/gas/i386/tlsd.s: New file.
	* testsuite/gas/i386/tlsnopic.s: New file.
	* testsuite/gas/i386/tlsd.d: New file.
	* testsuite/gas/i386/tlsnopic.d: New file.
	* testsuite/gas/i386/tlspic.d: New file.
	* testsuite/gas/i386/i386.exp: Add tlsd, tlsnopic and tlspic tests.
	* testsuite/gas/ia64/tls.s: New file.
	* testsuite/gas/ia64/tls.d: New file.
	* testsuite/gas/ia64/ia64.exp: Add tls test.
	* write.c (adjust_reloc_syms): Don't change symbols in
	SEC_THREAD_LOCAL sections to STT_SECTION + addend.

	* elf/common.h (PT_TLS, SHF_TLS, STT_TLS, DF_STATIC_TLS): Define.
	* elf/ia64.h (R_IA64_LTOFF_TPREL22): Renamed from R_IA64_LTOFF_TP22.
	* elf/i386.h: Add TLS relocs.

	* scripttempl/elf.sc: Add .rel{,a}.t{bss,data}, .tdata and .tbss.
	* ldlang.c (lang_add_section): Set SEC_THREAD_LOCAL for
	output section if necessary.  Handle .tbss.
	(lang_size_sections): Clear _raw_size for .tbss section
	(it allocates space in PT_TLS segment only).
	* ldwrite.c (build_link_order): Build link order for .tbss too.

	* readelf.c (get_segment_type): Add PT_TLS.
	(get_elf_section_flags): Add SHF_TLS.
	(get_dynamic_flags): Optimize.  Add DF_STATIC_TLS.
	(process_dynamic_segment): Use puts instead of printf.
	(get_symbol_type): Support STT_TLS.
	* objdump.c (dump_section_header): Remove SEC_CONSTRUCTOR_TEXT,
	SEC_CONSTRUCTOR_DATA, SEC_CONSTRUCTOR_BSS.
	Add SEC_THREAD_LOCAL.
2002-05-23 13:12:53 +00:00
Nick Clifton c62e1cc30f For the Thumb BLX reloc round the relocation up rather than down. 2002-05-23 12:37:57 +00:00
Alan Modra 9ee0b326c9 daily update 2002-05-23 00:00:04 +00:00
H.J. Lu c5a43a5dc5 2002-05-21 H.J. Lu (hjl@gnu.org)
* linker.c (_bfd_generic_link_add_one_symbol): Allow multiple
	definition.
2002-05-22 05:06:18 +00:00
Alan Modra afbe61cf19 * elf64-ppc.c (ppc64_elf_size_stubs): Don't strip .branch_lt.
(ppc64_elf_relocate_section): Handle unresolved relocs in opd.
2002-05-22 04:22:08 +00:00
Alan Modra 9c07fe7cfa * elf64-ppc.c (ppc64_elf_relocate_section): Return false for
unresolved relocs.
	(ppc64_elf_size_dynamic_sections): Check for splt NULL.
2002-05-22 00:04:40 +00:00
Alan Modra c7a4707351 daily update 2002-05-22 00:00:05 +00:00
Thiemo Seufer 21611032e1 * objdump.c (dump_headers): Fix output formatting for ELF32
architectures in a BFD64 enabled toolchain.
	* bfd/bfd.c (bfd_get_arch_size): Remove bfd_set_error call for
	non-ELF targets.
2002-05-21 16:21:18 +00:00
Thiemo Seufer 41241523bf * elf-bfd.h (elf_backend_emit_relocs): Change prototype to return
an error value.
	* elflink.h (elf_link_output_relocs): Likewise. Improve error message.
	return with false on error.
	(elf_link_input_bfd): Check reloc_emitter return value.
2002-05-21 16:03:46 +00:00
Jason Thorpe 658f25883a bfd:
* config.bfd (armeb-*-netbsdelf*): New target.

ld:
* Makefile.am (ALL_EMULATIONS): Add earmelfb_nbsd.o.
(earmelfb_nbsd.c): New rule.
* Makefile.in: Regenerate.
* configure.tgt (armeb-*-netbsdelf*): New target.
(arm-*-netbsdelf*): Add armelfb_nbsd to targ_extra_emuls.
(arm-*-netbsd*): Likewise.
* emulparams/armelfb_nbsd.sh: New file.
2002-05-21 15:11:04 +00:00
Alan Modra dd45e91811 daily update 2002-05-21 00:00:06 +00:00
Alan Modra c862ae314d * elf64-ppc.c (ppc_build_one_stub): Point undefined function syms
at the plt call stub.
2002-05-20 13:12:41 +00:00
Alan Modra 7a4f993ee5 daily update 2002-05-20 00:00:07 +00:00
Thiemo Seufer 6dd1484515 * cpu-mips.c (mips_compatible): Don't try to check machine
compatibility.
2002-05-19 21:06:34 +00:00
Alan Modra 1a89f665fc daily update 2002-05-19 00:00:06 +00:00
Tom Rix a58d9c34ef Fix C_FILE auxent. 2002-05-18 13:13:12 +00:00
Alan Modra 6e3d2bb55f daily update 2002-05-18 00:00:05 +00:00
Alan Modra ef60b7ff0e * elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.
(ppc64_elf_relocate_section): Don't warn about reloc overflow when
	we've already warned about an undefined symbol.  Report more
	detail on reloc errors.
2002-05-17 13:25:04 +00:00
Alan Modra a703a6ea4e * acinclude.m4 (AM_INSTALL_LIBBFD): New.
* configure.in: Invoke AM_INSTALL_LIBBFD.
	* Makefile.am (install-data-local): Revert 2002-05-13.  Move to..
	(install_libbfd): .. New target.
	(uninstall_libbfd): Likewise.
	(install-bfdlibLTLIBRARIES): Likewise.
	(uninstall-bfdlibLTLIBRARIES): Likewise.
	(bfdlibdir): New.
	(bfdincludedir): New.
	(lib_LTLIBRARIES): Rename to bfdlib_LTLIBRARIES.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
2002-05-17 10:34:03 +00:00
Nick Clifton 2c13d98be1 Remove computation of len from inside hash loop. 2002-05-17 09:52:04 +00:00
Alan Modra ed2368c9a8 daily update 2002-05-17 00:00:04 +00:00
Nick Clifton 629936c5b1 Add targets for sh64-linux (little endian and big endian). 2002-05-16 08:19:19 +00:00
Alan Modra 51db274664 daily update 2002-05-16 00:00:06 +00:00
Nick Clifton e4cf60a822 Do not assume that the first thunk is located in the same section as the
import table.  Instead check, and if necessary load the section containing
the thunk.
2002-05-15 15:28:12 +00:00
Nick Clifton d1e66cd4a4 Replace bfd_read with bfd_bread. 2002-05-15 13:47:12 +00:00
Alan Modra 2d653fc760 Fix ld --just-symbols
* aix5ppc-core.c: Warning fixes.
	* aout-adobe.c (aout_32_bfd_link_just_syms): Define.
	* aout-target.h (MY_bfd_link_just_syms): Define.
	* aout-tic30.c (MY_bfd_link_just_syms): Define.
	* bfd.c (bfd_link_just_syms): Define.
	* binary.c (binary_bfd_link_just_syms): Define.
	* bout.c (b_out_bfd_link_just_syms): Define.
	* coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Update initializer.
	* coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Likewise.
	* coffcode.h (coff_bfd_link_just_syms): Define.
	* elf-bfd.h (enum elf_link_info_type): Add ELF_INFO_TYPE_JUST_SYMS.
	(elf_discarded_section): Check for ELF_INFO_TYPE_JUST_SYMS.
	(_bfd_elf_link_just_syms): Declare.
	* elf.c (_bfd_elf_link_just_syms): New function.
	* elf-eh-frame.c (_bfd_elf_maybe_strip_eh_frame_hdr): Check that
	sections haven't already been discarded by the linker.
	* elflink.h (elf_link_add_object_symbols): Likewise for stab
	sections and SEC_MERGE sections.
	(elf_bfd_discard_info): Similarly here.
	* elfxx-target.h (bfd_elfNN_bfd_link_just_syms): Define.
	* i386msdos.c (msdos_bfd_link_just_syms): Define.
	* i386os9k.c (os9k_bfd_link_just_syms): Define.
	* ieee.c (ieee_bfd_link_just_syms): Define.
	* ihex.c (ihex_bfd_link_just_syms): Define.
	* libbfd-in.h (_bfd_nolink_bfd_link_just_syms): Define.
	(_bfd_generic_link_just_syms): Declare.
	* libecoff.h (_bfd_ecoff_bfd_link_just_syms): Define.
	* linker.c (_bfd_generic_link_just_syms): New function.
	* mmo.c (mmo_bfd_link_just_syms): Define.
	* nlm-target.h (nlm_bfd_link_just_syms): Define.
	* oasys.c (oasys_bfd_link_just_syms): Define.
	* ppcboot.c (ppcboot_bfd_link_just_syms): Define.
	* som.c (som_bfd_link_just_syms): Define.
	* srec.c (srec_bfd_link_just_syms): Define.
	* targets.c (struct bfd_target): Add _bfd_link_just_syms.
	(BFD_JUMP_TABLE_LINK): And here.
	* tekhex.c (tekhex_bfd_link_just_syms): Define.
	* versados.c (versados_bfd_link_just_syms): Define.
	* vms.c (vms_bfd_link_just_syms): Define.
	* libbfd.h: Regenerate.
	* bfd-in2.h: Regenerate.
2002-05-15 00:18:58 +00:00
Alan Modra 879d6525f7 daily update 2002-05-15 00:00:05 +00:00
Thiemo Seufer cb7394f2b6 * elf32-mips.c: Remove superfluous definitions copied from
elfxx-mips.c.
	(bfd_elf32_bigmips_vec,bfd_elf32_littlemips_vec): Use the
	SGIish vectors to check the special case.
	(mips_elf_hi16_reloc): Fix comment.
	(mips_elf_got16_reloc): Likewise.
	(_bfd_mips_elf32_gprel16_reloc): Likewise.
	(elf_reloc_map): Code cleanup.
	(mips_reloc_map): Add comment.
	(bfd_elf23_bfd_reloc_type_lookup): Code cleanup.
	(mips_elf32_rtype_to_howto): Likewise.
	(mips_elf32_discard_info): Likewise.
	(elf32_mips_irix_compat): Invert logic: Only SGIish vectors
	lead to IRIX compatibility now.
2002-05-14 23:37:52 +00:00
Thiemo Seufer 8dc1a139e1 * elfxx-mips.c: Call it IRIX, not Irix in comments. 2002-05-14 23:23:59 +00:00
Alan Modra a8a1dd9966 daily update 2002-05-14 00:00:05 +00:00
Jason Thorpe 2051e1b512 * config.bfd (shle-*-netbsdelf*): Add target which includes
sh64 support.
2002-05-13 18:35:55 +00:00
Alan Modra 8395426148 * configure.in: Revert 2002-04-07. Instead, auto-configure
HAVE_ST_C_IMPL.
	* configure: Regenerate.
	* config.in: Regenerate.
	* rs6000-core.c (CNEW_IMPL): Guard use of c_impl with HAVE_ST_C_IMPL
	or AIX_5_CORE.
2002-05-13 13:33:30 +00:00
Nick Clifton a9bf115413 Support sparc64-openbsd corefiles as well. 2002-05-13 08:33:26 +00:00
Alan Modra 3129eb7aaa * Makefile.am (install-data-local): Install headers to
$(exec_prefix)/include.
	* Makefile.in: Regenerate.
2002-05-13 00:58:40 +00:00
Alan Modra 297131eb5f daily update 2002-05-13 00:00:06 +00:00
Alan Modra 9c1348e4a2 daily update 2002-05-12 00:00:04 +00:00
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
Alan Modra 9759e2f688 daily update 2002-05-11 00:00:05 +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 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