aboutsummaryrefslogtreecommitdiff
path: root/ld
AgeCommit message (Collapse)AuthorFilesLines
2006-09-25 * ld.texinfo (Options): Update description of local symbols for -X.Bob Wilson2-3/+7
2006-09-242006-09-23 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-2/+9
PR ld/3249 * scripttempl/elf.sc: Don't combine .gnu.linkonce.d.*personality* and .gnu.linkonce.wi.* sections with .data and .debug_info for relocatable link.
2006-09-21 * ld-m68k/plt1-68020.d: Fix patterns to match also for 64-bitAndreas Schwab2-4/+9
hosts.
2006-09-20Add x86_64-mingw64 targetNick Clifton21-68/+2291
2006-09-18 * ld-mips-elf/mips-elf.exp: Add test for R_MIPS16_GPREL relocations.Thiemo Seufer4-0/+44
* ld-mips-elf/reloc-3-n32.d, ld-mips-elf/reloc-3.d: New files.
2006-09-18 * ld-elfcomm/elfcomm.exp: Enable the alignment test forThiemo Seufer2-7/+17
mips*-*-*.
2006-09-18 * configure.tgt: Add mips*el-sde-elf* and mips*-sde-elf*Thiemo Seufer2-0/+9
configurations.
2006-09-16Add support for Score target.Nick Clifton11-3/+145
2006-09-16* bfd-in.h (STRING_AND_COMMA): New macro. Takes one constant string as itsNick Clifton12-102/+116
argument and emits the string followed by a comma and then the length of the string. (CONST_STRNEQ): New macro. Checks to see if a variable string has a constant string as its initial characters. (CONST_STRNCPY): New macro. Copies a constant string to the start of a variable string. * bfd-in2.h: Regenerate. * <remainign files>: Make use of the new macros.
2006-09-152006-09-15 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+5
* ld-scripts/overlay-size.t: Discard .reginfo sections.
2006-09-152006-09-15 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+5
* ld-elf/hash.d: Don't run for mips targets.
2006-09-152006-09-15 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu6-13/+25
* ld-elf/loadaddr.s: Pad sections to 16 bytes. * ld-elf/loadaddr1.d: Updated. * ld-elf/loadaddr2.d: Likewise. * ld-elf/loadaddr3a.d: Likewise. * ld-elf/loadaddr3b.d: Likewise.
2006-09-15PR ld/3107Nick Clifton2-1/+19
* ldlang.c (lang_size_sections_1): Do not abort when encountering a non-empty section that is ignored. Instead produce a warning message.
2006-09-12bfd/H.J. Lu2-0/+13
2006-09-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/3197 * elflink.c (elf_link_output_extsym): Compute bucket only if needed. ld/testsuite/ 2006-09-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/3197 * ld-elf/hash.d: New test.
2006-09-082006-09-08 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+8
* ld.texinfo: Document --dynamic-list-cpp-typeinfo.
2006-09-082006-09-04 Vladimir Prus <vladimir@codesourcery.com>Richard Earnshaw2-11/+17
* ld-arm/use-thumb-lib.sym: Use regexps instead of absolute addresses, for robustness.
2006-09-07bfd/H.J. Lu32-19/+425
2006-09-07 H.J. Lu <hongjiu.lu@intel.com> * elf-bfd.h (elf_link_hash_entry): Add a dynamic field. (bfd_elf_link_mark_dynamic_symbol): New. (SYMBOLIC_BIND): New. * elf32-i386.c (elf_i386_check_relocs): Replace info->symbolic with SYMBOLIC_BIND (info, h). (elf_i386_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. (elf64_x86_64_relocate_section): Likewise. * elfxx-ia64.c (elfNN_ia64_check_relocs): Likewise. * elflink.c (bfd_elf_link_mark_dynamic_symbol): New. (bfd_elf_record_link_assignment): Call bfd_elf_link_mark_dynamic_symbol on new entry. (_bfd_elf_merge_symbol): Likewise. (_bfd_elf_export_symbol): Return if the symbol isn't exported. (_bfd_elf_fix_symbol_flags): Replace info->symbolic with SYMBOLIC_BIND (info, h). (_bfd_elf_dynamic_symbol_p): Likewise. (_bfd_elf_symbol_refs_local_p): Likewise. (bfd_elf_size_dynamic_sections): Updated. include/ 2006-09-07 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (bfd_elf_dynamic_list): New. (bfd_link_info): Add a dynamic field. ld/ 2006-09-07 H.J. Lu <hongjiu.lu@intel.com> * Makefile.am (CXX): Set to g++. (CXX_FOR_TARGET): Likewise. * Makefile.in: Regenerated. * NEWS: Mention --dynamic-list. * ld.texinfo: Document --dynamic-list. * ldgram.y: Support dynamic list. * ldlang.c (lang_process): Call lang_finalize_version_expr_head on link_info.dynamic if needed. (lang_append_dynamic_list): New. (lang_append_dynamic_list_cpp_typeinfo): New. * ldlang.h (lang_append_dynamic_list): Likewise. * ldlang.h (lang_append_dynamic_list_cpp_typeinfo): Likewise. * ldlex.h (input_enum): Add input_dynamic_list. * ldlex.l: Handle it. * ldmain.c (main): Initialize link_info.dynamic. * lexsup.c (option_values): Add OPTION_DYNAMIC_LIST and OPTION_DYNAMIC_LIST_CPP_TYPEINFO. (ld_options): Add entries for OPTION_DYNAMIC_LIST and OPTION_DYNAMIC_LIST_CPP_TYPEINFO. (parse_args): Handle OPTION_DYNAMIC_LIST and OPTION_DYNAMIC_LIST_CPP_TYPEINFO. ld/testsuite/ 2006-09-07 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/dl1.c: New file. * ld-elf/dl1.list: Likewise. * ld-elf/dl1.out: Likewise. * ld-elf/dl1main.c: Likewise. * ld-elf/dl2.c: Likewise. * ld-elf/dl2.list: Likewise. * ld-elf/dl2a.out: Likewise. * ld-elf/dl2b.out: Likewise. * ld-elf/dl2main.c: Likewise. * ld-elf/dl2xxx.c: Likewise. * ld-elf/dl2xxx.list: Likewise. * ld-elf/dl3.cc: Likewise. * ld-elf/dl3.list: Likewise. * ld-elf/dl3a.out: Likewise. * ld-elf/dl3b.out: Likewise. * ld-elf/dl3header.h: Likewise. * ld-elf/dl3main.cc: Likewise. * ld-elf/shared.exp: Updated. * lib/ld-lib.exp (run_ld_link_exec_tests): Take an optional argument for source language. Use CC/CXX for link, depending on source language. (run_cc_link_tests): Likewise.
2006-09-07* emulparams/h8300elf.sh: _tinydata should not be placed in relocatables.Nick Clifton4-3/+10
* emulparams/h8300.sh: Likewise. * emulparams/h8300sxelf.sh: Likewise.
2006-09-052006-09-05 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-0/+30
PR ld/3015 * emultempl/elf32.em: Enable "-z relro" only if $COMMONPAGESIZE is defined.
2006-08-29 * ldlang.c (walk_wild): Allow * to glob '/' in wildcarded match.Nathan Sidwell2-1/+5
2006-08-29Adjust target test.Alan Modra3-2/+7
2006-08-29New tests.Alan Modra4-0/+50
2006-08-28 * scripttempl/elf.sc: Ensure that crtbegin and crtend entries willAlan Modra13-49/+90
not match random object files in a path containing "crtbegin" or "crtend" as part of a directory name. * scripttempl/armbpabi.sc: Likewise. * scripttempl/crisaout.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mmo.sc: Likewise. * scripttempl/xstormy16.sc: Likewise.
2006-08-25bfd/Bob Wilson3-2/+7
* elf32-xtensa.c (xtensa_get_property_section_name): Delete. (xtensa_get_property_section): New. (xtensa_read_table_entries): Use xtensa_get_property_section. (relax_property_section, xtensa_get_property_predef_flags): Handle group name suffixes in property section names. (match_section_group): New. gas/ * config/tc-xtensa.c (FINI_LITERAL_SECTION_NAME): Delete. (INIT_LITERAL_SECTION_NAME): Delete. (lit_state struct): Remove segment names, init_lit_seg, and fini_lit_seg. Add lit_prefix and current_text_seg. (init_literal_head_h, init_literal_head): Delete. (fini_literal_head_h, fini_literal_head): Delete. (xtensa_begin_directive): Move argument parsing to xtensa_literal_prefix function. (xtensa_end_directive): Deallocate lit_prefix field of lit_state. (xtensa_literal_prefix): Parse the directive argument here and record it in the lit_prefix field. Remove code to derive literal section names. (linkonce_len): New. (get_is_linkonce_section): Use linkonce_len. Check for any ".gnu.linkonce.*" section, not just text sections. (md_begin): Remove initialization of deleted lit_state fields. (xtensa_reorder_segments, xtensa_post_relax_hook): Remove references to init_literal_head and fini_literal_head. (xtensa_move_literals): Likewise. Skip literals for .init and .fini when traversing literal_head list. (match_section_group): New. (cache_literal_section): Rewrite to determine the literal section name on the fly, create the section and return it. (xtensa_switch_to_literal_fragment): Adjust for cache_literal_section. (xtensa_switch_to_non_abs_literal_fragment): Likewise. (xtensa_create_property_segments, xtensa_create_xproperty_segments): Use xtensa_get_property_section from bfd. (retrieve_xtensa_section): Delete. * doc/c-xtensa.texi (Xtensa Options): Fix --text-section-literals description to refer to plural literal sections and add xref to the Literal Directive section. (Literal Directive): Describe new rules for deriving literal section names. Add footnote for special case of .init/.fini with --text-section-literals. (Literal Prefix Directive): Replace old naming rules with xref to the Literal Directive section. ld/ * emulparams/elf32xtensa.sh (.xt.prop): Add .xt.prop.*. * scripttempl/elfxtensa.sc (.text): Add .literal.*.
2006-08-24* ldlang.c (lang_size_sections_1, lang_assignment_statement_enum):Nick Clifton2-2/+8
Adjust the current address of DEFAULT_MEMORY_REGION even when dot hasn't changed.
2006-08-232006-08-23 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu3-2/+8
PR ld/3052 * ld-elf/loadaddr1.t: Add "AT (ADDR(.data))". * ld-elf/loadaddr2.t: Likewise.
2006-08-232006-08-23 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu4-0/+35
PR ld/3103 * ld-elf/overlay.d: New file. * ld-elf/overlay.s: Likewise. * ld-elf/overlay.t: Likewise.
2006-08-23 * ldexp.c (fold_name <LOADADDR>): Return an absolute valueAlan Modra2-2/+6
rather than a section relative value.
2006-08-22* configure.tgt: Set targ_emul to arm_wince_pe for ARM Windows CE targets.Nick Clifton2-3/+6
2006-08-22 * NEWS: Mention LMA default change.Alan Modra4-11/+53
* ld.texinfo (Output Section LMA): Update default description. (Location Counter): Clarify backward movement. * ldlang.c (lang_size_sections_1): Leave non-alloc sections with default lma equal to vma. Warn on backward movement of dot.
2006-08-21bfdNick Clifton6-32/+97
* Makefile.am: Add rules to build pe-arm-wince.lo and pei-arm-wince.lo objects. * Makefile.in: Regenerate. * pe-arm-wince.c: New file. * pei-arm-wince.c: New file. * pei-arm.c: Remove ARM_WINCE block. * pe-arm.c: Remove ARM_WINCE block. Rename bfd_arm_pe_allocate_interworking_sections, bfd_arm_pe_get_bfd_for_interworking, and bfd_arm_pe_process_before_allocation to bfd_armpe_allocate_interworking_sections, bfd_armpe_get_bfd_for_interworking, and bfd_armpe_process_before_allocation. Move them before including bfd.h. * bfd.c: ARM wince bfd format names were renamed. Adjust. * coff-arm.c [ARM_WINCE]: Adjust so Windows CE doesn't end up with unexpected/conflicting relocs. * targets.c: The arm-wince-pe target got its own new vector. Adjust. * config.bfd: Likewise. * configure.in: Likewise. * configure: Regenerate. binutils * configure.in: Split arm-pe and arm-wince-pe. Build dlltool with -DDLLTOOL_ARM_WINCE for Windows CE case. * configure: Regenerate. * dlltool.c: Add support for arm-wince. gas * Makefile.am (TARG_ENV_HFILES): Add te-wince-pe.h. * Makefile.in: Regenerate. * config/tc-arm.h [TARGET_FORMAT]: ARM wince bfd names were renamed. Adjust. ld * Makefile.am: Split arm-wince into its own emulation. * Makefile.in: Regenerate. * configure.tgt: Set targ_emul to arm_wince_pe for ARM Windows CE targets. * pe-dll.c : Define PE_ARCH_arm_wince. (pe_detail_list): Add PE_ARCH_arm_wince case. (make_one): Handle PE_ARCH_arm_epoc and PE_ARCH_arm_wince cases. * emulparams/arm_wince_pe.sh: New file. * emultempl/pe.em: Handle new TARGET_IS_arm_wince_pe define. Remap bfd_arm_allocate_interworking_sections, bfd_arm_get_bfd_for_interworking and bfd_arm_process_before_allocation for arm-pe and arm-wince-pe targets too. (gld_${EMULATION_NAME}_recognized_file): Handle arm-wince and arm-epoc bfd format names.
2006-08-182006-08-18 Paul Brook <paul@codesourcery.com>Paul Brook6-4/+82
bfd/ * elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue. (elf32_arm_link_hash_newfunc): Initialize export_glue. (record_arm_to_thumb_glue): Return stub symbol. (elf32_arm_create_thumb_stub): New function. (elf32_arm_to_thumb_stub): Use it. (elf32_arm_to_thumb_export_stub): New function. (elf32_arm_begin_write_processing): New function. (allocate_dynrelocs): Allocate Arm stubs. (elf_backend_begin_write_processing): Define. (elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED. Call elf32_arm_begin_write_processing. ld/ * emultempl/armelf.em (arm_elf_before_allocation): Call gld${EMULATION_NAME}_before_allocation after setting interworking bfd. ld/testsuite/ * ld-arm/arm-elf.exp (armelftests): Add armthumb-lib.so. Add -use-blx to mixed-lib.so * ld-arm/armthumb-lib.d: New file. * ld-arm/armthumb-lib.sym: New file.
2006-08-182006-08-18 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu6-0/+71
PR ld/3052 * ld-elf/loadaddr.s: New file. * ld-elf/loadaddr1.d: Likewise. * ld-elf/loadaddr1.t: Likewise. * ld-elf/loadaddr2.d: Likewise. * ld-elf/loadaddr2.t: Likewise.
2006-08-17* pe-dll.c (autofilter_symbolprefixlist): Remove .idata$.Christopher Faylor2-6/+6
(generate_reloc): Revert to skipping sections without a SEC_LOAD flag, and to not skipping .idata* sections.
2006-08-17bfd/Alan Modra7-54/+67
* elf64-ppc.c (create_linkage_sections): Align .glink to 8 bytes. (ppc64_elf_build_stubs): Use new lazy linking stub. ld/testsuite/ * ld-powerpc/tlsexe.d: Update for lazy link stub change. * ld-powerpc/tlsexe.r: Likewise. * ld-powerpc/tlsexetoc.d: Likewise. * ld-powerpc/tlsexetoc.r: Likewise. * ld-powerpc/tlsso.d: Likewise. * ld-powerpc/tlstocso.d: Likewise.
2006-08-17bfd/H.J. Lu2-0/+10
2006-08-16 H.J. Lu <hongjiu.lu@intel.com> PR ld/3015 * elf.c (get_program_header_size): Add a PT_GNU_RELRO segment only if there is a PT_DYNAMIC segment. (_bfd_elf_map_sections_to_segments): Likewise. (assign_file_positions_for_load_sections): Set PT_GNU_RELRO segment alignment to 1. ld/testsuite/ 2006-08-16 H.J. Lu <hongjiu.lu@intel.com> PR ld/3015 * ld-elf/binutils.exp: Add tests for "-z relro".
2006-08-16ld/Alan Modra6-82/+115
PR 3052 * ldlang.h (lang_output_section_statement_type): Replace "processed" field with "processed_vma" and "processed_lma". * ldlang.c (lang_do_assignments_1): Move lma setting code.. (lang_size_sections_1): ..to here. (lang_reset_memory_regions): Adjust for lang_output_section_statement_type change. * ldexp.c (fold_name): Likewise. And this is something I forgot the check in from the previous patch. ld/testsuite/ * ld-scripts/overlay-size-map.d: Adjust.
2006-08-11 * ld-elfcomm/elfcomm.exp (dump_common1): Extend regexp to match alsoThiemo Seufer2-1/+6
MIPS small commons.
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.