2010-11-05 15:20:07 +08:00
|
|
|
|
2010-11-05 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 13:56:53 +08:00
|
|
|
|
2010-11-05 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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-05 00:03:25 +08:00
|
|
|
|
2010-11-04 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/pe.sc (.debug_types): New.
|
|
|
|
|
* scripttempl/pep.sc: Likewise.
|
|
|
|
|
|
2010-11-04 20:44:54 +08:00
|
|
|
|
2010-11-04 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (is_ir_dummy_bfd): Don't segfault on NULL abfd.
|
|
|
|
|
|
2010-11-04 01:18:23 +08:00
|
|
|
|
2010-11-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
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 11:22:01 +08:00
|
|
|
|
2010-11-03 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (eelf64hppa.c): Correct dependencies.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-11-02 21:47:44 +08:00
|
|
|
|
2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* 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 20:10:39 +08:00
|
|
|
|
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* 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 20:06:27 +08:00
|
|
|
|
2010-10-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldfile.c (find_scripts_dir): Don't look in absolute SCRIPTDIR.
|
|
|
|
|
|
2010-10-28 19:40:26 +08:00
|
|
|
|
2010-10-28 Matthias Klose <doko@ubuntu.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo: Add directory section for info document.
|
|
|
|
|
* ldint.texinfo: Likewise.
|
|
|
|
|
|
2010-10-28 16:38:45 +08:00
|
|
|
|
2010-10-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 14:45:33 +08:00
|
|
|
|
2010-10-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 14:22:50 +08:00
|
|
|
|
2010-10-25 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (plugin_get_ir_dummy_bfd): Set bfd_use_reserved_id.
|
|
|
|
|
Formatting.
|
|
|
|
|
|
2010-10-22 20:08:32 +08:00
|
|
|
|
2010-10-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* 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 07:28:06 +08:00
|
|
|
|
2010-10-22 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldwrite.c (build_link_order <lang_data_statement_enum>): Don't
|
|
|
|
|
output when section has no contents.
|
|
|
|
|
(build_link_order <lang_reloc_statement_enum>): Likewise.
|
|
|
|
|
|
bfd:
* elf32-tic6x.c (elf32_tic6x_merge_arch_attributes): Update for
attribute renaming.
(elf_backend_obj_attrs_section): Change to ".c6xabi.attributes".
binutils:
* readelf.c (display_tic6x_attribute): Update for attribute
renaming.
gas:
* config/tc-tic6x.c (tic6x_arch_attribute, tic6x_arches,
md_assemble, tic6x_set_attributes): Update for attribute renaming.
* doc/c-tic6x.texi: Update for attribute renaming.
gas/testsuite:
* gas/tic6x/attr-arch-directive-1.d,
gas/tic6x/attr-arch-directive-2.d,
gas/tic6x/attr-arch-directive-3.d,
gas/tic6x/attr-arch-directive-4.d,
gas/tic6x/attr-arch-directive-4.s,
gas/tic6x/attr-arch-directive-5.d,
gas/tic6x/attr-arch-directive-5.s,
gas/tic6x/attr-arch-opts-c62x.d, gas/tic6x/attr-arch-opts-c64x+.d,
gas/tic6x/attr-arch-opts-c64x.d, gas/tic6x/attr-arch-opts-c674x.d,
gas/tic6x/attr-arch-opts-c67x+.d, gas/tic6x/attr-arch-opts-c67x.d,
gas/tic6x/attr-arch-opts-none-1.d,
gas/tic6x/attr-arch-opts-none-2.d,
gas/tic6x/attr-arch-opts-override-1.d,
gas/tic6x/attr-arch-opts-override-2.d: Update for attribute
renaming and renumbering.
include/elf:
* tic6x-attrs.h (Tag_C6XABI_Tag_CPU_arch): Change to Tag_ISA,
value 4.
* tic6x.h (Values for Tag_C6XABI_Tag_CPU_arch): Rename for
attribute renaming.
ld:
* emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Use
.c6xabi.attributes, not __TI_build_attributes.
ld/testsuite:
* ld-tic6x/attr-arch-c62x-c62x.d, ld-tic6x/attr-arch-c62x-c64x+.d,
ld-tic6x/attr-arch-c62x-c64x.d, ld-tic6x/attr-arch-c62x-c674x.d,
ld-tic6x/attr-arch-c62x-c67x+.d, ld-tic6x/attr-arch-c62x-c67x.d,
ld-tic6x/attr-arch-c64x+-c62x.d, ld-tic6x/attr-arch-c64x+-c64x+.d,
ld-tic6x/attr-arch-c64x+-c64x.d, ld-tic6x/attr-arch-c64x+-c674x.d,
ld-tic6x/attr-arch-c64x+-c67x+.d, ld-tic6x/attr-arch-c64x+-c67x.d,
ld-tic6x/attr-arch-c64x-c62x.d, ld-tic6x/attr-arch-c64x-c64x+.d,
ld-tic6x/attr-arch-c64x-c64x.d, ld-tic6x/attr-arch-c64x-c674x.d,
ld-tic6x/attr-arch-c64x-c67x+.d, ld-tic6x/attr-arch-c64x-c67x.d,
ld-tic6x/attr-arch-c674x-c62x.d, ld-tic6x/attr-arch-c674x-c64x+.d,
ld-tic6x/attr-arch-c674x-c64x.d, ld-tic6x/attr-arch-c674x-c674x.d,
ld-tic6x/attr-arch-c674x-c67x+.d, ld-tic6x/attr-arch-c674x-c67x.d,
ld-tic6x/attr-arch-c67x+-c62x.d, ld-tic6x/attr-arch-c67x+-c64x+.d,
ld-tic6x/attr-arch-c67x+-c64x.d, ld-tic6x/attr-arch-c67x+-c674x.d,
ld-tic6x/attr-arch-c67x+-c67x+.d, ld-tic6x/attr-arch-c67x+-c67x.d,
ld-tic6x/attr-arch-c67x-c62x.d, ld-tic6x/attr-arch-c67x-c64x+.d,
ld-tic6x/attr-arch-c67x-c64x.d, ld-tic6x/attr-arch-c67x-c674x.d,
ld-tic6x/attr-arch-c67x-c67x+.d, ld-tic6x/attr-arch-c67x-c67x.d:
Update for attribute renaming.
2010-10-22 05:16:54 +08:00
|
|
|
|
2010-10-21 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Use
|
|
|
|
|
.c6xabi.attributes, not __TI_build_attributes.
|
|
|
|
|
|
2010-10-21 01:01:06 +08:00
|
|
|
|
2010-10-20 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (get_symbols): Check symbol type correctly.
|
|
|
|
|
|
2010-10-16 00:21:41 +08:00
|
|
|
|
2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure.in: If <dlfcn.h> can't be found, try for <Windows.h>
|
|
|
|
|
* 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 <dlfcn.h> from ENABLE_PLUGINS
|
|
|
|
|
anymore, use its own guard.
|
|
|
|
|
|
2010-10-16 00:09:36 +08:00
|
|
|
|
2010-10-15 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* plugin.c (add_input_file): Take copy of input string.
|
|
|
|
|
(add_input_library): Likewise.
|
|
|
|
|
(set_extra_library_path): Likewise.
|
|
|
|
|
|
2010-10-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-22 07:28:06 +08:00
|
|
|
|
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
|
Applied patch series for LD plugin interface (six parts).
[PATCH] Add infrastructure for plugin API; functionality to follow.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* plugin-api.h (LDPT_GNU_LD_VERSION): New ld_plugin_tag enum member.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 1/6).
* ld-bootstrap/bootstrap.exp: Skip static tests also if LD plugins
are enabled.
* lib/ld-lib.exp (proc regexp_diff): Extend verbose debug output.
(proc set_file_contents): Write a file with the supplied content.
(run_ld_link_tests): Add new 'ld' action to test linker output.
(proc check_plugin_api_available): Return true if linker under test
supports the plugin API.
* ld-plugin/func.c: New test source file.
* ld-plugin/main.c: Likewise.
* ld-plugin/text.c: Likewise.
* ld-plugin/plugin-1.d: New dump test output pattern script.
* ld-plugin/plugin-2.d: Likewise.
* ld-plugin/plugin-3.d: Likewise.
* ld-plugin/plugin-4.d: Likewise.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin.exp: New test control script.
---
[PATCH] Implement claim file and all symbols read hooks and add symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 2/6).
* ld-plugin/plugin-3.d: Enable regexes for new functionality.
* ld-plugin/plugin-5.d: Likewise.
* ld-plugin/plugin-6.d: New testcase.
* ld-plugin/plugin-7.d: Likewise.
* ld-plugin/plugin.exp: Use 'nm' on compiled test objects to determine
whether symbols in plugin arguments need an underscore prefix. Add
new plugin-6.d and plugin-7.d testcases.
---
[PATCH] Implement get symbols callback.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 3/6).
* ld-plugin/plugin-8.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Implement add input file, add input lib and set extra lib path callbacks.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 4/6).
* ld-plugin/plugin-9.d: New testcase.
* ld-plugin/plugin.exp: Invoke it.
---
[PATCH] Add ELF symbol visibility support to plugin interface.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 5/6).
* ld-plugin/plugin-ignore.d: New dump test control script.
* ld-plugin/plugin-vis-1.d: Likewise.
* ld-plugin/plugin.exp: Add list of ELF-only tests and run them if
testing on an ELF target.
---
[PATCH] Add archive support to plugin interface.
bfd/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* aoutx.h (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* cofflink.c (coff_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(coff_link_check_archive_element): Handle substitute bfd if it
was set during add_archive_element callback in the above.
* ecoff.c (read_ext_syms_and_strs): New function holds symbol-reading
code factored-out from ecoff_link_check_archive_element.
(reread_ext_syms_and_strs): Clear old symbols and call it.
(ecoff_link_check_archive_element): Use the above. Handle substitute
BFD if one is set by add_archive_element callback.
(ecoff_link_add_archive_symbols): Likewise allow bfd substitution.
* elflink.c (elf_link_add_archive_symbols): Likewise.
* linker.c (generic_link_check_archive_element): Likewise.
* pdp11.c (aout_link_check_ar_symbols): Take new "subsbfd" reference
parameter and pass it when invoking add_archive_element callback.
(aout_link_check_archive_element): Handle substitute bfd if it was
set during add_archive_element callback in the above.
* vms-alpha.c (alpha_vms_link_add_archive_symbols): Handle substitute
BFD if one is set by add_archive_element callback.
* xcofflink.c (xcoff_link_check_dynamic_ar_symbols): Take new "subsbfd"
reference parameter and pass it when invoking add_archive_element
callback.
(xcoff_link_check_ar_symbols): Likewise.
(xcoff_link_check_archive_element): Handle bfd substitution if it was
set by callback in the above.
include/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* bfdlink.h (struct_bfd_link_callbacks): Document new argument
to add_archive_element callback used to return a replacement bfd which
is to be added to the hash table in place of the original element.
ld/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
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.
ld/testsuite/ChangeLog:
2010-10-14 Dave Korn <dave.korn.cygwin@gmail.com>
Apply LD plugin patch series (part 6/6).
* ld-plugin/plugin-10.d: New dump test control script.
* ld-plugin/plugin-11.d: Likewise.
* ld-plugin/plugin.exp: Run them.
---
2010-10-14 09:31:33 +08:00
|
|
|
|
|
|
|
|
|
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-13 02:39:36 +08:00
|
|
|
|
2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* 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 16:58:59 +08:00
|
|
|
|
2010-10-06 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo: Update description of computation of VMA and LMA
|
|
|
|
|
addresses for output sections.
|
|
|
|
|
|
2010-10-06 12:58:34 +08:00
|
|
|
|
2010-10-06 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
2010-10-06 14:01:53 +08:00
|
|
|
|
* Makefile.am (ALL_64_EMULATIONS): Fix typo in last commit.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-10-06 12:58:34 +08:00
|
|
|
|
* 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.
|
|
|
|
|
|
bfd/
* elf-bfd.h (struct bfd_elf_section_reloc_data): New structure.
(struct bfd_elf_section_data): New members REL and RELA; delete
members REL_HDR, REL_HDR2, REL_COUNT, REL_COUNT2, REL_IDX,
REL_IDX2, REL_HASHES.
(_bfd_elf_init_reloc_shdr): Adjust declaration.
(_bfd_elf_single_rel_hdr): Declare.
(RELOC_AGAINST_DISCARDED_SECTION): Use it.
* elf.c (bfd_section_from_shdr): Adjusted to match changes in
data structures.
(_bfd_elf_init_reloc_shdr): New arg RELDATA. Remove arg REL_HDR.
All callers changed. Allocate memory for the Elf_Internal_Shdr
structure.
(_bfd_elf_single_rel_hdr): New function.
(struct fake_section_arg): New structure.
(elf_fake_section): Expect to see a pointer to it in the third
argument. If doing a relocatable link, allocate both REL and RELA
sections as needed.
(assign_section_numbers): Adjusted to match changes in
data structures.
(_bfd_elf_compute_section_file_positions): Call elf_fake_sections
with a struct fake_section_args argument.
* elfcode.h (elf_write_relocs): Adjusted to match changes in
data structures.
(elf_slurp_reloc_table): Likewise.
* elflink.c (_bfd_elf_link_read_relocs): Likewise.
(_bfd_elf_link_size_reloc_section): Remove arg REL_HDR, replace with
RELDATA. Remove argument O. All callers changed. Remove code to
discover the right rel_hdr and count.
(_bfd_elf_link_output_relocs): Adjusted to match changes in
data structures.
(elf_link_adjust_relocs): Remove args REL_HDR, COUNT and REL_HASH;
replace with RELDATA. All callers changed.
(elf_link_input_bfd): Correctly generate rel_hash data when both
REL and RELA sections are present.
(elf_reloc_link_order): Adjusted to match changes in
data structures.
(bfd_elf_final_link): Simplify code to count relocs. Free the
hashes array for both REL and RELA.
(get_dynamic_reloc_section_name): Use _bfd_elf_single_reloc_hdr
* elf32-m32r.c (m32r_elf_fake_sections, elf_backend_fake_sections):
Delete.
* elf32-tic6x.c (elf32_tic6x_fake_sections, elf_backend_fake_sections):
Delete.
(elf32_tic6x_rel_relocation_p): Adjusted to match changes in
data structures.
* elf32-microblaze.c (microblaze_elf_check_relocs): Use
_bfd_elf_single_rel_hdr.
* elf32-ppc.c (ppc_elf_relax_section): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-hppa.c (get_reloc_section): Likewise.
* elf64-mips.c (mips_elf64_slurp_reloc_table): Adjusted to match
changes in data structures.
(mips_elf64_write_relocs): Use _bfd_elf_single_rel_hdr.
* elf64-ppc.c (ppc64_elf_edit_opd): Likewise.
(ppc64_elf_edit_toc): Likewise.
(get_relocs): Adjusted to match changes in data structures.
Allocate an Elf_Internal_Shdr structure if necessary.
(ppc64_elf_finish_dynamic_sections): Use _bfd_elf_single_rel_hdr.
* elf64-sparc.c (elf64_sparc_slurp_reloc_table): Adjusted to match
changes in data structures.
* elfxx-ia64.c (get_reloc_section): Use _bfd_elf_single_rel_hdr.
* elfxx-mips.c (MIPS_RELOC_RELA_P): Remove macro.
(mips_elf_rel_relocation_p): Adjusted to match changes in data
structures.
(_bfd_mips_elf_relocate_section): Use mips_elf_rel_relocation_p rather
than MIPS_RELOC_RELOCA_P.
* elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Use
_bfd_elf_single_rel_hdr.
(_bfd_sparc_elf_relocate_section): Likewise.
ld/
* emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Use
_bfd_elf_single_rel_hdr.
2010-10-04 22:13:10 +08:00
|
|
|
|
2010-10-04 Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/xtensaelf.em (replace_insn_sec_with_prop_sec): Use
|
|
|
|
|
_bfd_elf_single_rel_hdr.
|
|
|
|
|
|
2010-10-01 16:15:42 +08:00
|
|
|
|
2010-10-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
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 14:17:12 +08:00
|
|
|
|
2010-09-29 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (lang_place_orphans): Zero vma when relocatable or non-load
|
|
|
|
|
section for orphans handled here.
|
|
|
|
|
|
2010-09-28 04:23:01 +08:00
|
|
|
|
2010-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-09-24 12:41:12 +08:00
|
|
|
|
2010-09-23 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/armcoff.sc: Revert 2010-09-22 change.
|
|
|
|
|
|
2010-09-23 19:40:06 +08:00
|
|
|
|
2010-09-23 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (lang_add_section): Don't copy SEC_RELOC from input
|
|
|
|
|
to output section on a final link.
|
|
|
|
|
|
2010-09-22 16:03:42 +08:00
|
|
|
|
2010-09-22 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
2010-09-22 22:20:24 +08:00
|
|
|
|
* 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.
|
|
|
|
|
|
2010-09-22 16:03:42 +08:00
|
|
|
|
* 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-21 02:41:15 +08:00
|
|
|
|
2010-09-20 David S. Miller <davem@davemloft.net>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32_sparc.sh: Set NOP to 0x01000000
|
|
|
|
|
|
2010-09-16 08:06:12 +08:00
|
|
|
|
2010-09-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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-16 03:43:56 +08:00
|
|
|
|
2010-09-15 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
2010-09-16 03:50:13 +08:00
|
|
|
|
* scripttempl/pep.sc: Add .xdata segment and
|
|
|
|
|
put into .pdata all segments beginning with .pdata.
|
2010-09-16 03:43:56 +08:00
|
|
|
|
|
2010-09-10 09:23:12 +08:00
|
|
|
|
2010-09-10 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
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 18:46:33 +08:00
|
|
|
|
2010-09-09 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Add a entry for alpha-vms.
|
|
|
|
|
|
2010-09-07 23:02:17 +08:00
|
|
|
|
2010-09-07 Andrew Burgess <aburgess@broadcom.com>
|
|
|
|
|
|
|
|
|
|
* ldwrite.c (clone_section): Call bfd_copy_private_section_data on
|
|
|
|
|
newly cloned section.
|
|
|
|
|
|
2010-09-03 06:54:44 +08:00
|
|
|
|
2010-09-02 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt (x86_64-*-mingw*): Add 32-bit pe emulations too.
|
|
|
|
|
|
2010-09-01 00:08:24 +08:00
|
|
|
|
2010-08-31 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ldlex.l (WILDCHAR): Add the caret and exclamation point
|
2010-09-01 16:06:58 +08:00
|
|
|
|
characters, so that they can be used inside globs.
|
2010-09-01 00:08:24 +08:00
|
|
|
|
|
2010-08-31 18:26:11 +08:00
|
|
|
|
2010-08-31 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (MEMORY): Clarify the behaviour of the ! character in
|
|
|
|
|
a region's attributes.
|
|
|
|
|
|
2010-08-31 13:11:29 +08:00
|
|
|
|
2010-08-31 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/mmo.sc: Move assignment to "Main" inside .text
|
|
|
|
|
output section statement.
|
|
|
|
|
|
2010-08-26 00:57:32 +08:00
|
|
|
|
2010-08-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11946
|
|
|
|
|
* emultempl/elf32.em (_before_allocation): Check audit entry
|
|
|
|
|
only on ELF input.
|
|
|
|
|
|
2010-08-23 04:21:21 +08:00
|
|
|
|
2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11937
|
|
|
|
|
* emultempl/elf32.em (_after_open): Find one .eh_frame section
|
|
|
|
|
for --eh-frame-hdr.
|
|
|
|
|
|
2010-08-23 03:11:58 +08:00
|
|
|
|
2010-08-22 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11937
|
|
|
|
|
* emultempl/elf32.em (_after_open): Find an ELF input for
|
|
|
|
|
--build-id and --eh-frame-hdr.
|
|
|
|
|
|
2010-08-21 05:18:39 +08:00
|
|
|
|
2010-08-20 Maciej W. Rozycki <macro@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (eshlelf_fd.c): Correct the name of the tool
|
|
|
|
|
directory.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-08-20 23:01:45 +08:00
|
|
|
|
2010-08-20 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/elf32.em (_after_open): Check for get_elf_backend_data
|
|
|
|
|
returning NULL.
|
|
|
|
|
|
2010-08-26 00:03:58 +08:00
|
|
|
|
2010-08-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Mention change in linker script expression evaluation.
|
|
|
|
|
|
binutils/
* NEWS: Mention change in linker script expression evaluation.
ld/
* ld.texinfo (Expression Section): Detail expression evaluation.
(Builtin Functions <ADDR>): Correct.
(Builtin Functions <LOADADDR>): Don't mention LOADADDR normally
the same as ADDR.
(Builtin Functions <SEGMENT_START>): 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 <SEGMENT_START>): Use new_rel_from_abs to set value to
a consistent result.
(fold_name <SIZEOF_HEADERS>): Return new_number, not new_abs.
(fold_name <DEFINED, SIZEOF, ALIGNOF, LENGTH, CONSTANT>): Likewise.
(fold_name <NAME>): No need to handle absolute symbols differently
from relative ones.
(fold_name <ORIGIN>): Don't return valid result when
lang_first_phase_enum. Return new_rel_from_abs, not new_abs.
(exp_fold_tree_1 <etree_value>): 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.
ld/testsuite/
* ld-scripts/memory.t: Remove ORIGIN fudge.
2010-08-19 13:51:50 +08:00
|
|
|
|
2010-08-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (Expression Section): Detail expression evaluation.
|
|
|
|
|
(Builtin Functions <ADDR>): Correct.
|
|
|
|
|
(Builtin Functions <LOADADDR>): Don't mention LOADADDR normally
|
|
|
|
|
the same as ADDR.
|
|
|
|
|
(Builtin Functions <SEGMENT_START>): 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 <SEGMENT_START>): Use new_rel_from_abs to set value to
|
|
|
|
|
a consistent result.
|
|
|
|
|
(fold_name <SIZEOF_HEADERS>): Return new_number, not new_abs.
|
|
|
|
|
(fold_name <DEFINED, SIZEOF, ALIGNOF, LENGTH, CONSTANT>): Likewise.
|
|
|
|
|
(fold_name <NAME>): No need to handle absolute symbols differently
|
|
|
|
|
from relative ones.
|
|
|
|
|
(fold_name <ORIGIN>): Don't return valid result when
|
|
|
|
|
lang_first_phase_enum. Return new_rel_from_abs, not new_abs.
|
|
|
|
|
(exp_fold_tree_1 <etree_value>): 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 21:36:50 +08:00
|
|
|
|
2010-08-12 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 09:51:17 +08:00
|
|
|
|
2010-08-06 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11887
|
|
|
|
|
* ldlang.c (lang_add_vers_depend): Don't leave version_needed
|
|
|
|
|
uninitialised.
|
|
|
|
|
|
2010-07-28 14:43:32 +08:00
|
|
|
|
2010-07-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 22:52:54 +08:00
|
|
|
|
2010-07-23 Naveen.H.S <naveen.S@kpitcummins.com>
|
|
|
|
|
Ina Pandit <ina.pandit@kpitcummins.com>
|
|
|
|
|
|
|
|
|
|
* configure.tgt: Match all v850 targets.
|
|
|
|
|
|
2010-07-21 03:25:42 +08:00
|
|
|
|
2010-07-20 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* ld.texinfo (VERSION): Remove "int" from example script and add ";".
|
|
|
|
|
Declare the default language as C.
|
|
|
|
|
|
2010-07-17 11:12:02 +08:00
|
|
|
|
2010-07-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (lang_check_section_addresses): Catch overlap for
|
|
|
|
|
sections that wrap around the address space.
|
|
|
|
|
|
2010-06-29 17:43:04 +08:00
|
|
|
|
2010-06-29 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/xstormy16.sc (.gcc_except_table): Include sections
|
|
|
|
|
with the .gcc_except_table. prefix.
|
|
|
|
|
|
2010-06-29 12:17:34 +08:00
|
|
|
|
2010-06-29 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 12:07:55 +08:00
|
|
|
|
2010-06-27 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 13:20:57 +08:00
|
|
|
|
2010-06-25 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/ppc64elf.em (prelim_size_sections): New function.
|
|
|
|
|
(ppc_before_allocation): Use it. Size sections before toc edit too.
|
|
|
|
|
|
2010-06-25 12:46:05 +08:00
|
|
|
|
2010-06-25 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/elf32.em (find_exp_assignment): Handle etree_provided.
|
|
|
|
|
|
2010-06-20 17:51:16 +08:00
|
|
|
|
2010-06-20 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
* emultempl/pe.em (gld_${EMULATION_NAME}_before_parse): Make
|
2010-06-25 12:46:05 +08:00
|
|
|
|
auto-import and merge-rdata defaults same for i[3-7]86 and
|
|
|
|
|
x86_64 mingw.
|
|
|
|
|
|
bfd:
* elf-bfd.h (LEAST_KNOWN_OBJ_ATTRIBUTE): Decrease to 2.
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type,
elf32_tic6x_merge_arch_attributes, elf32_tic6x_merge_attributes,
elf32_tic6x_merge_private_bfd_data): New.
(bfd_elf32_bfd_merge_private_bfd_data,
elf_backend_obj_attrs_arg_type, elf_backend_obj_attrs_section,
elf_backend_obj_attrs_section_type, elf_backend_obj_attrs_vendor):
Define.
* elf32-tic6x.h (elf32_tic6x_merge_arch_attributes): Declare.
binutils:
* readelf.c (display_tic6x_attribute, process_tic6x_specific):
New.
(process_arch_specific): Call process_tic6x_specific for
EM_TI_C6000.
gas:
* config/tc-tic6x.c: Include elf/tic6x.h.
(tic6x_arch_attribute, tic6x_seen_insns): New.
(tic6x_arch_table, tic6x_arches): Add attribute values.
(tic6x_use_arch): Handle attribute settings.
(tic6x_attributes_set_explicitly, s_tic6x_c6xabi_attribute,
tic6x_attribute_table, tic6x_attributes,
tic6x_convert_symbolic_attribute): New.
(md_pseudo_table): Add c6xabi_attribute.
(md_assemble): Set tic6x_seen_insns and tic6x_arch_attribute.
(tic6x_set_attribute_int, tic6x_set_attributes): New.
(tic6x_end): Call tic6x_set_attributes.
* config/tc-tic6x.h (CONVERT_SYMBOLIC_ATTRIBUTE): Define.
(tic6x_convert_symbolic_attribute): Declare.
gas/testsuite:
* gas/elf/elf.exp: Set target_machine for tic6x-*-*.
* gas/elf/section2.e-tic6x, gas/tic6x/attr-arch-directive-1.d,
gas/tic6x/attr-arch-directive-1.s,
gas/tic6x/attr-arch-directive-2.d,
gas/tic6x/attr-arch-directive-2.s,
gas/tic6x/attr-arch-directive-3.d,
gas/tic6x/attr-arch-directive-3.s,
gas/tic6x/attr-arch-directive-4.d,
gas/tic6x/attr-arch-directive-4.s,
gas/tic6x/attr-arch-directive-5.d,
gas/tic6x/attr-arch-directive-5.s,
gas/tic6x/attr-arch-opts-c62x.d, gas/tic6x/attr-arch-opts-c64x+.d,
gas/tic6x/attr-arch-opts-c64x.d, gas/tic6x/attr-arch-opts-c674x.d,
gas/tic6x/attr-arch-opts-c67x+.d, gas/tic6x/attr-arch-opts-c67x.d,
gas/tic6x/attr-arch-opts-none-1.d,
gas/tic6x/attr-arch-opts-none-2.d,
gas/tic6x/attr-arch-opts-override-1.d,
gas/tic6x/attr-arch-opts-override-2.d, gas/tic6x/empty.s: New.
include/elf:
* tic6x-attrs.h: New.
* tic6x.h: Include elf/tic6x-attrs.h for attribute table.
(C6XABI_Tag_CPU_arch_none, C6XABI_Tag_CPU_arch_C62X,
C6XABI_Tag_CPU_arch_C67X, C6XABI_Tag_CPU_arch_C67XP,
C6XABI_Tag_CPU_arch_C64X, C6XABI_Tag_CPU_arch_C64XP,
C6XABI_Tag_CPU_arch_C674X): Define.
ld:
* emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Define.
ld/testsuite:
* ld-elf/orphan3.d: Allow section names starting '_'.
* ld-tic6x/attr-arch-c62x-c62x.d, ld-tic6x/attr-arch-c62x-c64x+.d,
ld-tic6x/attr-arch-c62x-c64x.d, ld-tic6x/attr-arch-c62x-c674x.d,
ld-tic6x/attr-arch-c62x-c67x+.d, ld-tic6x/attr-arch-c62x-c67x.d,
ld-tic6x/attr-arch-c62x.s, ld-tic6x/attr-arch-c64x+-c62x.d,
ld-tic6x/attr-arch-c64x+-c64x+.d, ld-tic6x/attr-arch-c64x+-c64x.d,
ld-tic6x/attr-arch-c64x+-c674x.d,
ld-tic6x/attr-arch-c64x+-c67x+.d, ld-tic6x/attr-arch-c64x+-c67x.d,
ld-tic6x/attr-arch-c64x+.s, ld-tic6x/attr-arch-c64x-c62x.d,
ld-tic6x/attr-arch-c64x-c64x+.d, ld-tic6x/attr-arch-c64x-c64x.d,
ld-tic6x/attr-arch-c64x-c674x.d, ld-tic6x/attr-arch-c64x-c67x+.d,
ld-tic6x/attr-arch-c64x-c67x.d, ld-tic6x/attr-arch-c64x.s,
ld-tic6x/attr-arch-c674x-c62x.d, ld-tic6x/attr-arch-c674x-c64x+.d,
ld-tic6x/attr-arch-c674x-c64x.d, ld-tic6x/attr-arch-c674x-c674x.d,
ld-tic6x/attr-arch-c674x-c67x+.d, ld-tic6x/attr-arch-c674x-c67x.d,
ld-tic6x/attr-arch-c674x.s, ld-tic6x/attr-arch-c67x+-c62x.d,
ld-tic6x/attr-arch-c67x+-c64x+.d, ld-tic6x/attr-arch-c67x+-c64x.d,
ld-tic6x/attr-arch-c67x+-c674x.d,
ld-tic6x/attr-arch-c67x+-c67x+.d, ld-tic6x/attr-arch-c67x+-c67x.d,
ld-tic6x/attr-arch-c67x+.s, ld-tic6x/attr-arch-c67x-c62x.d,
ld-tic6x/attr-arch-c67x-c64x+.d, ld-tic6x/attr-arch-c67x-c64x.d,
ld-tic6x/attr-arch-c67x-c674x.d, ld-tic6x/attr-arch-c67x-c67x+.d,
ld-tic6x/attr-arch-c67x-c67x.d, ld-tic6x/attr-arch-c67x.s: New.
2010-06-16 08:36:04 +08:00
|
|
|
|
2010-06-15 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32_tic6x_le.sh (ATTRS_SECTIONS): Define.
|
|
|
|
|
|
2010-06-10 02:17:10 +08:00
|
|
|
|
2010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11603
|
|
|
|
|
* pe-dll.c (process_def_file_and_drectve): Reorder check for
|
|
|
|
|
forwarded export name after check for ordinary export.
|
|
|
|
|
|
2010-06-09 04:15:18 +08:00
|
|
|
|
2010-06-08 Bernd Schmidt <bernds@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* emulparams/elf32_tic6x_le.sh (OTHER_BSS_SECTIONS): New.
|
|
|
|
|
|
2010-06-08 18:30:56 +08:00
|
|
|
|
2010-06-08 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* 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 17:52:28 +08:00
|
|
|
|
2010-06-01 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* 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 20:21:17 +08:00
|
|
|
|
2010-05-28 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (eshlelf_fd.c): Fix typo in rule.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-05-26 22:10:15 +08:00
|
|
|
|
2010-05-26 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11628
|
|
|
|
|
* ldexp.c (fold_binary): Warn if value of SEGMENT_START isn't
|
|
|
|
|
multiple of maximum page size.
|
|
|
|
|
|
2010-05-25 23:30:55 +08:00
|
|
|
|
2010-05-25 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Fix typo.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-05-21 Daniel Jacobowitz <dan@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Andrew Stubbs <ams@codesourcery.com>
bfd/
* config.bfd (sh-*-uclinux* | sh[12]-*-uclinux*): Add
bfd_elf32_shl_vec, and FDPIC vectors to targ_selvecs.
* configure.in: Handle FDPIC vectors.
* elf32-sh-relocs.h: Add FDPIC and movi20 relocations.
* elf32-sh.c (DEFAULT_STACK_SIZE): Define.
(SYMBOL_FUNCDESC_LOCAL): Define. Use it instead of
SYMBOL_REFERENCES_LOCAL for function descriptors.
(fdpic_object_p): New.
(sh_reloc_map): Add FDPIC and movi20 relocations.
(sh_elf_info_to_howto, sh_elf_relocate_section): Handle new invalid
range.
(struct elf_sh_plt_info): Add got20 and short_plt. Update all
definitions.
(FDPIC_PLT_ENTRY_SIZE, FDPIC_PLT_LAZY_OFFSET): Define.
(fdpic_sh_plt_entry_be, fdpic_sh_plt_entry_le, fdpic_sh_plts): New.
(FDPIC_SH2A_PLT_ENTRY_SIZE, FDPIC_SH2A_PLT_LAZY_OFFSET): Define.
(fdpic_sh2a_plt_entry_be, fdpic_sh2a_plt_entry_le)
(fdpic_sh2a_short_plt_be, fdpic_sh2a_short_plt_le, fdpic_sh2a_plts):
New.
(get_plt_info): Handle FDPIC.
(MAX_SHORT_PLT): Define.
(get_plt_index, get_plt_offset): Handle short_plt.
(union gotref): New.
(struct elf_sh_link_hash_entry): Add funcdesc, rename tls_type to
got_type and adjust all uses. Add GOT_FUNCDESC.
(struct sh_elf_obj_tdata): Add local_funcdesc. Rename
local_got_tls_type to local_got_type.
(sh_elf_local_got_type): Renamed from sh_elf_local_got_tls_type. All
users changed.
(sh_elf_local_funcdesc): Define.
(struct elf_sh_link_hash_table): Add sfuncdesc, srelfuncdesc, fdpic_p,
and srofixup.
(sh_elf_link_hash_newfunc): Initialize new fields.
(sh_elf_link_hash_table_create): Set fdpic_p.
(sh_elf_omit_section_dynsym): New.
(create_got_section): Create .got.funcdesc, .rela.got.funcdesc
and .rofixup.
(allocate_dynrelocs): Allocate local function descriptors and space
for R_SH_FUNCDESC-related relocations, and for rofixups.
Handle GOT_FUNCDESC. Create fixups. Handle GOT entries which
require function descriptors.
(sh_elf_always_size_sections): Handle PT_GNU_STACK and __stacksize.
(sh_elf_modify_program_headers): New.
(sh_elf_size_dynamic_sections): Allocate function descriptors for
local symbols. Allocate .got.funcdesc contents. Allocate rofixups.
Handle local GOT entries of type GOT_FUNCDESC. Create fixups for
local GOT entries. Ensure that FDPIC libraries always have a PLTGOT
entry in the .dynamic section.
(sh_elf_add_dyn_reloc, sh_elf_got_offset, sh_elf_initialize_funcdesc)
(sh_elf_add_rofixup, sh_elf_osec_to_segment)
(sh_elf_osec_readonly_p, install_movi20_field): New functions.
(sh_elf_relocate_section): Handle new relocations, R_SH_FUNCDESC,
R_SH_GOTFUNCDESC and R_SH_GOTOFFFUNCDESC. Use sh_elf_got_offset
and .got.plt throughout to find _GLOBAL_OFFSET_TABLE_. Add rofixup
read-only section warnings. Handle undefined weak symbols. Generate
fixups for R_SH_DIR32 and GOT entries. Check for cross-segment
relocations and clear EF_SH_PIC. Handle 20-bit relocations.
Always generate R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_gc_sweep_hook): Handle R_SH_FUNCDESC, R_SH_GOTOFF20,
R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20, and R_SH_GOTOFFFUNCDESC.
Handle 20-bit relocations.
(sh_elf_copy_indirect_symbol): Copy function descriptor reference
counts.
(sh_elf_check_relocs): Handle new relocations. Make symbols
dynamic for FDPIC relocs. Account for rofixups. Error for FDPIC
symbol mismatches. Allocate a GOT for R_SH_DIR32. Allocate fixups
for R_SH_DIR32.
(sh_elf_copy_private_data): Copy PT_GNU_STACK size.
(sh_elf_merge_private_data): Copy initial flags. Do not clobber
non-mach flags. Set EF_SH_PIC for FDPIC. Reject FDPIC mismatches.
(sh_elf_finish_dynamic_symbol): Do not handle got_funcdesc entries
here. Rename sgot to sgotplt and srel to srelplt. Handle short_plt,
FDPIC descriptors, and got20. Create R_SH_FUNCDESC_VALUE for FDPIC.
Use install_movi20_field. Rename srel to srelgot. Always generate
R_SH_DIR32 for FDPIC instead of R_SH_RELATIVE.
(sh_elf_finish_dynamic_sections): Fill in the GOT pointer in rofixup.
Do not fill in reserved GOT entries for FDPIC. Correct DT_PLTGOT.
Rename sgot to sgotplt. Assert that the right number of rofixups
and dynamic relocations were allocated.
(sh_elf_use_relative_eh_frame, sh_elf_encode_eh_address): New.
(elf_backend_omit_section_dynsym): Use sh_elf_omit_section_dynsym.
(elf_backend_can_make_relative_eh_frame)
(elf_backend_can_make_lsda_relative_eh_frame)
(elf_backend_encode_eh_address): Define.
(TARGET_BIG_SYM, TARGET_BIG_NAME, TARGET_LITTLE_SYM)
(TARGET_LITTLE_NAME, elf_backend_modify_program_headers, elf32_bed):
Redefine for FDPIC vector.
* reloc.c: Add SH FDPIC and movi20 relocations.
* targets.c (_bfd_target_vector): Add FDPIC vectors.
* configure, bfd-in2.h, libbfd.h: Regenerated.
binutils/
* readelf.c (get_machine_flags): Handle EF_SH_PIC and EF_SH_FDPIC.
gas/
* config/tc-sh.c (sh_fdpic): New.
(sh_check_fixup): Handle relocations on movi20.
(parse_exp): Do not reject PIC operators here.
(build_Mytes): Check for unhandled PIC operators here. Use
sh_check_fixup for movi20.
(enum options): Add OPTION_FDPIC.
(md_longopts, md_parse_option, md_show_usage): Add --fdpic.
(sh_fix_adjustable, md_apply_fix): Handle FDPIC and movi20 relocations.
(sh_elf_final_processing): Handle --fdpic.
(sh_uclinux_target_format): New.
(sh_parse_name): Handle FDPIC relocation operators.
* config/tc-sh.h (TARGET_FORMAT): Define specially for TE_UCLINUX.
(sh_uclinux_target_format): Declare for TE_UCLINUX.
* configure.tgt (sh-*-uclinux* | sh[12]-*-uclinux*): Set
em=uclinux.
* doc/c-sh.texi (SH Options): Document --fdpic.
gas/testsuite/
* gas/sh/basic.exp: Run new tests. Handle uClinux like Linux.
* gas/sh/fdpic.d: New file.
* gas/sh/fdpic.s: New file.
* gas/sh/reg-prefix.d: Force big-endian.
* gas/sh/sh2a-pic.d: New file.
* gas/sh/sh2a-pic.s: New file.
* lib/gas-defs.exp (is_elf_format): Include sh*-*-uclinux*.
include/elf/
* sh.h (EF_SH_PIC, EF_SH_FDPIC): Define.
(R_SH_FIRST_INVALID_RELOC_6, R_SH_LAST_INVALID_RELOC_6): New. Adjust
other invalid ranges.
(R_SH_GOT20, R_SH_GOTOFF20, R_SH_GOTFUNCDESC, R_SH_GOTFUNCDESC20)
(R_SH_GOTOFFFUNCDESC, R_SH_GOTOFFFUNCDESC20, R_SH_FUNCDESC)
(R_SH_FUNCDESC_VALUE): New.
ld/
* 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.
ld/testsuite/
* ld-sh/sh.exp: Handle uClinux like Linux.
* lib/ld-lib.exp (is_elf_format): Include sh*-*-uclinux*.
* ld-sh/fdpic-funcdesc-shared.d: New file.
* ld-sh/fdpic-funcdesc-shared.s: New file.
* ld-sh/fdpic-funcdesc-static.d: New file.
* ld-sh/fdpic-funcdesc-static.s: New file.
* ld-sh/fdpic-gotfuncdesc-shared.d: New file.
* ld-sh/fdpic-gotfuncdesc-shared.s: New file.
* ld-sh/fdpic-gotfuncdesc-static.d: New file.
* ld-sh/fdpic-gotfuncdesc-static.s: New file.
* ld-sh/fdpic-gotfuncdesci20-shared.d: New file.
* ld-sh/fdpic-gotfuncdesci20-shared.s: New file.
* ld-sh/fdpic-gotfuncdesci20-static.d: New file.
* ld-sh/fdpic-gotfuncdesci20-static.s: New file.
* ld-sh/fdpic-goti20-shared.d: New file.
* ld-sh/fdpic-goti20-shared.s: New file.
* ld-sh/fdpic-goti20-static.d: New file.
* ld-sh/fdpic-goti20-static.s: New file.
* ld-sh/fdpic-gotofffuncdesc-shared.d: New file.
* ld-sh/fdpic-gotofffuncdesc-shared.s: New file.
* ld-sh/fdpic-gotofffuncdesc-static.d: New file.
* ld-sh/fdpic-gotofffuncdesc-static.s: New file.
* ld-sh/fdpic-gotofffuncdesci20-shared.d: New file.
* ld-sh/fdpic-gotofffuncdesci20-shared.s: New file.
* ld-sh/fdpic-gotofffuncdesci20-static.d: New file.
* ld-sh/fdpic-gotofffuncdesci20-static.s: New file.
* ld-sh/fdpic-gotoffi20-shared.d: New file.
* ld-sh/fdpic-gotoffi20-shared.s: New file.
* ld-sh/fdpic-gotoffi20-static.d: New file.
* ld-sh/fdpic-gotoffi20-static.s: New file.
* ld-sh/fdpic-plt-be.d: New file.
* ld-sh/fdpic-plt-le.d: New file.
* ld-sh/fdpic-plt.s: New file.
* ld-sh/fdpic-plti20-be.d: New file.
* ld-sh/fdpic-plti20-le.d: New file.
* ld-sh/fdpic-stack-default.d: New file.
* ld-sh/fdpic-stack-size.d: New file.
* ld-sh/fdpic-stack.s: New file.
2010-05-25 22:12:43 +08:00
|
|
|
|
2010-05-25 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
Andrew Stubbs <ams@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* 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 22:02:38 +08:00
|
|
|
|
2010-05-25 Jay Krell <jay.krell@cornell.edu>
|
|
|
|
|
|
|
|
|
|
PR ld/11621
|
|
|
|
|
* Makefile.am: Replace all occurences of .o with .@OBJEXT@
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-05-25 18:00:25 +08:00
|
|
|
|
2010-05-25 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
2010-05-25 18:05:16 +08:00
|
|
|
|
* deffilep.y (opt_name): Allow leading dot.
|
|
|
|
|
(dot_name): Likewise.
|
|
|
|
|
(anylang_id): Likewise.
|
2010-05-25 18:03:01 +08:00
|
|
|
|
* 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.
|
2010-05-25 18:00:25 +08:00
|
|
|
|
* 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-16 03:50:44 +08:00
|
|
|
|
2010-05-15 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* 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 22:20:06 +08:00
|
|
|
|
2010-05-15 Dave Korn <dave.korn.cygwin@gmail.com>
|
|
|
|
|
|
|
|
|
|
* pe-dll.c: Removed trailing whitespaces.
|
|
|
|
|
|
2010-05-14 11:15:20 +08:00
|
|
|
|
2010-05-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11583
|
|
|
|
|
* ldexp.c (exp_fold_tree_1): If assignment source expression is
|
|
|
|
|
invalid, make the destination symbol undefined.
|
|
|
|
|
|
2010-05-12 01:46:22 +08:00
|
|
|
|
2010-05-11 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* 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 20:28:50 +08:00
|
|
|
|
2010-05-07 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerate with automake 1.11.1.
|
|
|
|
|
* aclocal.m4: Ditto.
|
|
|
|
|
|
2010-05-05 23:28:26 +08:00
|
|
|
|
2010-05-05 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/es.po: Updated Spanish translation.
|
|
|
|
|
|
2010-04-28 23:24:22 +08:00
|
|
|
|
2010-04-27 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* 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-28 00:05:54 +08:00
|
|
|
|
2010-04-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (install-exec-local): Properly install ld as
|
|
|
|
|
default cross linker.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
2010-04-27 22:12:32 +08:00
|
|
|
|
2010-04-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* 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 22:37:16 +08:00
|
|
|
|
2010-04-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/ld.pot: Updated by the Translation project.
|
|
|
|
|
* po/vi.po: Updated Vietnamese translation.
|
|
|
|
|
* po/bg.po: Updated Bulgarian translation.
|
|
|
|
|
|
2010-04-22 00:32:31 +08:00
|
|
|
|
2010-04-15 Andrew Haley <aph@redhat.com>
|
|
|
|
|
|
|
|
|
|
* 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 17:27:27 +08:00
|
|
|
|
2010-04-14 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* 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 22:40:18 +08:00
|
|
|
|
2010-04-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (wild_sort): Remove unused variable section_name.
|
|
|
|
|
|
2010-04-07 15:20:51 +08:00
|
|
|
|
2010-04-07 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2010-04-07 10:41:35 +08:00
|
|
|
|
2010-04-06 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
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 17:04:09 +08:00
|
|
|
|
2010-04-05 Kai Tietz <kai.tietz@onevision.com>
|
|
|
|
|
|
|
|
|
|
* 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 06:49:44 +08:00
|
|
|
|
2010-03-26 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11426
|
|
|
|
|
* configure.host (many linux targets <HOSTING_CRT0>): Remove edits.
|
|
|
|
|
(m68*-motorola-sysv <HOSTING_LIBS>): Use here doc, not echo.
|
|
|
|
|
|
bfd:
* Makefile.am (ALL_MACHINES): Add cpu-tic6x.lo.
(ALL_MACHINES_CFILES): Add cpu-tic6x.c.
(BFD32_BACKENDS): Add elf32-tic6x.lo.
(BFD32_BACKENDS_CFILES): Add elf32-tic6x.c.
* Makefile.in: Regenerate.
* archures.c (bfd_arch_tic6x, bfd_tic6x_arch): New.
(bfd_archures_list): Update.
* config.bfd (tic6x-*-elf): New.
* configure.in (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec):
New.
* configure: Regenerate.
* cpu-tic6x.c, elf32-tic6x.c: New.
* reloc.c (BFD_RELOC_C6000_PCR_S21, BFD_RELOC_C6000_PCR_S12,
BFD_RELOC_C6000_PCR_S10, BFD_RELOC_C6000_PCR_S7,
BFD_RELOC_C6000_ABS_S16, BFD_RELOC_C6000_ABS_L16,
BFD_RELOC_C6000_ABS_H16, BFD_RELOC_C6000_SBR_U15_B,
BFD_RELOC_C6000_SBR_U15_H, BFD_RELOC_C6000_SBR_U15_W,
BFD_RELOC_C6000_SBR_S16, BFD_RELOC_C6000_SBR_L16_B,
BFD_RELOC_C6000_SBR_L16_H, BFD_RELOC_C6000_SBR_L16_W,
BFD_RELOC_C6000_SBR_H16_B, BFD_RELOC_C6000_SBR_H16_H,
BFD_RELOC_C6000_SBR_H16_W, BFD_RELOC_C6000_SBR_GOT_U15_W,
BFD_RELOC_C6000_SBR_GOT_L16_W, BFD_RELOC_C6000_SBR_GOT_H16_W,
BFD_RELOC_C6000_DSBT_INDEX, BFD_RELOC_C6000_PREL31,
BFD_RELOC_C6000_COPY, BFD_RELOC_C6000_ALIGN,
BFD_RELOC_C6000_FPHEAD, BFD_RELOC_C6000_NOCMP): New.
* targets.c (bfd_elf32_tic6x_be_vec, bfd_elf32_tic6x_le_vec): New.
(_bfd_target_vector): Update.
* bfd-in2.h, libbfd.h: Regenerate.
binutils:
* MAINTAINERS: Add self as TI C6X maintainer.
* NEWS: Add news entry for TI C6X support.
* readelf.c: Include elf/tic6x.h.
(guess_is_rela): Handle EM_TI_C6000.
(dump_relocations): Likewise.
(get_tic6x_dynamic_type): New.
(get_dynamic_type): Call it.
(get_machine_flags): Handle EF_C6000_REL.
(get_osabi_name): Handle machine-specific values only for relevant
machines. Handle C6X values.
(get_tic6x_segment_type): New.
(get_segment_type): Call it.
(get_tic6x_section_type_name): New.
(get_section_type_name): Call it.
(is_32bit_abs_reloc, is_16bit_abs_reloc, is_none_reloc): Handle
EM_TI_C6000.
gas:
* Makefile.am (TARGET_CPU_CFILES): Add config/tc-tic6x.c.
(TARGET_CPU_HFILES): Add config/tc-tic6x.h.
* Makefile.in: Regenerate.
* NEWS: Add news entry for TI C6X support.
* app.c (do_scrub_chars): Handle "||^" for TI C6X. Handle
TC_PREDICATE_START_CHAR and TC_PREDICATE_END_CHAR. Keep spaces in
operands if TC_KEEP_OPERAND_SPACES.
* configure.tgt (tic6x-*-*): New.
* config/tc-ia64.h (TC_PREDICATE_START_CHAR,
TC_PREDICATE_END_CHAR): Define.
* config/tc-tic6x.c, config/tc-tic6x.h: New.
* doc/Makefile.am (CPU_DOCS): Add c-tic6x.texi.
* doc/Makefile.in: Regenerate.
* doc/all.texi (TIC6X): Define.
* doc/as.texinfo: Add TI C6X documentation. Include c-tic6x.texi.
* doc/c-tic6x.texi: New.
gas/testsuite:
* gas/tic6x: New directory and testcases.
include:
* dis-asm.h (print_insn_tic6x): Declare.
include/elf:
* common.h (ELFOSABI_C6000_ELFABI, ELFOSABI_C6000_LINUX): Define.
* tic6x.h: New.
include/opcode:
* tic6x-control-registers.h, tic6x-insn-formats.h,
tic6x-opcode-table.h, tic6x.h: New.
ld:
* 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.
ld/testsuite:
* ld-elf/flags1.d, ld-elf/merge.d: XFAIL for tic6x-*-*.
* ld-elf/sec-to-seg.exp: Set B_test_same_seg to 0 for tic6x-*-*.
* ld-tic6x: New directory and testcases.
opcodes:
* Makefile.am (TARGET_LIBOPCODES_CFILES): Add tic6x-dis.c.
* Makefile.in: Regenerate.
* configure.in (bfd_tic6x_arch): New.
* configure: Regenerate.
* disassemble.c (ARCH_tic6x): Define if ARCH_all.
(disassembler): Handle TI C6X.
* tic6x-dis.c: New.
2010-03-26 05:12:36 +08:00
|
|
|
|
2010-03-25 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* 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-24 00:02:02 +08:00
|
|
|
|
2010-03-23 Joseph Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* 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-19 02:40:29 +08:00
|
|
|
|
2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* scripttempl/elf.sc (INIT_ARRAY): Re-indent.
|
|
|
|
|
|
2010-03-18 21:15:46 +08:00
|
|
|
|
2010-03-18 Aymeric Vincent <vincent@labri.fr>
|
|
|
|
|
|
|
|
|
|
PR ld/11384
|
|
|
|
|
* emultempl/sh64elf.em: Add missing EOF.
|
|
|
|
|
|
2010-03-18 18:51:31 +08:00
|
|
|
|
2010-03-18 Doug Semler <dougsemler@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 16:37:10 +08:00
|
|
|
|
2010-03-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (lang_size_sections_1): Remove "s" param. Set "s" from
|
|
|
|
|
*prev instead. Update all callers.
|
|
|
|
|
|
2010-03-16 22:14:40 +08:00
|
|
|
|
2010-03-15 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* ldlang.c (lang_insert_orphan): Place loadable orphans in the same
|
|
|
|
|
region and phdrs as their placement section.
|
|
|
|
|
|
2010-03-15 10:03:00 +08:00
|
|
|
|
2010-03-15 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 15:05:36 +08:00
|
|
|
|
2010-03-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
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 06:44:01 +08:00
|
|
|
|
2010-03-11 George Gensure <werkt0@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11367
|
|
|
|
|
* ldcref.c (handle_asneeded_cref): Correct copying of refs.
|
|
|
|
|
|
2010-03-06 03:49:00 +08:00
|
|
|
|
2010-03-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
|
|
|
|
|
|
|
|
|
* 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-28 07:00:41 +08:00
|
|
|
|
2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11330
|
|
|
|
|
* ld.texinfo: Replace explicitely with explicitly.
|
|
|
|
|
|
2010-02-27 20:34:25 +08:00
|
|
|
|
2010-02-27 Jie Zhang <jie@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* 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 19:36:32 +08:00
|
|
|
|
2010-02-26 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 11:49:15 +08:00
|
|
|
|
2010-02-25 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
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 22:27:16 +08:00
|
|
|
|
2010-02-23 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/11304
|
|
|
|
|
* ldlang.c: Revert last patch.
|
|
|
|
|
|
2010-02-23 19:19:35 +08:00
|
|
|
|
2010-02-23 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/bg.po: Updated Bulgarian translation.
|
|
|
|
|
|
2010-02-22 20:09:59 +08:00
|
|
|
|
2010-02-22 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
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 10:59:06 +08:00
|
|
|
|
2010-02-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am (eelf32_i960.c): Depend on ELF_GEN_DEPS, not ELF_DEPS.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-02-19 09:47:16 +08:00
|
|
|
|
2010-02-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 18:09:39 +08:00
|
|
|
|
2010-02-15 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/vi.po: Updated Vietnamese translation.
|
|
|
|
|
|
2010-02-11 03:48:16 +08:00
|
|
|
|
2010-02-10 Richard Sandiford <r.sandiford@uk.ibm.com>
|
|
|
|
|
|
|
|
|
|
* 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-08 21:50:17 +08:00
|
|
|
|
2010-02-09 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/ppc64elf.em (ppc_before_allocation): Update for changed
|
|
|
|
|
function parameters.
|
|
|
|
|
|
2010-02-05 22:17:56 +08:00
|
|
|
|
2010-02-05 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure.in (ALL_LIBGUAS): Add bg.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* po/bg.po: New Bulgarian translation.
|
|
|
|
|
|
2010-02-05 21:57:47 +08:00
|
|
|
|
2010-02-05 Ryan Mansfield <rmansfield@qnx.com>
|
|
|
|
|
|
|
|
|
|
* emultempl/armelf.em (PARSE_AND_LIST_OPTIONS): Fix help for
|
|
|
|
|
--target1-abs and --target1-rel options.
|
|
|
|
|
|
* elf-bfd.h (emum elf_object_id): Rename to elf_target_id. Add
entries for other architectures.
(struct elf_link_hash_table): Add hash_table_id field.
(elf_hash_table_id): New accessor macro.
* elflink.c (_bfd_elf_link_hash_table_init): Add target_id
parameter.
* elf-m10300.c (elf32_mn10300_hash_table): Check table id before
returning cast pointer.
(elf32_mn10300_link_hash_table_create): Identify new table as
containing MN10300 extensions.
(mn10300_elf_relax_section): Check pointer returned by
elf32_mn10300_hash_table.
* elf32-arm.c: Likewise, except using ARM extensions.
* elf32-avr.c: Likewise, except using AVR extensions.
* elf32-bfin.c: Likewise, except using BFIN extensions.
* elf32-cris.c: Likewise, except using CRIS extensions.
* elf32-frv.c: Likewise, except using FRV extensions.
* elf32-hppa.c: Likewise, except using HPPA32 extensions.
* elf32-i386.c: Likewise, except using I386 extensions.
* elf32-lm32.c: Likewise, except using LM32 extensions.
* elf32-m32r.c: Likewise, except using M32RM extensions.
* elf32-m68hc11.c: Likewise, except using M68HC11 extensions.
* elf32-m68hc1x.c: Likewise, except using M68HC11 extensions.
* elf32-m68hc1x.h: Likewise, except using M68HC11 extensions.
* elf32-m68k.c: Likewise, except using M68K extensions.
* elf32-microblaze.c: Likewise, except using MICROBLAZE extensions.
* elf32-ppc.c: Likewise, except using PPC32 extensions.
* elf32-s390.c: Likewise, except using S390 extensions.
* elf32-sh.c: Likewise, except using SH extensions.
* elf32-spu.c: Likewise, except using SPU extensions.
* elf32-xtensa.c: Likewise, except using XTENSA extensions.
* elf64-alpha.c: Likewise, except using ALPHA extensions.
* elf64-hppa.c: Likewise, except using HPPA64 extensions.
* elf64-ppc.c: Likewise, except using PPC64 extensions.
* elf64-s390.c: Likewise, except using S390 extensions.
* elf64-x86-64.c: Likewise, except using X86_64 extensions.
* elfxx-ia64.c: Likewise, except using IA64 extensions.
* elfxx-mips.c: Likewise, except using MIPS extensions.
* elfxx-sparc.c: Likewise, except using SPARC extensions.
* elfxx-sparc.h: Likewise, except using SPARC extensions.
* elf32-cr16.c (struct elf32_cr16_link_hash_table): Delete
redundant structure.
(elf32_cr16_hash_table): Delete unused macro.
(elf32_cr16_link_hash_traverse): Delete unused macro.
* elf32-score.c: Likewise.
* elf32-score7.c: Likewise.
* elf32-vax.c: Likewise.
* elf64-sh64.c: Likewise.
* 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-04 17:16:43 +08:00
|
|
|
|
2010-02-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* 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 20:03:35 +08:00
|
|
|
|
2010-02-03 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* 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 18:31:32 +08:00
|
|
|
|
2010-01-21 Jon Grant <jg@jguk.org>
|
|
|
|
|
Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
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-14 12:56:12 +08:00
|
|
|
|
2010-01-13 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* 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-10 05:11:44 +08:00
|
|
|
|
2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
|
2010-01-09 03:40:08 +08:00
|
|
|
|
2010-01-08 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* ldver.c (ldversion): Change to "Copyright 2010".
|
|
|
|
|
|
2010-01-08 09:41:11 +08:00
|
|
|
|
2010-01-08 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 11107
|
|
|
|
|
* emultempl/vxworks.em: Expand tr arguments to suit non-GNU tr.
|
2009-12-18 03:51:35 +08:00
|
|
|
|
|
2010-01-02 02:06:10 +08:00
|
|
|
|
For older changes see ChangeLog-2009
|
1999-05-03 15:29:11 +08:00
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|