2010-12-31 Robert Millan Richard Sandiford * configure.tgt: Recognize mips-freebsd and mips-kfreebsd-gnu. * emulparams/elf32btsmip_fbsd.sh: New file. * emulparams/elf32btsmipn32_fbsd.sh: Likewise. * emulparams/elf32ltsmip_fbsd.sh: Likewise. * emulparams/elf32ltsmipn32_fbsd.sh: Likewise. * emulparams/elf64btsmip_fbsd.sh: Likewise. * emulparams/elf64ltsmip_fbsd.sh: Likewise. * Makefile.am: Add build rules for `eelf32btsmip_fbsd.c', `eelf32btsmipn32_fbsd.c', `eelf32ltsmip_fbsd.c', `eelf32ltsmipn32_fbsd.c', `eelf64btsmip_fbsd.c' and `eelf64ltsmip_fbsd.c'. * Makefile.in: Regenerate. 2010-12-30 H.J. Lu * emulparams/elf32_x86_64.sh: New. * configure.tgt (targ64_extra_emuls): Add elf32_x86_64 for i[3-7]86-*-linux-*. (targ_extra_libpath): Likewise. (targ_extra_emuls): Add elf32_x86_64 for x86_64-*-linux-*. (targ_extra_libpath): Likewise. * Makefile.am (ALL_64_EMULATION_SOURCES): Add eelf32_x86_64.c. (eelf32_x86_64.c): New. * Makefile.in: Regenerated. 2010-12-20 Alan Modra PR ld/12327 * ld.texinfo (Expression Section): Describe treatment of numbers and absolute symbols. * ldemul.c (after_open_default): Look up __ld_compatibility. * ldexp.c (fold_name): Convert absolute symbols to numbers when inside output section definitions, or when __ld_compatibility >= 221. (exp_fold_tree_1): Convert numbers to absolute when not in output section definition and __ld_compatibility < 221. Don't always convert values outside an output section definition to absolute. * ldexp.h (uses_defined): Comment. * ldlang.c (ld_compatibility): New variable. * ldlang.h (ld_compatibility): Declare. * emultempl/aix.em, * emultempl/armcoff.em, * emultempl/beos.em, * emultempl/elf32.em, * emultempl/genelf.em, * emultempl/lnk960.em, * emultempl/m68kcoff.em, * emultempl/mmo.em, * emultempl/pe.em, * emultempl/pep.em, * emultempl/sunos.em, * emultempl/z80.em: Call after_open_default from after_open function. 2010-12-20 Alan Modra PR ld/12001 Revert 2010-11-03 Nick Clifton * ldlang.c (ldlang_def_chain_list): Delete. (insert_defined, ldlang_add_def, lang_place_defineds): Delete. (lang_process): Don't call lang_place_defineds. (lang_add_assignment): Don't do anything special for --defsym. * ldexp.h (struct ldexp_control): Add uses_defined. (exp_fold_tree_no_dot): Declare. * ldexp.c (exp_fold_tree): Clear uses_defined. (exp_fold_tree_no_dot): Likewise. Make global. (fold_name ): Set uses_defined. (exp_fold_tree_1 ): Define symbol during first phase even when the value being assigned isn't valid. * ldlang.c (open_input_bfds): Process assignment statements. (lang_process): Bump lang_statement_iteration. (scan_for_self_assignment): Formatting. (print_assignment): Style. 2010-12-15 H.J. Lu * Makefile.am (GENSCRIPTS): Add @enable_initfini_array@. * NEWS: Mention SORT_BY_INIT_PRIORITY. * configure.in: Add AC_CANONICAL_BUILD. Add --enable-initfini-array. * genscripts.sh (ENABLE_INITFINI_ARRAY): New. * ld.h (sort_type): Add by_init_priority. * ld.texinfo: Document SORT_BY_INIT_PRIORITY. * ldgram.y (SORT_BY_INIT_PRIORITY): New. (wildcard_spec): Handle SORT_BY_INIT_PRIORITY. * ldlang.c (get_init_priority): New. (compare_section): Use get_init_priority for by_init_priority. * ldlex.l (SORT_BY_INIT_PRIORITY): New. * scripttempl/elf.sc: Support ENABLE_INITFINI_ARRAY. * Makefile.in: Regenerated. * aclocal.m4: Regenerated. * config.in: Likewise. * configure: Likewise. 2010-12-13 Alan Modra * ldlang.c (load_symbols): Correct last change. 2010-12-12 H.J. Lu * ldlang.c (load_symbols): Optimize for add_archive_element. 2010-12-09 Mike Frysinger * .gitignore: New file. 2010-12-06 H.J. Lu * lexsup.c (ld_options): Add -flto and -flto-partition= for GCC LTO option compatibility. 2010-12-06 H.J. Lu PR ld/12288 * plugin.c (message): Don't add the trailing `\n' for LDPL_ERROR. 2010-12-06 H.J. Lu PR ld/12288 * testplug.c: Remove the trailing `\n' from TV_MESSAGE. 2010-12-06 Dmitry Gorbachev PR ld/12288 * plugin.c (message): Use putchar for the trailing `\n'. 2010-12-06 H.J. Lu Dmitry Gorbachev PR ld/12289 * ldmain.c (main): Don't call plugin_call_cleanup. * plugin.c (plugin_call_cleanup): Make it static. (message): Don't call plugin_call_cleanup. (plugin_load_plugins): Call xatexit with plugin_call_cleanup. 2010-12-05 H.J. Lu PR ld/12289 * plugin.c (message): Call plugin_call_cleanup on fatal error. 2010-12-05 H.J. Lu * plugin.c (message): Add a space after `:' in error message. 2010-12-05 H.J. Lu * plugin.c (asymbol_from_plugin_symbol): Add the trailing `\n' to einfo. (get_symbols): Likewise. (plugin_notice): Likewise. (plugin_multiple_definition): Likewise. 2010-12-05 H.J. Lu PR ld/12288 * plugin.c (message): Add the trailing `\n'. 2010-12-05 H.J. Lu * ldfile.c (ldfile_open_file_search): Check maybe_archive instead of is_archive. * emultempl/aix.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/vms.em: Likewise. * ldlang.c (new_afile): Set maybe_archive instead of is_archive.. * ldlang.h (lang_input_statement_struct): Replace is_archive with maybe_archive. 2010-12-05 H.J. Lu PR ld/12277 * plugin.c (asymbol_from_plugin_symbol): Properly convert LTO plugin visibility to ELF visibility. (is_visible_from_outside): Re-indent. 2010-12-04 Alan Modra * ldlang.c (lang_size_sections_1): Align lma using same alignment as for vma. 2010-12-03 H.J. Lu * lexsup.c (ld_options): Fix a typo in comments. 2010-12-01 H.J. Lu * plugin.h: Re-indent. 2010-11-30 Joel Sherrill * configure.tgt: Add sparc64-rtems. 2010-11-26 Alan Modra * po/ja.po: Update. 2010-11-25 Alan Modra * po/bg.po: Update. * po/es.po: Update. * po/fi.po: Update. * po/ja.po: New. * po/zh_CN.po: Update. 2010-11-25 Jan Hubicka * scripttempl/elf.sc: Group .text.exit, text.startup and .text.hot sections. 2010-11-23 Matthias Klose * configure.ac: For --enable-gold, handle value `default' instead of `both*'. Always install ld as ld.gold, install as ld if gold is the default. * configure: Regenerate. 2010-11-21 H.J. Lu * ldfile.c: Re-indent plugin code. * ldlang.c: Likewise. * ldmain.c: Likewise. * plugin.c: Likewise. 2010-11-20 H.J. Lu PR ld/12246 * plugin.c (asymbol_from_plugin_symbol): Set alignment of common symbol to 1 for For ELF targets. 2010-11-20 H.J. Lu PR ld/12247 * lexsup.c (parse_args): Properly report loading plugin error. 2010-11-19 Dave Korn * plugin.c (is_visible_from_outside): New function. (get_symbols): Use it. 2010-11-16 Jie Zhang * Makefile.am (eelf32bfinfd.c, eelf32bfin.c): Depend on bfin.em. * Makefile.in: Regenerated. * emulparams/bfin.sh (EXTRA_EM_FILE): Set. * emulparams/elf32bfinfd.sh (EXTRA_EM_FILE): Likewise. * emultempl/bfin.em: New. 2010-11-16 Yasuaki Taniguchi * emultempl/pe.em (_list_options): Correct typo. * emultempl/pep.em (_list_options): Likewise. 2010-11-08 Thomas Schwinge * configure.host: Add stanza for *-*-gnu*. 2010-11-05 Pierre Muller * emultempl/spuelf.em (new_tmp_file): Fix wrong first parameter. 2010-11-05 Tristan Gingold * po/ld.pot: Regenerate * po/POTFILES.in: Regenerate 2010-11-05 Tristan Gingold * NEWS: Add marker for 2.21. 2010-11-05 Dave Korn * plugin.h (plugin_active_plugins_p): New prototype. (is_ir_dummy_bfd): Delete prototype. * plugin.c: Fix formatting issues. (is_ir_dummy_bfd): Make static. (plugin_active_plugins_p): New function. * ldfile.c (ldfile_try_open_bfd): Use it to save work if no plugins are loaded. Always close file descriptor after claim handler returns. * ldmain.c (add_archive_element): Likewise. 2010-11-05 Alan Modra * ldlang.c (lang_add_section): Distinguish ELF treatment of NOLOAD. (map_input_to_output_sections): Likewise. (lang_size_sections_1): Likewise. (IGNORE_SECTION): Don't test SEC_NEVER_LOAD. (lang_check_section_addresses): Likewise. 2010-11-04 Kai Tietz * scripttempl/pe.sc (.debug_types): New. * scripttempl/pep.sc: Likewise. 2010-11-04 Alan Modra * plugin.c (is_ir_dummy_bfd): Don't segfault on NULL abfd. 2010-11-03 Nick Clifton PR ld/12001 * ldlang.c (ldlang_def_chain_list): New variable. Contains a list of symbols defined via the --defsym command line option and currently waiting assignment. (insert_defined): Add a defined symbol to the symbol table. (ldlang_add_def): Add a entry to the ldlang_def_chain_list. (lang_place_defineds): Walk ldlang_def_chain_list defining the symbols. (lang_process): Call lang_place_defineds. (lang_add_assignment): If the assignment has come from a --defsym command line option then call lang_add_def. 2010-11-03 Alan Modra * Makefile.am (eelf64hppa.c): Correct dependencies. * Makefile.in: Regenerate. 2010-11-02 H.J. Lu * scripttempl/armbpabi.sc: Include compressed DWARF debug sections. * scripttempl/avr.sc: Likewise. * scripttempl/elf32cr16.sc: Likewise. * scripttempl/elf32crx.sc: Likewise. * scripttempl/elf32msp430.sc: Likewise. * scripttempl/elf32msp430_3.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elf_chaos.sc: Likewise. * scripttempl/elfd10v.sc: Likewise. * scripttempl/elfd30v.sc: Likewise. * scripttempl/elfi370.sc: Likewise. * scripttempl/elfm68hc11.sc: Likewise. * scripttempl/elfm68hc12.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. * scripttempl/ip2k.sc: Likewise. * scripttempl/iq2000.sc: Likewise. * scripttempl/mep.sc: Likewise. * scripttempl/mmo.sc: Likewise. * scripttempl/v850.sc: Likewise. * scripttempl/xstormy16.sc: Likewise. 2010-10-29 H.J. Lu * ldfile.c (ldfile_try_open_bfd): Set BFD_DECOMPRESS after bfd_openr returns. * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Likewise. * scripttempl/elf.sc: Include compressed DWARF debug sections. 2010-10-28 Alan Modra * ldfile.c (find_scripts_dir): Don't look in absolute SCRIPTDIR. 2010-10-28 Matthias Klose * ld.texinfo: Add directory section for info document. * ldint.texinfo: Likewise. 2010-10-28 Alan Modra * emultempl/ppc64elf.em (gld${EMULATION_NAME}_new_vers_pattern): For --no-undefined-version, don't report dot sym versions added by ld. 2010-10-28 Alan Modra * ldlang.h (ldlang_add_undef): Add cmdline param. * ldlang.c (undef_from_cmdline): New var. (ldlang_add_undef): Add cmdline param. Set undef_from_cmdline. (lang_end): Really require -e or -u from command line on relocatable --gc-sections. * ldemul.c (after_parse_default): Adjust ldlang_add_undef call. * ldgram.y (extern_name_list_body): Likewise. * lexsup.c (parse_args): Likewise. * emultempl/aix.em (gld${EMULATION_NAME}_read_file): Likewise. 2010-10-25 Alan Modra * plugin.c (plugin_get_ir_dummy_bfd): Set bfd_use_reserved_id. Formatting. 2010-10-22 Rainer Orth * emulparams/elf32_sparc_sol2.sh (OUTPUT_FORMAT): Set to elf32-sparc-sol2. * emulparams/elf64_sparc_sol2.sh (OUTPUT_FORMAT): Set to elf64-sparc-sol2. 2010-10-22 Alan Modra * ldwrite.c (build_link_order ): Don't output when section has no contents. (build_link_order ): Likewise. 2010-10-21 Joseph Myers * emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Use .c6xabi.attributes, not __TI_build_attributes. 2010-10-20 Dave Korn * plugin.c (get_symbols): Check symbol type correctly. 2010-10-15 Dave Korn * configure.in: If can't be found, try for * configure: Regenerate. * config.in: Likewise. * plugin.c [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlopen): Provide trival LoadLibrary-based replacement for Windows systems. [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlsym): Likewise trivial replacement based on GetProcAddress. [!HAVE_DLFCN_H && HAVE_WINDOWS_H] (dlsym): Likewise FreeLibrary. * sysdep.h: Don't infer presence of from ENABLE_PLUGINS anymore, use its own guard. 2010-10-15 Dave Korn * plugin.c (add_input_file): Take copy of input string. (add_input_library): Likewise. (set_extra_library_path): Likewise. 2010-10-14 Dave Korn Apply LD plugin patch series (part 6/6). * ldlang.c (load_symbols): Handle bfd subsitution when calling the add_archive_element callback. * ldmain.c (add_archive_element)[ENABLE_PLUGINS]: Offer the archive member to the plugins and if claimed set "subsbfd" output parameter to point to the dummy IR-only BFD. 2010-10-14 Dave Korn Apply LD plugin patch series (part 5/6). * plugin.c (asymbol_from_plugin_symbol): If the bfd is an ELF bfd, find the elf symbol data and set the visibility in the st_other field. 2010-10-14 Dave Korn Apply LD plugin patch series (part 4/6). * ldlang.c (lang_process)[ENABLE_PLUGINS]: Move invocation of plugin_call_all_symbols_read to before setting of gc_sym_list, and open any new input files that may have been added during it. * ldmain.c (multiple_definition)[ENABLE_PLUGINS]: Call out to plugin_multiple_definition and let it have first say over what to do with the clashing definitions. * plugin.c (no_more_claiming): New boolean variable. (plugin_cached_allow_multiple_defs): Likewise. (add_input_file): Implement. (add_input_library): Likewise. (set_extra_library_path): Likewise. (plugin_call_claim_file): Don't do anything when no_more_claiming set. (plugin_call_all_symbols_read): Set it. Disable link info "allow_multiple_definition" flag, but cache its value. (plugin_multiple_definition): New function. * plugin.h (plugin_multiple_definition): Add prototype. * testplug.c (addfile_enum_t): New enumerated typedef. (add_file_t): New struct typedef. (addfiles_list): New variable. (addfiles_tail_chain_ptr): Likewise. (record_add_file): New function. (parse_option): Parse "add:", "lib:" and "dir:" options and call it. (onall_symbols_read): Iterate the list of new files, libs and dirs, adding them. 2010-10-14 Dave Korn Apply LD plugin patch series (part 3/6). * ldmain.c (notice)[ENABLE_PLUGINS]: Call plugin_notice. * plugin.c (non_ironly_hash): Add new bfd hash table. (plugin_load_plugins): Exit early if no plugins to load. If plugins do load successfully, set notice_all flag in link info. (get_symbols): Implement. (plugin_load_plugins): Exit early if no plugins to load, else after loading plugins successfully enable notice_all mode. (init_non_ironly_hash): Lazily init non_ironly_hash table. (plugin_notice): Record symbols referenced from non-IR files in the non_ironly_hash. Suppress tracing, cref generation and nocrossrefs tracking for symbols from dummy IR bfds. * plugin.h: Fix formatting. (plugin_notice): Add prototype. * testplug.c (dumpresolutions): New global var. (parse_options): Accept "dumpresolutions". (onall_symbols_read): Get syms and dump resolutions if it was given. 2010-10-14 Dave Korn Apply LD plugin patch series (part 2/6). * ldfile.c (ldfile_try_open_bfd)[ENABLE_PLUGINS]: Don't return early during compat checks if they pass, instead offer any successfully opened and accepted file to the plugin claim file hooks chain. Create a dummy bfd to accept symbols added by the plugin, if the plugin claims the file. * ldlang.c (lang_process)[ENABLE_PLUGINS]: Call plugin all symbols read hook chain before ldemul_after_open. * ldlang.h (struct lang_input_statement_struct): Add new single-bit 'claimed' flag. * plugin.c (IRONLY_SUFFIX): New macro for dummy bfd file suffix. (IRONLY_SUFFIX_LEN): Length of the above string. (plugin_get_ir_dummy_bfd): New function to create the dummy bfd used to store symbols for ir-only files. (is_ir_dummy_bfd): New function to check if a bfd is ir-only. (asymbol_from_plugin_symbol): New function converts symbol formats. (add_symbols): Call it to convert plugin syms to bfd syms and add them to the dummy bfd. * plugin.h: Add missing include guards. (plugin_get_ir_dummy_bfd): Add prototype. (is_ir_dummy_bfd): Likewise. * testplug.c (TV_MESSAGE): New helper macro. (struct claim_file): New struct. (claim_file_t): New typedef. (tag_names[]): Make static and const. (claimfiles_list): New variable. (claimfiles_tail_chain_ptr): Likewise. (last_claimfile): Likewise. (record_claim_file): Record a file to claim on a singly-linked list. (parse_symdefstr): Parse an ASCII representation of a symbol from a plugin option into the fields of a struct ld_plugin_symbol. (record_claimed_file_symbol): Use it to parse plugin option for adding a symbol. (parse_option): Parse claim file and add symbol options. (dump_tv_tag): Use TV_MESSAGE. (onload): Likewise. (onclaim_file): Make static. Use TV_MESSAGE. Scan list of files to claim and claim this file if required, adding any symbols specified. (onall_symbols_read): Make static and use TV_MESSAGE. (oncleanup): Likewise. 2010-10-14 Dave Korn Apply LD plugin patch series (part 1/6). * configure.in: Add AC_CHECKs for file io and dlfcn headers and functions and AC_SEARCH for -ldl. (enable_plugins): New shell variable set if above tests find dlopen functionality. (ENABLE_PLUGINS): Add related automake conditional. * configure: Regenerate. * config.in: Likewise. * Makefile.am (PLUGIN_C): Declare plugin C source file, conditional on ENABLE_PLUGINS being defined. (PLUGIN_H): Likewise for header file. (PLUGIN_OBJECT): Likewise for object file. (PLUGIN_CFLAGS): Likewise -D flag required to compile plugin support. (AM_CPPFLAGS): Use PLUGIN_CFLAGS. (CFILES): Use PLUGIN_C. (HFILES): Use PLUGIN_H. (OFILES): Use PLUGIN_OBJECT. (ld_new_SOURCES): Use PLUGIN_C. (noinst_LTLIBRARIES)[ENABLE_PLUGINS]: Declare test plugin. (libldtestplug_la_SOURCES)[ENABLE_PLUGINS]: Add automake definition for test plugin. (libldtestplug_la_CFLAGS)[ENABLE_PLUGINS]: Likewise. (libldtestplug_la_LDFLAGS)[ENABLE_PLUGINS]: Likewise. * Makefile.in: Regenerate. * sysdep.h: Include stdarg.h, unistd.h and one of fcntl.h or sys/file.h where available. Include dlfcn.h when ENABLE_PLUGINS. (O_RDONLY): Supply default definition likewise to bfd's sysdep.h (O_WRONLY): Likewise. (O_RDWR): Likewise. (O_ACCMODE): Likewise. (O_BINARY): Likewise. (SEEK_SET): Likewise. (SEEK_CUR): Likewise. (SEEK_END): Likewise. * ldmisc.c (vfinfo): Make non-static. Add %p format char. * ldmisc.h (vfinfo): Declare extern prototype. * lexsup.c (enum option_values)[ENABLE_PLUGINS]: Add new entries for OPTION_PLUGIN and OPTION_PLUGIN_OPT. (ld_options[])[ENABLE_PLUGINS]: Add option data for the above two. (parse_args)[ENABLE_PLUGINS]: Handle them, and load all plugins once option parsing is complete. * ldmain.c (main)[ENABLE_PLUGINS]: Call plugin cleanup hooks just after lang_finish. * plugin.c: New source file. * plugin.h: Likewise new header. * testplug.c: New source file. 2010-10-12 Rainer Orth * emultempl/solaris2.em (elf_solaris2_before_allocation): Renamed basever_syms to global_syms. Emit global_syms into .dynamic section for all executables and shared objects. (elf_solaris2_after_allocation): New function. (LDEMUL_AFTER_ALLOCATION): Use it. * emulparams/solaris2.sh: New file. * emulparams/elf32_sparc_sol2.sh: Use it. * emulparams/elf64_sparc_sol2.sh: Likewise. * emulparams/elf_i386_sol2.sh: Likewise. * emulparams/elf_x86_64_sol2.sh: Likewise. * Makefile.am (eelf32_sparc_sol2.c): Depend on $(srcdir)/emulparams/solaris2.sh. (eelf64_sparc_sol2.c): Likewise. (eelf_x86_64_sol2.c): Likewise. (eelf_i386_sol2.c): Likewise. * Makefile.in: Regenerate. 2010-10-06 Nick Clifton * ld.texinfo: Update description of computation of VMA and LMA addresses for output sections. 2010-10-06 Ralf Wildenhues * Makefile.am (ALL_64_EMULATIONS): Fix typo in last commit. * Makefile.in: Regenerate. * Makefile.am (ALL_EMULATIONS): Rewrite in terms of ... (ALL_EMULATION_SOURCES): ... this new variable. (ALL_64_EMULATIONS): Rewrite in terms of ... (ALL_64_EMULATION_SOURCES): ... this new variable. (EXTRA_ld_new_SOURCES): Rewrite in terms of the _SOURCES variables. (eelf32microblaze.c): Fix indentation. * Makefile.in: Regenerate. 2010-10-04 Bernd Schmidt * emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Use _bfd_elf_single_rel_hdr. 2010-10-01 Alan Modra PR ld/12066 * ldexp.c (fold_name): Treat absolute symbols as plain numbers. * ld.texinfo (Expression Section): Don't say absolute symbols are addresses. 2010-09-29 Alan Modra * ldlang.c (lang_place_orphans): Zero vma when relocatable or non-load section for orphans handled here. 2010-09-27 Ralf Wildenhues * configure: Regenerate. 2010-09-23 Dave Korn * scripttempl/armcoff.sc: Revert 2010-09-22 change. 2010-09-23 Alan Modra * ldlang.c (lang_add_section): Don't copy SEC_RELOC from input to output section on a final link. 2010-09-22 Kai Tietz * ldlang.c (lang_add_section): Allow for debugging section to be marked as noload but to keep content. (IGNORE_SECTION): Likewise. (lang_check_section_addresses): Likewise. * ldwrite.c (build_link_order): Likewise. * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Add idata to orphan set. * emultempl/pep.em: Likewise. * scripttempl/armcoff.sc: Separate idata and add __IAT_start__ and __IAT_end__ labels. * scripttempl/pe.sc: Likewise. * scripttempl/pep.sc: Likewise. 2010-09-20 David S. Miller * emulparams/elf32_sparc.sh: Set NOP to 0x01000000 2010-09-16 Alan Modra * ld.texinfo (NOLOAD): Do not erroneously state that contents will appear in output file. * ldlang.c (lang_add_section): Clear SEC_HAS_CONTENTS on noload unless SEC_COFF_SHARED_LIBRARY. (map_input_to_output_sections): Don't set SEC_HAS_CONTENTS for noload output sections. (lang_size_sections_1): Don't test SEC_NEVER_LOAD when deciding to update dot in region. Ditto when setting SEC_ALLOC if dot advanced due to assignment. * ldwrite.c (build_link_order): Don't test SEC_NEVER_LOAD. 2010-09-15 Kai Tietz * scripttempl/pep.sc: Add .xdata segment and put into .pdata all segments beginning with .pdata. 2010-09-10 Alan Modra PR ld/11931 * ldlang.h (lang_for_each_statement_worker): Declare. * ldlang.c (lang_for_each_statement_worker): Make global. Don't recurse into children of output_section_statement with constraint set to -1. (print_assignment): Handle NULL output_section->bfd_section. (lang_size_sections_1): Ignore output section statement address when constraint is -1. * emultempl/xtensaelf.em (lang_for_each_statement_worker): Delete. 2010-09-09 Tristan Gingold * NEWS: Add a entry for alpha-vms. 2010-09-07 Andrew Burgess * ldwrite.c (clone_section): Call bfd_copy_private_section_data on newly cloned section. 2010-09-02 Richard Henderson * configure.tgt (x86_64-*-mingw*): Add 32-bit pe emulations too. 2010-08-31 Nick Clifton * ldlex.l (WILDCHAR): Add the caret and exclamation point characters, so that they can be used inside globs. 2010-08-31 Nick Clifton * ld.texinfo (MEMORY): Clarify the behaviour of the ! character in a region's attributes. 2010-08-31 Alan Modra * scripttempl/mmo.sc: Move assignment to "Main" inside .text output section statement. 2010-08-25 H.J. Lu PR ld/11946 * emultempl/elf32.em (_before_allocation): Check audit entry only on ELF input. 2010-08-22 H.J. Lu PR ld/11937 * emultempl/elf32.em (_after_open): Find one .eh_frame section for --eh-frame-hdr. 2010-08-22 H.J. Lu PR ld/11937 * emultempl/elf32.em (_after_open): Find an ELF input for --build-id and --eh-frame-hdr. 2010-08-20 Maciej W. Rozycki * Makefile.am (eshlelf_fd.c): Correct the name of the tool directory. * Makefile.in: Regenerate. 2010-08-20 Nick Clifton * emultempl/elf32.em (_after_open): Check for get_elf_backend_data returning NULL. 2010-08-19 Alan Modra * NEWS: Mention change in linker script expression evaluation. 2010-08-19 Alan Modra * ld.texinfo (Expression Section): Detail expression evaluation. (Builtin Functions ): Correct. (Builtin Functions ): Don't mention LOADADDR normally the same as ADDR. (Builtin Functions ): Typo fix. * ldexp.c (new_number): New function. (make_abs, exp_get_abs_int): Cope with NULL expld.result.section. (fold_unary <'~', '!', '-'>): Don't make_abs. (fold_binary): Simplify result section logic. Return NULL section for logical ops. (fold_binary ): Use new_rel_from_abs to set value to a consistent result. (fold_name ): Return new_number, not new_abs. (fold_name ): Likewise. (fold_name ): No need to handle absolute symbols differently from relative ones. (fold_name ): Don't return valid result when lang_first_phase_enum. Return new_rel_from_abs, not new_abs. (exp_fold_tree_1 ): Return new_number, not new_rel. (exp_fold_tree_1): Ajust for NULL expld.result.section. When assigning a plain number to dot, assume the value is relative to expld.section. Make terms not in an output section, absolute. * ldlang.c (print_assignment): Fix style nit. (lang_size_sections_1): Cope with NULL expld.result.section. (lang_do_assignments_1): Likewise. 2010-08-12 Alan Modra * ldexp.c (new_rel): Remove "str". Update all call sites. (exp_fold_tree_1): When assigning to dot, calculate nextdot using expld.result.section rather than expld.section. 2010-08-06 Alan Modra PR ld/11887 * ldlang.c (lang_add_vers_depend): Don't leave version_needed uninitialised. 2010-07-28 Alan Modra * ldexp.c (exp_print_tree): Print function-like binary nodes as functions rather than in-fix operators. Use fputs and fputc where appropriate. 2010-07-23 Naveen.H.S Ina Pandit * configure.tgt: Match all v850 targets. 2010-07-20 Mike Frysinger * ld.texinfo (VERSION): Remove "int" from example script and add ";". Declare the default language as C. 2010-07-17 Alan Modra * ldlang.c (lang_check_section_addresses): Catch overlap for sections that wrap around the address space. 2010-06-29 Nick Clifton * scripttempl/xstormy16.sc (.gcc_except_table): Include sections with the .gcc_except_table. prefix. 2010-06-29 Alan Modra * emulparams/maxqcoff.sh: Delete file. * scripttempl/maxqcoff.sc: Delete file. * Makefile.am: Remove references to maxq. * configure.tgt: Likewise. * Makefile.in: Regenerate. * configure: Regenerate. * po/POTFILES.in: Regenerate. 2010-06-27 Alan Modra * pe-dll.c (fill_edata): Avoid set but unused warning. (pe_walk_relocs_of_symbol): Delete set but unused variables. (generate_reloc, pe_implied_import_dll): Likewise. * emultempl/aix.em (open_dynamic_archive): Likewise. * emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Likewise. (xtensa_layout_wild): Likewise. (xtensa_colocate_output_literals_callback): Likewise. 2010-06-25 Alan Modra * emultempl/ppc64elf.em (prelim_size_sections): New function. (ppc_before_allocation): Use it. Size sections before toc edit too. 2010-06-25 Alan Modra * emultempl/elf32.em (find_exp_assignment): Handle etree_provided. 2010-06-20 Danny Smith * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Make auto-import and merge-rdata defaults same for i[3-7]86 and x86_64 mingw. 2010-06-15 Joseph Myers * emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Define. 2010-06-09 Dave Korn PR ld/11603 * pe-dll.c (process_def_file_and_drectve): Reorder check for forwarded export name after check for ordinary export. 2010-06-08 Bernd Schmidt * emulparams/elf32_tic6x_le.sh (OTHER_BSS_SECTIONS): New. 2010-06-08 Nick Clifton * fdl.texi: Replace with v1.3 text. * ld.texinfo: Replace abbreviated 20th century year numbers with full versions. * ldint.texinfo: Likewise. Relicense under GFDL v1.3. Replace text of v1.1 FDL with an include of the fdl.texi file. 2010-06-01 Tristan Gingold * scripttempl/alphavms.sc: Add comments. Move $LINK$ to the readonly output-section. Handle LIB$INITIALIZE and sections created by gcc. * emultempl/vms.em (vms_place_orphan): Add comments. 2010-05-28 Nick Clifton * Makefile.am (eshlelf_fd.c): Fix typo in rule. * Makefile.in: Regenerate. 2010-05-26 H.J. Lu PR ld/11628 * ldexp.c (fold_binary): Warn if value of SEGMENT_START isn't multiple of maximum page size. 2010-05-25 Nick Clifton * Makefile.am: Fix typo. * Makefile.in: Regenerate. 2010-05-25 Daniel Jacobowitz Joseph Myers Andrew Stubbs * Makefile.am (ALL_EMULATIONS): Add eshelf_fd.o and eshlelf_fd.o. (eshelf_fd.c, eshlelf_fd.c): New rules. * Makefile.in: Regenerate. * configure.tgt (sh-*-uclinux*): Add shelf_fd and shlelf_fd emulations. * emulparams/shelf_fd.sh: New file. * emulparams/shlelf_fd.sh: New file. * emulparams/shlelf_linux.sh: Update comment. 2010-05-25 Jay Krell PR ld/11621 * Makefile.am: Replace all occurences of .o with .@OBJEXT@ * Makefile.in: Regenerate. 2010-05-25 Kai Tietz * deffilep.y (opt_name): Allow leading dot. (dot_name): Likewise. (anylang_id): Likewise. * emultempl/pep.em (gld_${EMULATION_NAME}_before_parse): Enable by default auto_import. (gld${EMULATION_NAME}_handle_option): Warn about v1. (pep_find_data_imports): Remove superflous warnings about auto-import. (gld_${EMULATION_NAME}_get_script): Don't merge for auto-import and active pseudo-relocation-v2 rdata into data section. * emultempl/pe.em (default_merge_rdata): New shell variable. (MERGE_RDATA_V2): New macro. (gld_${EMULATION_NAME}_get_script): Adjust rule for auto-import selected script. 2010-05-15 Kai Tietz * emultempl/pe.em (is_underscoring): New helper function. (gld_${EMULATION_NAME}_before_parse): Replace code for pe(p)_leading_underscore detection by is_underscoring. (U): Likewise. (GET_INIT_SYMBOL_NAME): Likewise. (U_SIZE): Likewise. (set_pe_name): (set_entry_point): (gld_${EMULATION_NAME}_set_symbols): * emultempl/pep.em: Likewise. * pe-dll.c (pe_detail_list): Set default underscoring for x64 target. (pe_dll_id_target): Add initialization of pe(p)_leading_underscore. 2010-05-15 Dave Korn * pe-dll.c: Removed trailing whitespaces. 2010-05-14 Alan Modra PR ld/11583 * ldexp.c (exp_fold_tree_1): If assignment source expression is invalid, make the destination symbol undefined. 2010-05-11 Kai Tietz * emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Initialize pe(p)_leading_underscore variable. (set_pe_name): Likewise. * emultempl/pep.em: Likewise. Additional change default to non-underscore for pep_leading_underscore equal to -1. 2010-05-07 Tristan Gingold * Makefile.in: Regenerate with automake 1.11.1. * aclocal.m4: Ditto. 2010-05-05 Nick Clifton * po/es.po: Updated Spanish translation. 2010-04-27 Kai Tietz * pe-dll.c (_nm_-symbols): Use always underscored variant for symbols. (__imp_-symbols): Likewise. (___imp_-symbols): Likewise. * NEWS: Mention ABI change for x64 PE-COFF. 2010-04-27 H.J. Lu * Makefile.am (install-exec-local): Properly install ld as default cross linker. * Makefile.in: Regenerated. 2010-04-27 H.J. Lu Nick Clifton * configure.in (install_as_default): Define and set to true unless --enable-gold=both/gold has been specified. * configure: Regenerate. * Makefile.am (transform): Use ld.bfd as the default name of the linker. (install-exec-local): Also install the executable as a binary named 'ld' if install_as_default is true. * Makefile.in: Regenerate. 2010-04-22 Nick Clifton * po/ld.pot: Updated by the Translation project. * po/vi.po: Updated Vietnamese translation. * po/bg.po: Updated Bulgarian translation. 2010-04-15 Andrew Haley * emultempl/armelf.em (merge_exidx_entries): New variable. (OPTION_NO_MERGE_EXIDX_ENTRIES): New definition. ("no-merge-exidx-entries"): New option. * ld.texinfo (merge-exidx-entries): Document this option. 2010-04-14 Tristan Gingold * emulparams/alphavms.sh: New file. * emultempl/vms.em: New file. * scripttempl/alphavms.sc: New file. * configure.tgt (alpha*-*-*vms*): Added. * Makefile.am (ALL_EMULATIONS): Add ealphavms.o (ealphavms.c): New target. * Makefile.in: Regenerate. 2010-04-09 Nick Clifton * ldlang.c (wild_sort): Remove unused variable section_name. 2010-04-07 Alan Modra * configure: Regenerate. 2010-04-06 H.J. Lu PR ld/11434 * ld/testsuite/ld-x86-64/unique1.d: New. * ld/testsuite/ld-x86-64/unique1.s: Likewise. * ld-x86-64/x86-64.exp: Run unique1. 2010-04-05 Kai Tietz * emultempl/pep.em (U): Macro modified. (U_SIZE): New helper macro. (GET_INIT_SYMBOL_NAME): Likewise. (enum options): Add OPTION_NO_LEADING_UNDERSCORE and OPTION_LEADING_UNDERSCORE enumerator-values. (gld${EMULATION_NAME}_add_options): Add --(no-)leading-underscore option. (definfo): Add new member is_c_symbol. (D): Add to macro underscore mode parameter. (init): Add definition for is_c_symbol. (gld_${EMULATION_NAME}_list_options): Display new options. (set_pep_name): Adjust underscoring dependent fixed symbol handling. (gld_${EMULATION_NAME}_set_symbols): Likewise. (saw_option): Likewise. (gld_${EMULATION_NAME}_unrecognized_file): Likewise. (set_entry_point): Initial initial_symbol_char dependent to target's default and new option flag pep_leading_underscore. * emultempl/pe.em (U): Macro modified. (U_SIZE): New helper macro. (GET_INIT_SYMBOL_NAME): Likewise. (OPTION_LEADING_UNDERSCORE): Add new option define. (OPTION_NO_LEADING_UNDERSCORE): Likewise. (gld${EMULATION_NAME}_add_options): Add --(no-)leading-underscore option. (definfo): Add new member is_c_symbol. (D): Add to macro underscore mode parameter. (init): Add definition for is_c_symbol. (gld_${EMULATION_NAME}_list_options): Display new options. (set_pep_name): Adjust underscoring dependent fixed symbol handling. (gld_${EMULATION_NAME}_set_symbols): Likewise. (saw_option): Likewise. (gld_${EMULATION_NAME}_unrecognized_file): Likewise. (set_entry_point): Initial initial_symbol_char dependent to target's default and new option flag pep_leading_underscore. * pe-dll.c (pe_leading_underscore): New flag variable. (pe_detail_list): Remove const to allow modify of member underscore. (pe_dll_id_target): Initialize pe_details' underscore variable dependent to target's default and flag pe_leading_underscore. * pe-dll.h (pe_leading_underscore): Add extern declaration of option flag. * pep-dll.c (pe_leading_underscore): Add alias define for pep_leading_underscore. * pep-dll.h (pep_leading_underscore) Add extern declaration of option flag. * ld.texinfo: Add documentation for --(no-)leading-underscore option. 2010-03-26 Alan Modra PR ld/11426 * configure.host (many linux targets ): Remove edits. (m68*-motorola-sysv ): Use here doc, not echo. 2010-03-25 Joseph Myers * Makefile.am (ALL_EMULATIONS): Add eelf32_tic6x_be.o and eelf32_tic6x_le.o. (eelf32_tic6x_be.c, eelf32_tic6x_le.c): New. * NEWS: Add news entry for TI C6X support. * configure.tgt (tic6x-*-*): New. * emulparams/elf32_tic6x_be.sh, emulparams/elf32_tic6x_le.sh: New. 2010-03-23 Joseph Myers * scripttempl/elf.sc (RODATA_NAME, SDATA_NAME, SBSS_NAME, BSS_NAME): Define if not already defined. Use in place of some hardcoded section names. 2010-03-18 H.J. Lu * scripttempl/elf.sc (INIT_ARRAY): Re-indent. 2010-03-18 Aymeric Vincent PR ld/11384 * emultempl/sh64elf.em: Add missing EOF. 2010-03-18 Doug Semler * pe-dll.c (make_one): Make text section readonly. (make_one): Add *ABS* symbol @feat.00 with value 1 to tag the jump stub on X86 as /SAFESEH compatible for native toolchains. 2010-03-17 Alan Modra * ldlang.c (lang_size_sections_1): Remove "s" param. Set "s" from *prev instead. Update all callers. 2010-03-15 Daniel Jacobowitz * ldlang.c (lang_insert_orphan): Place loadable orphans in the same region and phdrs as their placement section. 2010-03-15 Alan Modra * emultempl/ppc64elf.em (move_input_section, sort_toc_sections): New. (ppc_before_allocation): Call sort_toc_sections. (no_toc_sort, OPTION_NO_TOC_SORT): New. (PARSE_AND_LIST_PROLOGUE, PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Handle --no-toc-sort. 2010-03-14 Alan Modra PR ld/11378 * emultempl/ppc64elf.em (gld${EMULATION_NAME}_after_allocation): Call ppc64_elf_check_init_fini and warn if .init/.fini use different TOCs. 2010-03-11 George Gensure PR ld/11367 * ldcref.c (handle_asneeded_cref): Correct copying of refs. 2010-03-05 Rainer Orth * Makefile.am (ALL_EMULATIONS): Add eelf32_sparc_sol2.o, eelf_i386_sol2.o. (ALL_64_EMULATIONS): Add eelf_x86_64_sol2.o, eelf64_sparc_sol2.o. (eelf32_sparc_sol2.c): New rule. (eelf64_sparc_sol2.c): Likewise. (eelf_x86_64_sol2.c): Likewise. (eelf_i386_sol2.c): Likewise. * Makefile.in: Regenerate. * configure.tgt (i[3-7]86-*-solaris2*): Change targ_emul to elf_i386_sol2. Add elf_i386_ldso, elf_x86_64_sol2 to targ_extra_emuls. (x86_64-*-solaris2*): Change targ_emul to elf_x86_64_sol2. Add elf_x86_64, elf_i386_sol2, elf_i386 to targ_extra_emuls. (sparc-*-solaris2.[0-6]*): Change targ_emul to elf32_sparc_sol2. Add target_extra_emuls. (sparc-*-solaris2*): Change targ_emul to elf32_sparc_sol2. Add elf32_sparc, elf64_sparc_sol2 to targ_extra_emuls. (sparcv9-*-solaris2*): Change targ_emul to elf64_sparc_sol2. Add elf64_sparc, elf32_sparc_sol2 to target_extra_emuls. * emulparams/elf32_sparc_sol2.sh: New file. * emulparams/elf64_sparc_sol2.sh: New file. * emulparams/elf_i386_sol2.sh: New file. * emulparams/elf_x86_64_sol2.sh: New file. * emultempl/solaris2.em: New file. 2010-02-27 H.J. Lu PR ld/11330 * ld.texinfo: Replace explicitely with explicitly. 2010-02-27 Jie Zhang * scripttempl/armbpabi.sc: Don't combine .init_array.* or .fini_array.* when do relocatable linking. * scripttempl/elf.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. 2010-02-26 Alan Modra * scripttempl/elf.sc (.fini_array): Place input .fini_array after .fini_array.*. * scripttempl/armbpabi.sc: Likewise. * scripttempl/elf32sh-symbian.sc: Likewise. * scripttempl/elf64hppa.sc: Likewise. * scripttempl/elfxtensa.sc: Likewise. 2010-02-25 Alan Modra PR ld/11304 * ldlang.c (init_os): Remove isec param. Don't check for bfd_section already set or call bfd_init_private_section_data here. (exp_init_os): Update init_os call. (lang_add_section): Tidy. Really don't set SEC_LINK_ONCE flags. Call bfd_init_private_section_data here. (map_input_to_output_sections): Tidy. Update init_os calls. Use os->sectype to select sec flags for lang_data_statement. 2010-02-23 Alan Modra PR ld/11304 * ldlang.c: Revert last patch. 2010-02-23 Nick Clifton * po/bg.po: Updated Bulgarian translation. 2010-02-22 Alan Modra PR ld/11304 * ldlang.c (exp_init_os): Delete forward declaration. (init_os): Don't check for bfd_section already created and don't init addr_tree and load_base expressions here. (map_input_to_output_sections): Only map input to output sections and set constraints here, and as an exception, create output sections which have their address set. Move all the other code to.. (create_other_output_sections): ..here. New function. Handle init of addr_tree and load_base here too. (lang_process): Call create_other_output_sections. 2010-02-19 Alan Modra * Makefile.am (eelf32_i960.c): Depend on ELF_GEN_DEPS, not ELF_DEPS. * Makefile.in: Regenerate. 2010-02-19 Alan Modra * ldlang.c (unique_section_p): Add os param. Allow group sections to match /DISCARD/. Update all callers. * emultempl/genelf.em (gld${EMULATION_NAME}_before_allocation): New. (LDEMUL_BEFORE_ALLOCATION): Define. 2010-02-15 Nick Clifton * po/vi.po: Updated Vietnamese translation. 2010-02-10 Richard Sandiford * Makefile.am (CFILES): Add ldlex-wrapper.c. (OFILES): Replace ldlex.c with ldlex-wrapper.c. (ldlex.o): Replace with... (ldlex-wrapper.o): ...this new rule. (EXTRA_ld_new_SOURCES): Add ldlex.l. (ld_new_SOURCES): Replace ldlex.l with ldlex-wrapper.c. * Makefile.in: Regenerate. * ldlex.l (sysdep.h): Don't include here. * ldlex-wrapper.c: New file. 2010-02-09 Alan Modra * emultempl/ppc64elf.em (ppc_before_allocation): Update for changed function parameters. 2010-02-05 Nick Clifton * configure.in (ALL_LIBGUAS): Add bg. * configure: Regenerate. * po/bg.po: New Bulgarian translation. 2010-02-05 Ryan Mansfield * emultempl/armelf.em (PARSE_AND_LIST_OPTIONS): Fix help for --target1-abs and --target1-rel options. 2010-02-03 Nick Clifton * emultempl/alphaelf.em: Update value expected from elf_object_id. * emultempl/hppaelf.em: Likewise. * emultempl/mipself.em: Likewise. * emultempl/ppc32elf.em: Likewise. * emultempl/ppc64elf.em: Likewise. 2010-02-03 Alan Modra * emultempl/ppc64elf.em (build_toc_list): Report errors from ppc64_elf_next_toc_section. (after_allocation): Update for changed function names and params. Run second pass of multitoc partitioning. 2010-01-21 Jon Grant Nick Clifton PR 4437 * ldfile.c: (ldfile_open_file): Do not stop link upon encountering a missing file or library. Instead mark the entry as missing and set the global flag to indicate that missing files were encountered. * ldlang.c (missing_files): New exported variable. (load_symbols): Skip loading if the file is missing. (open_input_bfds): Terminate link if any input files were missing. * ldlang.h (struct lang_input_statement_struct): Add missing_file field. Add export of missing_file variable. 2010-01-13 DJ Delorie * emultempl/elf32.em (_place_orphan): If an input section doesn't match an existing output section, but an unused output section statement does match, use it. * emultempl/pe.em (_place_orphan): Likewise. * emultempl/pep.em (_place_orphan): Likewise. 2010-01-09 Ralf Wildenhues * configure: Regenerate. * Makefile.in: Regenerate. 2010-01-08 H.J. Lu * ldver.c (ldversion): Change to "Copyright 2010". 2010-01-08 Alan Modra PR 11107 * emultempl/vxworks.em: Expand tr arguments to suit non-GNU tr. For older changes see ChangeLog-2009 Local Variables: mode: change-log left-margin: 8 fill-column: 74 version-control: never End: