aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2002-05-31Add 16 bit R_RBA.Tom Rix3-0/+40
2002-05-31daily updateAlan Modra1-1/+1
2002-05-30include/elf/Richard Henderson5-391/+1018
* 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-30Remove double printed import table lines; add Bound-To comment.Nick Clifton2-69/+37
2002-05-302002-05-29 Matt Thomas <matt@3am-software.com>Jason Thorpe10-684/+2462
* 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-29* config.bfd (arm-*-netbsd*): Add bfd_elf32_littlearm_vecJason Thorpe2-0/+6
and bfd_elf32_bigarm_vec to targ_selvecs.
2002-05-29* peXXigen.c (pe_print_idata): Fix seg faults on printing import tables withChristopher Faylor2-71/+77
auto-imported symbols.
2002-05-29Fix genreation of arm <->thumb glue stubs by ensuring that they are in the ↵Nick Clifton4-39/+70
last section linked.
2002-05-29Move declaration and initialisation of saw_line and saw_func out of for loop.Nick Clifton1-0/+6
(Actual patch accidentally checked in yesterday!)
2002-05-29 * elf64-ppc.c (ppc64_elf_get_symbol_info): New function.Alan Modra3-0/+27
(bfd_elf64_get_symbol_info): Define. * elfxx-target.h (bfd_elfNN_get_symbol_info): Only define if undef.
2002-05-29 * cpu-h8300.c: Make default h8300 machine first in machine list.Alan Modra2-25/+20
2002-05-29daily updateAlan Modra1-1/+1
2002-05-28Add DLX targetNick Clifton15-20/+791
2002-05-28daily updateAlan Modra1-1/+1
2002-05-27daily updateAlan Modra1-1/+1
2002-05-26daily updateAlan Modra1-1/+1
2002-05-25 * elf32-m68k.c (elf32_m68k_print_private_bfd_data): Formatting.Alan Modra2-1/+3
2002-05-25 * chew.c: Use #include "" instead of <> for local header files.Alan Modra2-1/+5
2002-05-25 * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Revert last change.Alan Modra2-16/+49
(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-25daily updateAlan Modra1-1/+1
2002-05-242002-05-24 Michal Ludvig <mludvig@suse.cz>Michal Ludvig2-0/+78
* elf64-x86-64.c (elf64_x86_64_grok_prstatus): Added. (elf64_x86_64_grok_psinfo): Added.
2002-05-24Add a target for i386-netbsdpe.Nick Clifton2-0/+8
2002-05-24 * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy is_funcAlan Modra2-27/+43
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-24daily updateAlan Modra1-1/+1
2002-05-23 * elf.c (_bfd_elf_make_section_from_shdr): Set SEC_THREAD_LOCALJakub Jelinek11-85/+1261
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-23For the Thumb BLX reloc round the relocation up rather than down.Nick Clifton3-25/+30
2002-05-23daily updateAlan Modra1-1/+1
2002-05-222002-05-21 H.J. Lu (hjl@gnu.org)H.J. Lu2-28/+34
* linker.c (_bfd_generic_link_add_one_symbol): Allow multiple definition.
2002-05-22 * elf64-ppc.c (ppc64_elf_size_stubs): Don't strip .branch_lt.Alan Modra2-6/+19
(ppc64_elf_relocate_section): Handle unresolved relocs in opd.
2002-05-22 * elf64-ppc.c (ppc64_elf_relocate_section): Return false forAlan Modra2-7/+16
unresolved relocs. (ppc64_elf_size_dynamic_sections): Check for splt NULL.
2002-05-22daily updateAlan Modra1-1/+1
2002-05-21 * objdump.c (dump_headers): Fix output formatting for ELF32Thiemo Seufer2-1/+5
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 * elf-bfd.h (elf_backend_emit_relocs): Change prototype to returnThiemo Seufer3-11/+32
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-21bfd:Jason Thorpe2-0/+8
* 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-21daily updateAlan Modra1-1/+1
2002-05-20 * elf64-ppc.c (ppc_build_one_stub): Point undefined function symsAlan Modra2-0/+19
at the plt call stub.
2002-05-20daily updateAlan Modra1-1/+1
2002-05-19 * cpu-mips.c (mips_compatible): Don't try to check machineThiemo Seufer2-5/+7
compatibility.
2002-05-19daily updateAlan Modra1-1/+1
2002-05-18Fix C_FILE auxent.Tom Rix2-1/+5
2002-05-18daily updateAlan Modra1-1/+1
2002-05-17 * elf64-ppc.c (ppc64_elf_info_to_howto): Formatting.Alan Modra2-10/+30
(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 * acinclude.m4 (AM_INSTALL_LIBBFD): New.Alan Modra7-336/+473
* 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-17Remove computation of len from inside hash loop.Nick Clifton2-1/+6
2002-05-17daily updateAlan Modra1-1/+1
2002-05-16Add targets for sh64-linux (little endian and big endian).Nick Clifton2-0/+13
2002-05-16daily updateAlan Modra1-1/+1
2002-05-15Do not assume that the first thunk is located in the same section as theNick Clifton2-3/+60
import table. Instead check, and if necessary load the section containing the thunk.
2002-05-15Replace bfd_read with bfd_bread.Nick Clifton2-5/+12
2002-05-15Fix ld --just-symbolsAlan Modra35-22/+160
* 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.