aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2006-08-092006-08-08 Peter S. Mazinger <ps.m@gmx.net>Mike Frysinger2-1/+6
* emulparams/armelf.sh (MAXPAGESIZE): Changed to "CONSTANT (MAXPAGESIZE)".
2006-08-082006-08-08 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu3-13/+29
PR ld/3006 * ldlang.c (lang_section_bst_type): Moved to ... * ldlang.h: Here. * ldlang.h (lang_wild_statement_struct): Add a tree field. * ldlang.c (wild_sort_fast): Use the tree field for BST. (wild): Likeise. (analyze_walk_wild_section_handler): Initialize the tree field.
2006-08-08ld/H.J. Lu8-1/+68
2006-08-08 H.J. Lu <hongjiu.lu@intel.com> PR ld/3009 * ldlang.c (update_wild_statements): Update the whole wild section list. ld/testsuite/ 2006-08-08 H.J. Lu <hongjiu.lu@intel.com> PR ld/3009 * ld-scripts/sort.t: New file. * ld-scripts/sort_b_a-1.d: Likewise. * ld-scripts/sort_b_a-1.s: Likewise. * ld-scripts/sort_b_n-1.d: Likewise. * ld-scripts/sort_b_n-1.s: Likewise.
2006-08-06* bfd.c (bfd_get_sign_extend_vma): Add cases for pe-arm-little and ↵Nick Clifton3-24/+29
pei-arm-little. * coff-arm.c (coff_arm_rtype_to_howto) [COFF_WITH_PE]: Handle ARM_SECREL. (coff_arm_reloc_type_lookup): Map BFD_RELOC_32_SECREL to ARM_SECREL. * pe-arm.c [COFF_SECTION_ALIGNMENT_ENTRIES]: Define. * pei-arm.c [TARGET_UNDERSCORE]: Define for ARM_WINCE like in pe-arm.c. [COFF_SECTION_ALIGNMENT_ENTRIES]: Define. * config/tc-arm.c: Move "dwarf2dbg.h" inclusion out of OBJ_ELF only block. (pe_directive_secrel) [TE_PE]: New function. (md_pseudo_table) [!OBJ_ELF]: Handle 2byte, 4byte, 8byte, file, loc, loc_mark_labels. [TE_PE]: Handle secrel32. (output_relax_insn): Remove OBJ_ELF around dwarf2_emit_insn call. (output_inst): Remove OBJ_ELF around dwarf2_emit_insn call. (arm_frob_label): Remove OBJ_ELF around dwarf2_emit_label call. (md_section_align): Only round section sizes here for AOUT targets. (tc_arm_regname_to_dw2regnum): Move out for OBJ_ELF only block. (tc_pe_dwarf2_emit_offset): New function. (md_apply_fix) [TE_PE]: Handle BFD_RELOC_32_SECREL. (cons_fix_new_arm): Handle O_secrel. * config/tc-arm.h : Move DWARF2_LINE_MIN_INSN_LENGTH, DWARF2_DEFAULT_RETURN_COLUMN and DWARF2_CIE_DATA_ALIGNMENT out of OBJ_ELF only block. [TE_PE]: Define O_secrel, TC_DWARF2_EMIT_OFFSET, and declare tc_pe_dwarf2_emit_offset. * ld-pe/pe.exp: Enable tests on arm-wince-pe. * ld-pe/secrel.d: Adjust test to work on arm-wince-pe too.
2006-08-06fix my nameMike Frysinger1-1/+1
2006-08-062006-08-04 Nick Clifton <nickc@redhat.com>Mike Frysinger3-10/+20
Mike Frysinger <michael.frysing@analog.com> * scripttempl/elf.sc (USER_LABEL_PREFIX): Define. (__preinit_array_start, __preinit_array_end, __init_array_start, __init_array_end, __fini_array_start, __fini_array_end, edata, end): Use ${USER_LABEL_PREFIX}. * emulparams/bfin.sh (DATA_END_SYMBOLS,END_SYMBOLS): Unset. (USER_LABEL_PREFIX): Set.
2006-08-04* ldmain.c (main): Initialise print_gc_sections field of link_info structure.Nick Clifton5-2/+42
* lexsup.c: Add --print-gc-sections and --no-print-gc-sections switches. * ld.texinfo: Document new switches. * NEWS: Mention new switches. * bfdlink.h (struct bfd_link_info): New field: print_gc_sections. * elflink.c (elf_gc_sweep): If info.print_gc_sections is true, list removed sections to stderr.
2006-08-04bfd/Richard Sandiford37-8/+772
2006-08-02 Richard Sandiford <richard@codesourcery.com> Kazu Hirata <kazu@codesourcery.com> Phil Edwards <phil@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com> * config.bfd (sh-*-vxworks): Use bfd_elf32_shvxworks_vec and bfd_elf32_shlvxworks_vec. * configure.in (bfd_elf32_sh64_vec): Add elf-vxworks.lo. (bfd_elf32_sh64l_vec, bfd_elf32_sh64lin_vec): Likewise. (bfd_elf32_sh64blin_vec, bfd_elf32_sh64lnbsd_vec): Likewise. (bfd_elf32_sh64nbsd_vec, bfd_elf32_sh_vec): Likewise. (bfd_elf32_shblin_vec, bfd_elf32_shl_vec): Likewise. (bfd_elf32_shl_symbian_vec, bfd_elf32_shlin_vec): Likewise. (bfd_elf32_shlnbsd_vec, bfd_elf32_shnbsd_vec): Likewise. (bfd_elf32_shlvxworks_vec, bfd_elf32_shvxworks_vec): New stanzas. * configure: Regenerate. * Makefile.am: Regenerate dependencies. * Makefile.in: Regenerate. * elf-vxworks.c (elf_vxworks_gott_symbol_p): New function. (elf_vxworks_add_symbol_hook): Use it. (elf_vxworks_link_output_symbol_hook): Likewise. Use the hash table entry to check for weak undefined symbols and to obtain the original bfd. (elf_vxworks_emit_relocs): Use target_index instead of this_idx. * elf32-sh-relocs.h: New file, split from elf32-sh.c. (R_SH_DIR32): Use SH_PARTIAL32 for the partial_inplace field, SH_SRC_MASK32 for the src_mask field, and SH_ELF_RELOC for the special_function field. (R_SH_REL32): Use SH_PARTIAL32 and SH_SRC_MASK32 here too. (R_SH_REL32, R_SH_TLS_GD_32, R_SH_TLS_LD_32): Likewise. (R_SH_TLS_LDO_32, R_SH_TLS_IE_32, R_SH_TLS_LE_32): Likewise. (R_SH_TLS_DTPMOD32, R_SH_TLS_DTPOFF32, R_SH_TLS_TPOFF32): Likewise. (R_SH_GOT32, R_SH_PLT32, R_SH_COPY, R_SH_GLOB_DAT): Likewise. (R_SH_JMP_SLOT, R_SH_RELATIVE, R_SH_GOTOFF, R_SH_GOTPC): Likewise. (SH_PARTIAL32, SH_SRC_MASK32, SH_ELF_RELOC): Undefine at end of file. * elf32-sh.c: Include elf32-vxworks.h. (MINUS_ONE): Define. (sh_elf_howto_table): Include elf32-sh-relocs.h with SH_PARTIAL32 set to TRUE, SH_SRC_MASK32 set to 0xffffffff, and SH_ELF_RELOC set to sh_elf_reloc. (sh_vxworks_howto_table): New variable. Include elf32-sh-relocs.h with SH_PARTIAL32 set to FALSE, SH_SRC_MASK32 set to 0, and SH_ELF_RELOC set to bfd_elf_generic_reloc. (vxworks_object_p, get_howto_table): New functions. (sh_elf_reloc_type_lookup): Fix typo. Use get_howto_table. (sh_elf_info_to_howto): Use get_howto_table. (sh_elf_relax_section): Honor the partial_inplace field of the R_SH_DIR32 howto. (sh_elf_relax_delete_bytes): Likewise. (elf_sh_plt_info): New structure. (PLT_ENTRY_SIZE): Replace both definitions with... (ELF_PLT_ENTRY_SIZE): ...this new macro, with separate definitions for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA. (elf_sh_plt0_entry_be): Update sizes of both definitions accordingly. (elf_sh_plt0_entry_le): Likewise. (elf_sh_plt_entry_be, elf_sh_plt_entry_le): Likewise. (elf_sh_pic_plt_entry_be, elf_sh_pic_plt_entry_le): Likewise. (elf_sh_plts): New structure, with separate definitions for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA. (elf_sh_plt0_entry): Delete both definitions. (elf_sh_plt_entry, elf_sh_pic_plt_entry): Likewise. (elf_sh_sizeof_plt, elf_sh_plt_plt0_offset): Likewise. (elf_sh_plt_temp_offset, elf_sh_plt_symbol_offset): Likewise. (elf_sh_plt_reloc_offset): Likewise. (movi_shori_putval): Delete in favor of... (install_plt_field): ...this new function, with separate definitions for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA. (get_plt_info): New function, with separate definitions for INCLUDE_SHMEDIA and !INCLUDE_SHMEDIA. (elf_sh_plt0_linker_offset, elf_sh_plt0_gotid_offset): Delete. (VXWORKS_PLT_HEADER_SIZE, VXWORKS_PLT_ENTRY_SIZE): New macros. (vxworks_sh_plt0_entry_be, vxworks_sh_plt0_entry_le): New constants. (vxworks_sh_plt_entry_be, vxworks_sh_plt_entry_le): Likewise. (vxworks_sh_pic_plt_entry_be, vxworks_sh_pic_plt_entry_le): Likewise. (get_plt_index, get_plt_offset): New functions. (elf_sh_link_hash_table): Add srelplt2, plt_info and vxworks_p fields. (sh_elf_link_hash_table_create): Initialize them. (sh_elf_create_dynamic_sections): Call elf_vxworks_create_dynamic_sections for VxWorks. (allocate_dynrelocs): Use htab->plt_info to get the size of PLT entries. Allocate relocation entries in .rela.plt.unloaded if generating a VxWorks executable. (sh_elf_always_size_sections): New function. (sh_elf_size_dynamic_sections): Extend .rela.plt handling to .rela.plt.unloaded. (sh_elf_relocate_section): Use get_howto_table. Honor partial_inplace when calculating the addend for dynamic relocations. Use get_plt_index. (sh_elf_finish_dynamic_symbol): Use get_plt_index, install_plt_field and htab->plt_info. Fill in the bra .plt offset for VxWorks executables. Populate .rela.plt.unloaded. Do not make _GLOBAL_OFFSET_TABLE_ absolute on VxWorks. (sh_elf_finish_dynamic_sections): Use install_plt_field and htab->plt_info. Handle cases where there is no special PLT header. Populate the first relocation in .rela.plt.unloaded and fix up the remaining entries. (sh_elf_plt_sym_val): Use get_plt_info. (elf_backend_always_size_sections): Define. (TARGET_BIG_SYM, TARGET_BIG_NAME): Override for VxWorks. (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise. (elf32_bed, elf_backend_want_plt_sym): Likewise. (elf_symbol_leading_char, elf_backend_want_got_underscore): Likewise. (elf_backend_grok_prstatus, elf_backend_grok_psinfo): Likewise. (elf_backend_add_symbol_hook): Likewise. (elf_backend_link_output_symbol_hook): Likewise. (elf_backend_emit_relocs): Likewise. (elf_backend_final_write_processing): Likewise. (ELF_MAXPAGESIZE, ELF_COMMONPAGESIZE): Likewise. * targets.c (bfd_elf32_shlvxworks_vec): Declare. (bfd_elf32_shvxworks_vec): Likewise. (_bfd_target_vector): Include bfd_elf32_shlvxworks_vec and bfd_elf32_shvxworks_vec. gas/ * config/tc-sh.c (apply_full_field_fix): New function. (md_apply_fix): Use it instead of md_number_to_chars. Do not fill in fx_addnumber for BFD_RELOC_32_PLT_PCREL. (tc_gen_reloc): Use fx_addnumber rather than 0 as the default case. * config/tc-sh.h (TARGET_FORMAT): Override for TE_VXWORKS. ld/ 2006-08-02 Richard Sandiford <richard@codesourcery.com> Kazu Hirata <kazu@codesourcery.com> Phil Edwards <phil@codesourcery.com> * Makefile.am (ALL_EMULATIONS): Add eshelf_vxworks.o and eshlelf_vxworks.o. (eshelf_vxworks.c, eshlelf_vxworks.c): New rules. * Makefile.in: Regenerate. * configure.tgt (sh-*-vxworks): Use shelf_vxworks and shlelf_vxworks. * emulparams/shelf_vxworks.sh: New file. * emulparams/shlelf_vxworks.sh: Likewise. * emulparams/vxworks.sh (FINI): Prefix _etext with ${SYMPREFIX}. (OTHER_END_SYMBOLS): Likewise _ehdr. (DATA_END_SYMBOLS): Likewise _edata. * emultempl/vxworks.em (vxworks_after_open): Check whether output_bfd is indeed an ELF file before dealing with --force-dynamic. ld/testsuite/ * ld-sh/rd-sh.exp: Treat vxworks1-static.d specially. * ld-sh/sh-vxworks.exp: New file. * ld-sh/sh.exp: Extend sh-linux SIZEOF_HEADERS handling to sh-*-vxworks. * ld-sh/vxworks1-le.dd, ld-sh/vxworks1-lib-le.dd, * ld-sh/vxworks1-lib.dd, ld-sh/vxworks1-lib.nd, * ld-sh/vxworks1-lib.rd, ld-sh/vxworks1-lib.s, * ld-sh/vxworks1-static.d, ld-sh/vxworks1.dd, * ld-sh/vxworks1.ld, ld-sh/vxworks1.rd, ld-sh/vxworks1.s, * ld-sh/vxworks2-static.sd, ld-sh/vxworks2.s, * ld-sh/vxworks2.sd, ld-sh/vxworks3-le.dd, * ld-sh/vxworks3-lib-le.dd, ld-sh/vxworks3-lib.dd, * ld-sh/vxworks3-lib.s, ld-sh/vxworks3.dd, ld-sh/vxworks3.s, * ld-sh/vxworks4.d, ld-sh/vxworks4a.s, ld-sh/vxworks4b.s, * ld-sh/reloc1.s, ld-sh/reloc1.d: New tests.
2006-08-02PR binutils/2983Nick Clifton2-0/+7
* bfd/elf64-x86-64.c: Add FreeBSD support. (elf64_x86_64_fbsd_post_process_headers): New function. * bfd/targets.c (_bfd_target_vector): Add bfd_elf64_x86_64_freebsd_vec. * bfd/config.bfd (x64_64-*-freebsd*): Add bfd_elf64_x86_64_freebsd_vec to the targ_selvecs. * bfd/configure.in: Add entry for bfd_elf64_x86_64_freebsd_vec. * bfd/configure: Regenerate. * gas/config/tc-i386.c (md_parse_option): Treat any target starting with elf64_x86_64 as a viable target for the -64 switch. (i386_target_format): For 64-bit ELF flavoured output use ELF_TARGET_FORMAT64. * gas/config/tc-i386.h (ELF_TARGET_FORMAT64): Define. * ld/emulparams/elf_x86_64_fbsd.sh (OUTPUT_FORMAT): Define as elf64-x86-64-freebsd.
2006-08-01ld/H.J. Lu6-35/+72
2006-08-01 H.J. Lu <hongjiu.lu@intel.com> * ldlang.c (init_os): Add flags. Replace bfd_make_section with bfd_make_section_with_flags. (exp_init_os): Updated. (lang_add_section): Call init_os with flags. (map_input_to_output_sections): Likewise. ld/testsuite/ 2006-08-01 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/noload-1.d: New. * ld-elf/noload-1.s: Likewise. * ld-elf/noload-1.t: Likewise.
2006-07-29ld/Richard Sandiford13-108/+218
* Makefile.am (eelf32b4300.c): Update dependencies. (eelf32bmip.c): Likewise. (eelf32bsmip.c): Likewise. (eelf32btsmip.c): Likewise. (eelf32btsmipn32.c): Likewise. (eelf32ltsmip.c): Likewise. (eelf32ltsmipn32.c): Likewise. (eelf32ebmip.c): Likewise. (eelf32ebmipvxworks.c): Likewise. (eelf32elmip.c): Likewise. (eelf32elmipvxworks.c): Likewise. (eelf32bmipn32.c): Likewise. (eelf32lmip.c): Likewise. (eelf32mipswindiss.c): Likewise. (eelf32lsmip.c): Likewise. (eelf64bmip.c): Likewise. (eelf64btsmip.c): Likewise. (eelf64ltsmip.c): Likewise. (emipsbig.c): Likewise. Canonicalize ${GENSCRIPTS} line. (emipsbsd.c): Likewise. (emipsidt.c): Update dependencies. (emipsidtl.c): Likewise. (emipslit.c): Likewise. (emipslnews.c): Likewise. (emipspe.c): Likewise. Fix ${GENSCRIPTS} invocation. * Makefile.in: Regenerate. * emulparams/elf32bmip.sh (EXTRA_EM_FILE): Define. * emulparams/elf32bmipn32-defs.sh (EXTRA_EM_FILE): Likewise. * emultempl/irix.em: Include emultempl/mipself.em. * emultempl/mipself.em: New file. ld/testsuite/ * ld-mips-elf/hash1.s, ld-mips-elf/hash1a.d, * ld-mips-elf/hash1b.d, ld-mips-elf/hash1c.d: New tests. * ld-mips-elf/mips-elf.exp: Run them.
2006-07-26 * emultempl/elf-generic.em (map_segments): Reorganise loop so thatAlan Modra2-19/+26
layout happens before segment map. Don't do segment map on relocatable link.
2006-07-26 * ld-scripts/overlay-size-map.d: Update.Alan Modra2-2/+6
2006-07-26 * ldexp.c (fold_name <LOADADDR>): Use the lma.Alan Modra4-53/+82
* ldlang.h (lang_memory_region_type): Delete old_length. Add last_os. * ldlang.c (lang_memory_region_lookup): Init new field. (lang_reset_memory_regions): Reset new field. (lang_insert_orphan): Don't set load_base. (lang_leave_overlay): Likewise. (lang_size_sections_1): Delete unnecessary code setting lma_region to region. Correct lma region check. (lang_do_assignments_1): Rename output_section_statement parm to current_os. Set lma from previous section in region.
2006-07-26 * ldlang.c: Formatting.Alan Modra2-41/+46
2006-07-26 * emultempl/xtensaelf.em (xtensa_strip_inconsistent_linkonce_sections):Bob Wilson2-0/+6
Set discarded section's output_section to bfd_abs_section_ptr.
2006-07-25 * ld-mips-elf/mips16-call-global-2.s,Thiemo Seufer4-30/+48
ld-mips-elf/mips16-call-global-3.s, ld-mips-elf/mips16-call-global.d: Improve test robustness.
2006-07-25 * ldlang.c (analyze_walk_wild_section_handler): Init handler_dataAlan Modra2-4/+9
earlier.
2006-07-25 * emultempl/xtensaelf.em (is_inconsistent_linkonce_section): Add spaceBob Wilson2-8/+14
in dep_sec_name for null terminator. Make sure dep_sec_name has a ".t" linkonce tag.
2006-07-24* emulparams/elf_x86_64.sh (LIBPATH_SUFFIX, ELF_INTERPRETER_NAME): Set for ↵Nick Clifton2-1/+10
*-*-solaris2*. * elf.c (bfd_section_from_shdr): Reject unrecognised OS-specific sections only if the SHF_OS_NONCONFORMING flag is present.
2006-07-24Fix spelling typosNick Clifton3-18/+23
2006-07-23* ldlang.c (lang_section_bst): New structure for sorting sections by name.Nick Clifton2-41/+160
(wild_sort_fast): New function: Insert a section into a binary search tree. (output_section_callback_fast): New function: Store a section in BST. (output_section_callback_tree_to_list): New function: Convert a BST into a list. (analyze_walk_wild_section_handler): Initialize handler_data elements. (wild): If the data is sorted by name use the BST method to sort the names.
2006-07-21* ld-sh/arch/arch.exp (test_arch): Set the endian flag to suit the multilibNick Clifton2-2/+9
being tested.
2006-07-20 [ bfd/ChangeLog ]Thiemo Seufer6-0/+80
* elf32-mips.c (mips16_jump_reloc): Remove function. (elf_mips16_howto_table_rel): Use _bfd_mips_elf_generic_reloc instead of mips16_jump_reloc. * elf64_mips.c, wlfn32-mips.c (mips16_jump_reloc): Remove function. (elf_mips16_howto_table_rel, elf_mips16_howto_table_rela): Use _bfd_mips_elf_generic_reloc instead of mips16_jump_reloc. [ gas/ChangeLog ] * config/tc-mips.c (mips_fix_adjustable): Handle BFD_RELOC_MIPS16_JMP. (tc_gen_reloc): Handle mips16 jumps to section symbol offsets. [ ld/testsuite/ChangeLog ] * ld-mips-elf/mips16-call-global-1.s, ld-mips-elf/mips16-call-global-2.s, ld-mips-elf/mips16-call-global-3.s, ld-mips-elf/mips16-call-global.d: Test linking of external mips16 jumps. * ld-mips-elf/mips-elf.exp: Run new test.
2006-07-19 * ld-selective/selective.exp: Fix selective testcases for MIPS.Thiemo Seufer2-2/+13
2006-07-19bfd/Alan Modra4-2/+152
* bfd-in.h (enum notice_asneeded_action): Define. * bfd-in2.h: Regenerate. * elflink.c (elf_link_add_object_symbols): Call linker "notice" function with NULL name for as-needed handling. ld/ * ld.h (handle_asneeded_cref): Declare. * ldcref.c: Include objalloc.h. (old_table, old_count, old_tab, alloc_mark): New variables. (tabsize, entsize, refsize, old_symcount): Likewise. (add_cref): Use bfd_hash_allocate for refs. (handle_asneeded_cref): New function. * ldmain.c (notice): Call handle_asneeded_cref for NULL name.
2006-07-14 * configure.tgt (i[3-7]86-*-solaris2*, i[3-7]86-*-solaris*): CorrectDaniel Jacobowitz2-2/+7
typo setting targ_extra_libpath.
2006-07-13 * ld-mips-elf/tlslib-o32-ver.got, ld-mips-elf/tlslib-o32.got:Thiemo Seufer3-16/+21
Update TLS testcases.
2006-07-12bfd/H.J. Lu12-0/+305
2006-07-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2884 * elflink.c (_bfd_elf_merge_symbol): Copy the symbol info from the old versioned dynamic definition to the new one with non-default visibility. Hide the symbol if it is hidden or internal. ld/testsuite/ 2006-07-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2884 * ld-elf/begin.c: New file. * ld-elf/end.c: Likewise. * ld-elf/endhidden.c: Likewise. * ld-elf/endprotected.c: Likewise. * ld-elf/foo.c: Likewise. * ld-elf/foo.map: Likewise. * ld-elf/hidden.out: Likewise. * ld-elf/main.c: Likewise. * ld-elf/normal.out: Likewise. * ld-elf/shared.exp: Likewise. * lib/ld-lib.exp (run_cc_link_tests): New.
2006-07-12bfd/Richard Sandiford3-0/+12
2006-07-12 Matthew R. Dempsky <mrd@alkemio.org> * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32. ld/testsuite/ 2006-07-12 Richard Sandiford <richard@codesourcery.com> * ld-m68k/merge-ok-1c.d: New test. * ld-m68k/m68k.exp: Run it.
2006-07-11 * ld-cris/libdso-2.d: Adjust for recent hash-related changes.Hans-Peter Nilsson2-9/+13
2006-07-10include/Jakub Jelinek12-10/+59
* bfdlink.h (struct bfd_link_info): Add emit_hash and emit_gnu_hash bitfields. include/elf/ * common.h (SHT_GNU_HASH, DT_GNU_HASH): Define. ld/ * scripttempl/elf.sc: Add .gnu.hash section. * emultempl/elf32.em (OPTION_HASH_STYLE): Define. (gld${EMULATION_NAME}_add_options): Register --hash-style option. (gld${EMULATION_NAME}_handle_option): Handle it. (gld${EMULATION_NAME}_list_options): Document it. * ldmain.c (main): Initialize emit_hash and emit_gnu_hash. * ld.texinfo: Document --hash-style option. bfd/ * elf.c (_bfd_elf_print_private_bfd_data): Handle DT_GNU_HASH. (bfd_section_from_shdr, elf_fake_sections, assign_section_numbers): Handle SHT_GNU_HASH. (special_sections_g): Include .gnu.hash section. (bfd_elf_gnu_hash): New function. * elf-bfd.h (bfd_elf_gnu_hash, _bfd_elf_hash_symbol): New prototypes. (struct elf_backend_data): Add elf_hash_symbol method. * elflink.c (_bfd_elf_link_create_dynamic_sections): Create .hash only if info->emit_hash, create .gnu.hash section if info->emit_gnu_hash. (struct collect_gnu_hash_codes): New type. (elf_collect_gnu_hash_codes, elf_renumber_gnu_hash_syms, _bfd_elf_hash_symbol): New functions. (compute_bucket_count): Don't compute HASHCODES array, instead add that and NSYMS as arguments. Use bed->s->sizeof_hash_entry instead of bed->s->arch_size / 8. Fix .hash size estimation. When not optimizing, use the number of hashed symbols rather than dynsymcount. (bfd_elf_size_dynamic_sections): Only add DT_HASH if info->emit_hash, and ADD DT_GNU_HASH if info->emit_gnu_hash. (bfd_elf_size_dynsym_hash_dynstr): Size .hash only if info->emit_hash, adjust compute_bucket_count caller. Create and populate .gnu.hash section if info->emit_gnu_hash. (elf_link_output_extsym): Only populate .hash section if finfo->hash_sec != NULL. (bfd_elf_final_link): Adjust assertion. Handle DT_GNU_HASH. * elfxx-target.h (elf_backend_hash_symbol): Define if not yet defined. (elfNN_bed): Add elf_backend_hash_symbol. * elf64-x86-64.c (elf64_x86_64_hash_symbol): New function. (elf_backend_hash_symbol): Define. * elf32-i386.c (elf_i386_hash_symbol): New function. (elf_backend_hash_symbol): Define. binutils/ * readelf.c (get_dynamic_type): Handle DT_GNU_HASH. (get_section_type_name): Handle SHT_GNU_HASH. (dynamic_info_DT_GNU_HASH): New variable. (process_dynamic_section): Handle DT_GNU_HASH. (process_symbol_table): Print also DT_GNU_HASH histogram. ld/testsuite/ * ld-powerpc/tlsso32.r: Adjust. * ld-powerpc/tlsso32.d: Adjust. * ld-powerpc/tlsso32.g: Adjust. * ld-powerpc/tlsso.r: Adjust. * ld-powerpc/tlsso.g: Adjust. * ld-powerpc/tlstocso.g: Adjust.
2006-07-10* po/zh_TW.po: New Chinese (traditional) translation.Nick Clifton4-4/+1924
* configure.in (ALL_LINGUAS): Add zh_TW. * configure: Regenerate.
2006-07-07PR ld/2874Nick Clifton2-9/+13
* ld.texinfo: Remove "Using LD" from the title since it is redundant.
2006-07-06PR ld/2877Nick Clifton2-2/+7
* ld.texinfo: Fix spelling mistakes.
2006-07-05 * ld-mips-elf/multi-got-1.d, ld-mips-elf/tls-multi-got-1.got,Thiemo Seufer4-8201/+8206
ld-mips-elf/tls-multi-got-1.r: Update multigot testcases.
2006-06-30bfd/H.J. Lu8-70/+44
2006-06-30 H.J. Lu <hongjiu.lu@intel.com> * elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax instead of 2 nops. * elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise. (elf64_x86_64_plt0_entry): Use nopl 0(%rax) instead of 4 nops. ld/testsuite/ 2006-06-30 H.J. Lu <hongjiu.lu@intel.com> * ld-i386/tlsbindesc.dd: Updated to expect xchg %ax,%ax instead of 2 nops. * ld-i386/tlsdesc.dd: Likewise. * ld-i386/tlsgdesc.dd: Likewise. * ld-x86-64/tlsbindesc.dd: Likewise. * ld-x86-64/tlsdesc.dd: Likewise. * ld-x86-64/tlsdesc.pd: Likewise. * ld-x86-64/tlsgdesc.dd: Likewise.
2006-06-29 PR ld/2513Jakub Jelinek2-1/+6
* elf32-i386.c (GOT_TLS_MASK, GOT_TLS_IE_IE, GOT_TLS_IE_GD, GOT_TLS_IE_MASK, elf_i386_check_relocs, allocate_dynrelocs): Revert 2006-04-08 changes. (elf_i386_relocate_section): Likewise. For GD->IE transition change subl into addl whenever tls_type is GOT_TLS_IE_POS. * ld-i386/tlsbin.dd: Fix expected output.
2006-06-27* emultempl/pe.em (gld_$_open_dynamic_archive): Compute maximum length ofNick Clifton2-7/+27
format strings in the libname_fmt[] array, rather than relying upon a statically chosen value. Adjust xmalloc call to use this longest length.
2006-06-27(-rpath-link): Clarify distinction between -rpath and -rpath-link.Nick Clifton2-27/+34
2006-06-23 * configure.tgt (i[3-7]86-*-solaris2*, i[3-7]86-*-solaris*): SetDaniel Jacobowitz2-0/+7
targ_extra_libpath.
2006-06-23* pe-dll.c (pe_details_type): Add new pointer for symbols list autofilter.Nick Clifton2-55/+86
(autofilter_symbollist): Split into autofilter_symbollist_generic and autofilter_symbollist_i386. (pe_detail_list): Add autofilter_symbollist_i386 to i386 case and autofilter_symbollist_generic for all the others. (autofilter_symbolprefixlist): Moved _fmode, _impure_ptr, cygwin_attach_dll, cygwin_premain0, cygwin_premain1, cygwin_premain2, cygwin_premain3, environ, into autofilter_symbollist_i386. (auto_export): Get autofilter_symbollist from pe_details.
2006-06-22PR ld/2757Nick Clifton2-1/+8
* emultempl/pe.em (gld_$_after_open): When reporting non PE format output files mention the file name and the fact that it is an output file.
2006-06-22Correct comment.Nick Clifton1-2/+4
2006-06-22* emultempl/pe.em (gld_${EMULATION_NAME}_open_dynamic_archive): Restructure.Nick Clifton3-76/+88
Add native "%s.lib" format to search list * ld.texinfo (node WIN32): Update documentation on dynamic lib search order. Add another reason for using import libs.
2006-06-21Fix for segmentation fault.Mark Shinwell2-1/+18
* ldlang.c (lang_insert_orphan): Correctly handle the case where the section is to end up after the section currently at the end of the list in output_bfd.
2006-06-21 * ld-elf/tls_common.exp: Match 32-bit output.Alan Modra2-1/+5
2006-06-21 * emultempl/mmo.em: Improve comments. Explain why there'sHans-Peter Nilsson2-5/+16
ELF-stuff here.
2006-06-20 * emultempl/elf-generic.em (gld${EMULATION_NAME}_map_segments): LimitAlan Modra6-306/+182
loop to ten iterations. Throw away any previous linker generated segment map. * ldlang.c (lang_phdr_list): Make global. * ldlang.h (lang_phdr_list): Declare. * Makefile.am (ELF_GEN_DEPS): Define. Use in emul deps. * Makefile.in: Regenerate.
2006-06-20 * elflink.c (elf_link_add_object_symbols): Don't create .tcommonJakub Jelinek3-0/+86
section for relocatable link. * ld-elf/tls_common.exp: New test. * ld-elf/tls_common.s: New file.