aboutsummaryrefslogtreecommitdiff
path: root/bfd
AgeCommit message (Collapse)AuthorFilesLines
2003-02-17SEGMENT_OVERLAPS: Check that LMAs overlap as well.Nick Clifton2-16/+28
2003-02-15daily updateAlan Modra1-1/+1
2003-02-14daily updateAlan Modra1-1/+1
2003-02-14Change embedded documentation to use consistent indentation and to split upNick Clifton7-237/+241
long lines. Change informal style of description for functions lacking real documentation.
2003-02-14(_bfd_stab_section_find_nearest_line): For line number stabs outside ofNick Clifton2-47/+47
functions, treat values as absolute addresses.
2003-02-14(elf_core_file_p): Compare alternate machine codes for ELF backends whenNick Clifton2-33/+37
checking if the generic ELF target should be used.
2003-02-13 * elf64-ppc.c (ppc64_elf_link_hash_table_create): Init tls_get_addr.Alan Modra2-111/+88
(ppc64_elf_copy_indirect_symbol): Merge tls_mask too. (ppc64_elf_gc_sweep_hook): Simplify removal of dyn_relocs. (allocate_dynrelocs): Don't treat undefined and undefweak specially. (ppc_size_one_stub): Fix warning, and tighten plt entry check. (group_sections): Don't share a stub section if stubs are for a large section. Adjust comment. (ppc64_elf_size_stubs): Roughly double the size left for stubs if !stubs_always_before_branch. (ppc64_elf_relocate_section): Initialize tlsld GOT entry once. Don't treat undefined and undefweak specially when processing dyn relocs.
2003-02-13daily updateAlan Modra1-1/+1
2003-02-13bfd/Jakub Jelinek2-0/+74
* elflink.h (elf_link_add_object_symbols): Handle .symver x, x@FOO. ld/testsuite/ * ld-shared/shared.exp: Run on s390*-*-linux* and x86_64-*-linux* too. xfail tests linking non-pic code into shared libs on x86_64-*-linux*. * ld-elfvsb/elfvsb.exp: Likewise. * ld-elfvers/vers.exp: Likewise. Add vers24a, vers24b and vers24c tests. * ld-elfvers/vers3.ver: Allow VERS_2.0 to come before GLIBC_* version. * ld-elfvers/vers19.ver: Likewise. * ld-elfvers/vers24a.c: New test. * ld-elfvers/vers24b.c: New test. * ld-elfvers/vers24c.c: New test. * ld-elfvers/vers24.map: New test. * ld-elfvers/vers24.rd: New test. * lib/ld-lib.exp (run_ld_link_tests): Add optional 7th argument cflags. If source files have .c extension, compile them first.
2003-02-13(elf32_thumb_to_arm_stub): Include section VMAs in computation of offset toNick Clifton2-7/+15
insert into BL instruction.
2003-02-13Documenation formatting improvements.Nick Clifton3-442/+454
Move Gnu Free Documenation License to a seperate file.
2003-02-12daily updateAlan Modra1-1/+1
2003-02-11daily updateAlan Modra1-1/+1
2003-02-11Add support for configuring *-*-kaos targets.Nick Clifton2-2/+19
2003-02-11 * elf64-ppc.c (ppc64_elf_check_relocs): Match versionedAlan Modra2-1/+22
.__tls_get_addr too. (ppc64_elf_tls_setup): Ensure cached tls_get_addr is not indirect.
2003-02-10daily updateAlan Modra1-1/+1
2003-02-10 * elf32-sh.c (elf_sh_dyn_relocs): Add tls_tpoff32 field.Kaz Kojima2-14/+50
(elf_sh_link_hash_entry): Remove tls_tpoff32 field. (sh_elf_link_hash_newfunc): Remove the initialization of tls_tpoff32 field. (allocate_dynrelocs): Keep dyn_relocs if it includes the entry for which tls_tpoff32 flag is set. (sh_elf_relocate_section): Covert to LE only if the dyn_relocs of the symbol includes the entry matched with the input_section and having tls_tpoff32 flag on. When linking statically, set symbol index of R_SH_TLS_TPOFF32 relocation to zero if the symbol is defined in this executable. (sh_elf_check_relocs): Set tls_tpoff32 flag appropriately.
2003-02-10 * elf32-s390.c (elf_s390_size_dynamic_sections): Set relocs to TRUEJakub Jelinek2-2/+7
even if there is just non-empty .rela.plt.
2003-02-10Add function to set machine number based on flags in header.Nick Clifton2-2/+20
2003-02-10Add support for marking ARM ELF binaries as support the Cirrus EP9312 MaverickNick Clifton5-5/+39
floating point co-processor.
2003-02-09 * elf64-ppc.c: Rename assorted occurrences of tls_type and similarAlan Modra2-62/+81
variables, structure fields or function params to tls_mask or similar to better reflect usage. (struct got_entry): Comment. (struct ppc_link_hash_entry): Expand comment, and renumber TLS_*. (get_tls_mask): Rename from get_tls_type.
2003-02-09daily updateAlan Modra1-1/+1
2003-02-09 * elf64-ppc.c (TLS_GD_LD): Don't define..Alan Modra3-223/+359
(TLS_GD): ..define this instead and update all uses. (TLS_TPRELGD): Define. (ppc64_elf_link_hash_table_create): Tweak initialization of init_refcount and init_offset. (ppc64_elf_check_relocs): Add one extra element to t_symndx array. Mark second slot of GD or LD toc entries. (get_tls_type): Return an int. Distinguish toc GD and LD entries from other tls types. (ppc64_elf_tls_setup): New function, split out from.. (ppc64_elf_tls_optimize): ..here. Don't optimize when symbols are defined in a dynamic object. Fix LD optimization. Don't set TLS_TPREL on GD->IE optimization, use TLS_TPRELGD instead. Use get_tls_type return value to properly decide whether toc GD and LD entries can optimize away __tls_get_addr call. Check next reloc after DTPMOD64 to determine GD or LD rather than looking at TLS_LD flag. Don't attempt to adjust got entry tls_type here.. (allocate_dynrelocs): ..instead, adjust got entry tls_type here, and look for possible merges. (ppc64_elf_size_dynamic_sections): Adjust local got entries for optimization. (ppc64_elf_size_stubs): Tweak __tls_get_addr fudge. (ppc64_elf_relocate_section): Rename some vars to better reflect usage. Make use of return value from get_tls_type to properly detect GD and LD optimizations. Split tlsld/gd hi/ha from lo/ds case. Don't handle tls_get_addr removal when looking at REL24 relocs, do it when looking at the previous reloc. Check reloc after DTPMOD64 to determine GD or LD. * elf64-ppc.h (ppc64_elf_tls_setup): Declare.
2003-02-08daily updateAlan Modra1-1/+1
2003-02-08 * elf32-hppa.c (group_sections): Don't share a stub section ifAlan Modra2-2/+11
stubs are for a large section.
2003-02-08 * elf32-hppa.c (elf32_hppa_size_stubs): Double the size left forAlan Modra2-16/+31
stubs if !stubs_always_before_branch.
2003-02-07daily updateAlan Modra1-1/+1
2003-02-07Generate an error message if a section cannot be found for a symbol.Nick Clifton2-3/+19
2003-02-07 * elf64-alpha.c (elf64_alpha_relax_section): Don't crash ifJakub Jelinek2-1/+12
local_got_entries is NULL.
2003-02-06 * elf-eh-frame.c (get_DW_EH_PE_signed): Define.Andreas Schwab2-9/+43
(read_value): Add parameter is_signed, use signed extraction if the value is signed. (_bfd_elf_write_section_eh_frame): Pass signed flag of the encoding to read_value.
2003-02-06daily updateAlan Modra1-1/+1
2003-02-05daily updateAlan Modra1-1/+1
2003-02-05 * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy got andAlan Modra2-17/+23
plt info when called to transfer weak sym info.
2003-02-04daily updateAlan Modra1-1/+1
2003-02-04 * reloc.c: Add PPC and PPC64 TLS relocs.Alan Modra6-468/+2626
* libbfd.h: Regenerate. * bfd-in2.h: Regenerate. * elf64-ppc.c (TP_OFFSET, DTP_OFFSET): Declare. (ppc64_elf_howto_raw): Add TLS howto's. Adjust R_PPC64_NONE to be against a 32 bit field. (ppc64_elf_reloc_type_lookup): Handle TLS relocs. (_ppc64_elf_section_data): Add t_symndx and comments. (ppc64_elf_section_data): Use elf_section_data macro. (ppc64_elf_new_section_hook): American spelling. (struct got_entry, struct plt_entry): New. (MUST_BE_DYN_RELOC): Rename from IS_ABSOLUTE_RELOC. (struct ppc_stub_hash_entry): Add "addend" field. (struct ppc_link_hash_entry): Add "tls_type". (TLS_TLS, TLS_GD_LD, TLS_LD, TLS_TPREL, TLS_DTPREL, TLS_EXPLICIT): Define. (struct ppc_link_hash_table): Add tls_sec, tls_get_addr, tlsld_got. (link_hash_newfunc): Init new fields. (ppc64_elf_link_hash_table_create): Likewise. Set init_relcount and init_offset to NULL. (ppc64_elf_copy_indirect_symbol): Copy got and plt info. Don't call _bfd_elf_link_hash_copy_indirect, rather insert relevant code from there. (update_local_sym_info, update_plt_info): New functions. (ppc64_elf_check_relocs): Use them. Handle TLS relocs. Adjust GOT handling to use got.glist rather than got.refcount. Likewise for PLT. (ppc64_elf_gc_sweep_hook): Handle TLS relocs, new GOT and PLT lists. (func_desc_adjust): Adjust for new PLT list. (ppc64_elf_adjust_dynamic_symbol): Likewise. (get_sym_h, get_tls_type): New functions. (ppc64_elf_edit_opd): Remove unused variable. Use get_sym_h. (ppc64_elf_tls_optimize): New function. (allocate_dynrelocs): Adjust for new PLT and GOT lists. Allocate TLS relocs. (ppc64_elf_size_dynamic_sections): Likewise. (ppc_type_of_stub): Adjust for new PLT list. (ppc_build_one_stub): Likewise. (ppc64_elf_size_stubs): Likewise. Use get_sym_h. Treat __tls_get_addr calls specially. (ppc64_elf_relocate_section): Adjust for new GOT and PLT lists. Handle TLS relocs. Report local syms using bfd_elf_local_sym_name. Don't init GOT entries that have a reloc. Generate GOT relocs here.. (ppc64_elf_finish_dynamic_symbol): ..not here. Adjust for PLT list. * elf64-ppc.h (ppc64_elf_tls_optimize): Declare.
2003-02-04 * elf32-m68k.c (elf_m68k_hash_entry): Define.Andreas Schwab2-41/+46
(elf_m68k_link_hash_traverse): Remove. (elf_m68k_link_hash_newfunc): Use struct bfd_hash_entry and elf_m68k_hash_entry instead of struct elf_m68k_link_hash_entry to reduce casting. (elf_m68k_check_relocs): Use elf_m68k_hash_entry instead of casting. (elf_m68k_size_dynamic_sections): Use elf_link_hash_traverse instead of elf_m68k_link_hash_traverse. (elf_m68k_discard_copies): Change first parameter to pointer to struct elf_link_hash_entry and use elf_m68k_hash_entry when struct elf_m68k_link_hash_entry is needed.
2003-02-04 * elf-bfd.h (struct got_entry, struct plt_entry): Forward declare.Alan Modra4-45/+80
(struct elf_link_hash_entry): Add "glist" and "plist" fields to "got" union, and declare as gotplt_union. Use gotplt_uinion for "plt" field. (struct elf_link_hash_table): Make "init_refcount" a gotplt_union. Add "init_offset" field. (struct elf_obj_tdata <local_got>): Add "struct got_entry **" to union. (elf_local_got_ents): Declare. * elf.c (_bfd_elf_link_hash_newfunc): Adjust initialization of "got" and "plt". (_bfd_elf_link_hash_hide_symbol): Use "init_offset". (_bfd_elf_link_hash_table_init): Set "init_offset". * elflink.h (NAME(bfd_elf,size_dynamic_sections)): Set init_refcount from init_offset. (elf_adjust_dynamic_symbol): Set plt and got offsets using init_offset. * elf.c (bfd_elf_local_sym_name): Split out from.. (group_signature): ..here. * elf-bfd.h (bfd_elf_local_sym_name): Declare.
2003-02-04bfdAlan Modra17-110/+164
* elf-bfd.h (enum elf_link_info_type): Remove. (struct bfd_elf_section_data): Move sec_info_type, use_rela_p fields to struct sec. Remove linkonce_p field. (elf_linkonce_p): Delete. (elf_discarded_section): Update for sec_info_type change. * section.c (struct sec): Add sec_info_type, use_rela_p, has_tls_reloc, flag11, flag12, flag13, flag14, flag15, flag16, flag20, flag24. (ELF_INFO_TYPE_NONE): Define. (ELF_INFO_TYPE_STABS): Define. (ELF_INFO_TYPE_MERGE): Define. (ELF_INFO_TYPE_EH_FRAME): Define. (ELF_INFO_TYPE_JUST_SYMS): Define. (STD_SECTION): Update struct sec initializer. * ecoff.c (bfd_debug_section): Likewise. * elf.c: Likewise. Update occurrences of sec_info_type and use_rela_p. * elflink.h: Likewise. * elf-eh-frame.c: Likewise. * elf64-alpha.c: Likewise. * elfxx-ia64.c: Likewise. * elfxx-mips.c: Likewise. * bfd-in2.h: Regenerate. * elf32-sparc.c (sec_do_relax): Use elf_section_data macro rather than referring to used_by_bfd. * elf64-sparc.c (sec_do_relax): Likewise. * elf64-mmix.c (mmix_elf_section_data): Likewise. * elfxx-mips.c (mips_elf_section_data): Likewise. * ieee.c (ieee_slurp_section_data): Use ieee_per_section macro. (ieee_get_section_contents): Likewise. (ieee_new_section_hook): Formatting. (ieee_canonicalize_reloc): Remove commented out code. * mmo.c (mmo_section_data): Define. Use throughout file. * oasys.c (oasys_get_section_contents): Use oasys_per_section macro. gas * config/obj-elf.c (obj_elf_change_section): Set SEC_LINK_ONCE and SEC_LINK_DUPLICATES_DISCARD directly rather than using elf_linkonce_p.
2003-02-03daily updateAlan Modra1-1/+1
2003-02-02daily updateAlan Modra1-1/+1
2003-02-01daily updateAlan Modra1-1/+1
2003-01-31daily updateAlan Modra1-1/+1
2003-01-31bfd_follow_gnu_debuglink: New function. Follow the pointer contained inside aNick Clifton5-5/+354
.gnu_debuglink section.
2003-01-30daily updateAlan Modra1-1/+1
2003-01-29daily updateAlan Modra1-1/+1
2003-01-29* elfxx-mips.c (mips_elf_got_entry_hash): Don't dereferenceAlexandre Oliva2-3/+9
entry->abfd when it's NULL.
2003-01-28daily updateAlan Modra1-1/+1
2003-01-28Remove duplicate date lineAlexandre Oliva1-2/+0
2003-01-28* elfxx-mips.c (mips_elf_create_dynamic_relocation): HandleAlexandre Oliva2-4/+7
_bfd_elf_section_offset returning -2 the same way as -1.
2003-01-28* elfxx-mips.c (mips_elf_multi_got): New function.Alexandre Oliva2-217/+1333
(struct mips_got_entry): Make symndx and gotidx signed. Moved addend into union along with address and link hash entry. (struct mips_got_info): Added bfd2got and next. (struct mips_elf_hash_sort_data): Added max_unref_got_dynindx. (mips_elf_got_section, mips_elf_create_got_section): Use SEC_EXCLUDE bit to tell whether we really need the got section. Take boolean arguments to disregard an excluded section, or to create it as excluded. Adjust all callers. Use mips_elf_got_section all over. (mips_elf_local_got_index, mips_elf_got_page, mips_elf_got16_entry): Take input bfd as argument, and pass it on to mips_elf_create_local_got_entry. (mips_elf_global_got_index, mips_elf_create_local_got_entry): Take input bfd as argument, and manage entries in the appropriate GOT. (mips_elf_got_offset_from_index): Take input bfd as argument, and use it to adjust the GP offset of the bfd. (mips_elf_sort_hash_table, mips_elf_sort_hash_table_f): Move unreferenced GOT entries of global symbols to the end. (mips_elf_record_global_got_symbol): Take input bfd as argument. Add entries to the master GOT hash table. (struct mips_elf_bfd2got_hash): New. (struct mips_elf_got_per_bfd_arg): New. (struct mips_elf_set_global_got_offset_arg): New. (mips_elf_hash_bfd_vma, mips_elf_multi_got_entry_hash, mips_elf_multi_got_entry_eq, mips_elf_bfd2got_entry_hash, mips_elf_bfd2got_entry_eq, mips_elf_make_got_per_bfd, mips_elf_merge_gots, mips_elf_set_global_got_offset, mips_elf_resolve_final_got_entry, mips_elf_resolve_final_got_entries, mips_elf_adjust_gp, mips_elf_got_for_ibfd): New functions. (ELF_MIPS_GP_OFFSET): Don't depend on SGI_COMPAT. (MIPS_ELF_GOT_MAX_SIZE): New macro. (STUB_LW): Generate 64-bit stub regardless of SGI_COMPAT. (mips_elf_got_entry_hash): Take new fields into account. Use mips_elf_hash_bfd_vma. (mips_elf_got_entry_eq): Take new fields into account. (mips_elf_create_got_section): Initialize new fields. (mips_elf_calculate_relocation): Pass input_bfd to functions that now take it. Adjust gp for the input_bfd. (mips_elf_allocate_dynamic_relocation, mips_elf_create_dynamic_relocation, _bfd_mips_elf_create_dynamic_sections): Use... (mips_elf_rel_dyn_section): New function. Borrow code from... (_bfd_mips_elf_check_relocs): Pass input_bfd to functions that now take it. Create the got section if needed, even if excluded, before recording a global got symbol. Move some code to... (mips_elf_record_local_got_symbol): New fn. (_bfd_mips_elf_size_dynamic_sections): Disable combreloc. Compute multi-got global entries offsets. Move GOT code to... (_bfd_mips_elf_always_size_sections): Call mips_elf_multi_got if the GOT is too big. (_bfd_mips_elf_finish_dynamic_symbol): Set got entry of undefweak symbol to zero. Generate dynamic relocations for non-primary GOT entries for global symbols. (_bfd_mips_elf_finish_dynamic_sections): Handle multi-got case. Generate dynamic relocations for local got entries. Sort dynamic relocations on N64 too, using... (sort_dynamic_relocs_64): New fns. (_bfd_mips_elf_hide_symbol): Adjust multi-got counters. (_bfd_mips_elf_merge_private_bfd_data): Ignore EF_MIPS_XGOT.