aboutsummaryrefslogtreecommitdiff
path: root/gold
AgeCommit message (Collapse)AuthorFilesLines
2009-03-20include/elf:Ian Lance Taylor4-7/+162
* common.h (SHT_GNU_INCREMENTAL_INPUTS): Define. elfcpp: * elfcpp.h (SHT_GNU_INCREMENTAL_INPUTS): Define. gold: * incremental.cc: New file. * Makefile.am (CCFILES): Add incremental.cc. * Makefile.in: Rebuild.
2009-03-192009-03-19 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-0/+10
* layout.cc (Layout::output_section_name): Preserve names of '.note.' sections.
2009-03-19 * descriptors.cc (Descriptors::open): Check that the options areIan Lance Taylor2-1/+8
valid before using them.
2009-03-19 * script-sections.h: Include <list>.Ian Lance Taylor3-182/+376
(class Script_sections): Change Sections_elements from std::vector to std::list. Typedef public Elements_iterator. Add orphan_section_placement_, data_segment_align_start_, and saw_data_segment_align_ fields. Remove data_segment_align_index_ field. * script-sections.cc (class Orphan_section_placement): New class. (class Sections_element): Add virtual functions is_relro and orphan_section_init. Remove virtual function place_orphan_here. (class Output_section_definition): Add is_relro and orphan_section_init. Remove place_orphan_here. (class Orphan_output_section): Likewise. (Script_sections::Script_sections): Update for field changes. (Script_sections::data_segment_align): Set saw_data_segment_align_ and data_segment_align_start_, not data_segment_align_index. (Script_sections::data_segment_relro_end): Check saw_data_segment_align_. Use data_segment_align_start_ rather than data_segment_align_index_. (Script_sections::place_orphan): Rewrite to use Orphan_section_placement.
2009-03-18 * archive.cc (Archive::add_symbols): Check for a version attachedIan Lance Taylor4-13/+87
to the symbol name in the archive map. * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_11. (ver_test_11_SOURCES, ver_test_11_DEPENDENCIES): Define. (ver_test_11_LDFLAGS, ver_test_11_LDADD): Define. (ver_test_11.a): New target. * testsuite/Makefile.in: Rebuild.
2009-03-17 * configure.ac: Check for chsize and posix_fallocate. ReplaceIan Lance Taylor8-11/+248
ftruncate. * ftruncate.c: New file, from gnulib. * output.cc (posix_fallocate): Define dummy version if not HAVE_POSIX_FALLOCATE. (Output_file::map): Call posix_fallocate rather than lseek and write. * gold.h (ftruncate): Declare if not HAVE_FTRUNCATE. * configure, Makefile.in, config.in: Rebuild.
2009-03-172009-03-17 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov3-8/+17
* layout.h (Layout::create_note): Add section_name parameter. * layout.cc (Layout::create_note): Likewise. (Layout::create_build_id, Layout::create_gold_note): Fix callers.
2009-03-17 * descriptors.cc: Include "options.h".Ian Lance Taylor2-18/+50
(FD_CLOEXEC, O_CLOEXEC): Define if not defined. (Descriptors::open): Always use O_CLOEXEC when opening a new descriptor. If we have a plugin, and O_CLOEXEC was not defined, then set FD_CLOEXEC.
2009-03-17 * sparc.cc (class Target_sparc): Add has_got_section.Ian Lance Taylor2-2/+36
(Target_sparc::Scan::global): If we see _GLOBAL_OFFSET_TABLE_, make sure we have a GOT section. * sparc.cc (optimize_tls_reloc): Recognize R_SPARC_TLS_IE_ADD. (Target_sparc::Scan::local): Likewise. (Target_sparc::Scan::global): Likewise. (Target_sparc::Relocate::relocate): Likewise. (Target_sparc::Relocate::relocate_tls): Likewise.
2009-03-17 * symtab.cc (Symbol_table::define_default_version): New function,Ian Lance Taylor3-109/+234
broken out of add_from_object. (Symbol_table::add_from_object): Call define_default_version. (Symbol_table::define_special_symbol): Add resolve_oldsym parameter. Change all callers. If the version for a symbol comes from a version script, resolve it with the symbol with the same name with no version. Also add the symbol without a version if appropriate. (do_define_in_output_data): If resolving with oldsym, don't delete sym. (do_define_in_output_segment): Likewise. (do_define_as_constant): Likewise. * symtab.h (class Symbol_table): Update declarations.
2009-03-14 * readsyms.cc (Read_symbols::incompatible_warning): New function.Ian Lance Taylor24-139/+587
(Read_symbols::requeue): New function. (Read_symbols::do_read_symbols): If make_elf_object fails because the target type is not configured, and the file was searched for, issue a warning and retry with the next directory. (Add_symbols::run): If the file has an incompatible format, and it was searched for, requeue the Read_symbols task. On error, release the object. * readsyms.h (class Read_symbols): Add dirindex_ field. Add dirindex parameter to constructor. Change all callers. Declare incompatible_warning and requeue. (class Add_symbols): Add dirpath_, dirindex_, mapfile_, input_argument_ and input_group_ fields. Add them to constructor. Change all callers. (class Read_script): Add dirindex_ field. Add it to constructor. Change all callers. * archive.cc (Archive::setup): Remove input_objects parameter. Change all callers. (Archive::get_file_and_offset): Likewise. (Archive::read_all_symbols): Likewise. (Archive::read_symbols): Likewise. (Archive::get_elf_object_for_member): Remove input_objects parameter. Add punconfigured parameter. Change all callers. (Archive::add_symbols): Change return type to bool. Check return value of include_member. (Archive::include_all_members): Likewise. (Archive::include_member): Change return type to bool. Return false if first included object has incompatible target. Set included_member_ field. (Add_archive_symbols::run): If add_symbols returns false, requeue Read_symbols task. * archive.h (class Archive): Add included_member_ field. Initialize it in constructor. Add input_file and searched_for methods. Update declarations. (class Add_archive_symbols): Add dirpath_, dirindex_, and input_argument_ fields. Add them to constructor. Change all callers. * script.cc: Include "target-select.h". (class Parser_closure): Add skip_on_incompatible_target_ and found_incompatible_target_ fields. Add skip_on_incompatible_target parameter to constructor. Change all callers. Add methods skip_on_incompatible_target, clear_skip_on_incompatible_target, found_incompatible_target, and set_found_incompatible_target. (read_input_script): Add dirindex parameter. Change all callers. If parser finds an incompatible target, requeue Read_symbols task. (script_set_symbol): Clear skip_on_incompatible_target in closure. (script_add_assertion, script_parse_option): Likewise. (script_start_sections, script_add_phdr): Likewise. (script_check_output_format): New function. * script.h (read_input_script): Update declaration. * script-c.h (script_check_output_format): Declare. * yyscript.y (file_cmd): Handle OUTPUT_FORMAT. (ignore_cmd): Remove OUTPUT_FORMAT. * fileread.cc (Input_file::Input_file): Add explicit this. (Input_file::will_search_for): New function. (Input_file::open): Add pindex parameter. Change all callers. * fileread.h (class Input_file): Add input_file_argument method. Declare will_search_for. Update declarations. * object.cc (make_elf_object): Add punconfigured parameter. Change all callers. * object.h (class Object): Make input_file public. Add searched_for method. (make_elf_object): Update declaration. * dirsearch.cc (Dirsearch::find): Add pindex parameter. Use it to restart search. * dirsearch.h (class Dirsearch): Update declaration. * options.h (class General_options): Add --warn-search-mismatch. * parameters.cc (Parameters::is_compatible_target): New function. * parameters.h (class Parameters): Declare is_compatible_target. * workqueue.cc (Workqueue::add_blocker): New function. * workqueue.h (class Workqueue): Declare add_blocker.
2009-03-13 * fileread.cc (Input_file::open): Remove options parameter.Ian Lance Taylor10-43/+43
Change all callers. (Input_file::open_binary): Likewise. * script.cc (read_input_script): Likewise. * readsyms.h (class Read_symbols): Remove options_ field. Remove options parameter from constructor. Change all callers. (class Read_script): Likewise. * fileread.h (class Input_file): Update declarations. * script.h (read_input_script): Update declaration.
2009-03-10Add Spanish translation to gold.Nick Clifton2-0/+1871
Update Indonesian translation for opcodes.
2009-03-06 * options.cc (parse_short_option): Keep dash_z from registering itself.Cary Coutant2-1/+5
2009-03-04 PR 9918Ian Lance Taylor10-58/+135
* target-reloc.h (relocate_section): Pass output_section to relocate. * i386.cc (Target_i386::should_apply_static_reloc): Add output_section parameter. Change all callers. (Target_i386::Relocate::relocate): Add output_section parameter. * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise. * sparc.cc (Target_sparc::Relocate::relocate): Likewise. * powerpc.cc (Target_powerpc::Relocate::relocate): Likewise. * testsuite/two_file_shared.sh: New script. * testsuite/Makefile.am (check_SCRIPTS): Add two_file_shared.sh. (check_DATA): Add two_file_shared.dbg. (two_file_shared.dbg): New target. * testsuite/Makefile.in: Rebuild.
2009-03-02elfcpp:/Ian Lance Taylor4-0/+160
* elfcpp_swap.h: #include "config.h". Only #include <byteswap.h> if HAVE_BYTESWAP_H is defined; if not, provide definitions for bswap_{16,32,64}. For gcc 4.3 and later, use the builtin bswap functions. Check WORDS_BIGENDIAN rather than __BYTE_ORDER. gold:/ * configure.ac: Check for byteswap.h. * configure: Rebuild. * config.in: Rebuild.
2009-03-01 * layout.cc (Layout::find_or_add_kept_section): New function.Ian Lance Taylor6-101/+126
(Layout::add_comdat): Removed. * layout.h (struct Kept_section): Move out of class Layout. Remove trailing underscores from field names. Add group_sections field. Rename group_ field to is_group. Change all uses. (class Layout): Declare find_or_add_kept_section, not add_comdat. * object.cc (Sized_relobj::Sized_relobj): Don't initialize comdat_groups_ field. (Sized_relobj::include_section_group): Use find_or_add_kept_section and Kept_section::group_sections. (Sized_relobj::include_linkonce_section): Likewise. * object.cc (class Sized_relobj): Don't define Comdat_group or Comdat_group_table. Remove find_comdat_group and add_comdat_group. Remove comdat_groups_ field. * plugin.cc (include_comdat_group): Use Layout::find_or_add_kept_section.
2009-02-28 * README: --gc-sections and map files are now supported. DocumentIan Lance Taylor2-2/+16
some build requirements.
2009-02-28 PR 6992Ian Lance Taylor3-2/+15
* symtab.cc (Symbol_table::sized_write_section_symbol): In a relocatable link set the value of the section symbol to zero. * object.cc (Sized_relobj::do_finalize_local_symbols): In a relocatable link don't include the section address in the local symbol value.
2009-02-28 PR 6811Ian Lance Taylor10-60/+100
* options.h (class Search_directory): Add is_system_directory. (class General_options): Declare is_in_system_directory. * options.cc (get_relative_sysroot): Make static. (get_default_sysroot): Make static. (General_optoins::is_in_system_directory): New function. * fileread.cc (Input_file::is_in_system_directory): New function. * fileread.h (class Input_file): Declare is_in_system_directory. * object.h (class Object): Add is_in_system_directory. (class Input_objects): Remove system_library_directory_ field. * object.cc (Input_objects::add_object): Don't set system_library_directory_. (input_objects::found_in_system_library_directory): Remove. * symtab.cc (Symbol_table::write_globals): Remove input_objects parameter. Change all callers. (Symbol_table::sized_write_globals): Likewise. (Symbol_table::warn_about_undefined_dynobj_symbol): Likewise. Call Object::is_in_system_directory. * symtab.h (class Symbol_table): Update declarations.
2009-02-28 PR 5990Ian Lance Taylor3-1/+22
* descriptors.h (Open_descriptor): Add is_on_stack field. * descriptors.cc (Descriptors::open): If the descriptor is on the top of the stack, remove it. Initialize is_on_stack field. (Descriptors::release): Only add pod to stack if it is not on the stack already. (Descriptors::close_some_descriptor): Clear stack_next and is_on_stack fields.
2009-02-28 PR 7091Ian Lance Taylor4-24/+52
* output.cc (Output_section::find_starting_output_address): Rename from starting_output_address; add PADDR parameter; change return type. * output.h (class Output_section): Declare find_starting_output_address instead of starting_output_address. * object.cc (Sized_relobj::do_finalize_local_symbols): Handle a section symbol for which we can't find a merge section.
2009-02-27 PR 9836Ian Lance Taylor7-14/+120
* symtab.cc (Symbol_table::add_from_object): If the visibility is hidden or internal, force the symbol to be local. * resolve.cc (Symbol::override_visibility): Define. (Symbol::override_base): Use override_visibility. (Symbol_table::resolve): Likewise. (Symbol::override_base_with_special): Likewise. (Symbol_table::override_with_special): If the visibility is hidden or internal, force the symbol to be local. * symtab.h (class Symbol): Add set_visibility and override_visibility. * testsuite/ver_test_1.sh: New file. * testsuite/Makefile.am (check_SCRIPTS): Add ver_test_1.sh. (check_DATA): Add ver_test_1.syms. (ver_test_1.syms): New target. * testsuite/Makefile.in: Rebuild.
2009-02-25 * layout.cc (Layout::choose_output_section): Don't rename sectionsCary Coutant8-11/+168
when using a linker script that has a SECTIONS clause. * Makefile.in: Regenerate. * testsuite/Makefile.am (script_test_5.sh): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/script_test_5.cc: New file. * testsuite/script_test_5.sh: New file. * testsuite/script_test_5.t: New file.
2009-02-13 (From Rafael Espindola)Cary Coutant9-120/+49
* archive.cc (Archive::include_member): Update calls to add_symbols. * dynobj.cc (Sized_dynobj<size, big_endian>::make_version_map): Add the Layout argument. * dynobj.h (do_add_symbols): Add the Layout argument. * object.cc (Sized_relobj<size, big_endian>::do_add_symbols): Add the Layout argument. * object.h (Object::add_symbols): Add the Layout argument. (Object::do_add_symbols): Add the Layout argument. (Sized_relobj::do_add_symbols): Add the Layout argument. * plugin.cc (Sized_pluginobj<size, big_endian>::do_add_symbols): Unify the two versions. (Add_plugin_symbols): Remove. * plugin.h (Pluginobj::add_symbols, Pluginobj::do_add_symbols): Remove. (Sized_pluginobj::do_add_symbols): Unify the two versions. (Add_plugin_symbols): Remove. * readsyms.cc (Read_symbols::do_read_symbols): Update call to Add_symbols. Use Add_symbols instead of Add_plugin_symbols. (Add_symbols::run): Make it work with Pulginobj.
2009-02-07 * object.cc (Sized_relobj::do_layout): Make info message startIan Lance Taylor2-1/+6
with lower case letter.
2009-02-07 * binary.cc: Fix file comment.Ian Lance Taylor2-1/+3
2009-02-06 * options.h (enum Incremental_disposition): Define.Ian Lance Taylor3-4/+96
(class General_options): Add new options: --incremental, --incremental_changed, --incremental_unchanged, --incremental_unknown. Add incremental_disposition_ and implicit_incremental_ fields. (General_options::incremental_disposition): New function. (class Position_dependent_options): Add incremental_disposition option. (Position_dependent_options::copy_from_options): Set incremental dispositions. * options.cc (General_options::parse_incremental_changed): New function. (General_options::parse_incremental_unchanged): New function. (General_options::parse_incremental_unknown): New function. (General_options::General_options): Initialize new fields incremental_disposition_ and implicit_incremental_. (General_options::finalize): Check for uasge of --incremental-* without --incremental.
2009-02-062009-02-06 Chris Demetriou <cgd@google.com>Chris Demetriou8-67/+100
* gold.h (gold_undefined_symbol): Change to take only a Symbol pointer and to report location as the file name associated with the symbol. (gold_undefined_symbol_at_location): New function to replace the old gold_undefined_symbol functionality. * target-reloc.h (relocate_section): Update to use gold_undefined_symbol_at_location. * symtab.cc (Symbol_table::warn_about_undefined_dynobj_symbol): Call gold_undefined_symbol function rather than gold_error. * errors.h (Errors::undefined_symbol): Take location as a string, rather than calculating it from a relocation. * errors.cc (Errors::fatal): Print "fatal error:" before the formatted message. (Errors::error, Errors::error_at_location): Print "error: " before the formatted message. (Errors::undefined_symbol): Take location as a string, rather than calculating it from a relocation. (gold_undefined_symbol_at_location): New function akin to old gold_undefined_symbol, calculates location from relocation. (gold_undefined_symbol): Change to take only a Symbol pointer and to report location as the file name associated with the symbol. * testsuite/debug_msg.sh: Update for changed error messages. * testsuite/undef_symbol.sh: Likewise.
2009-02-04 PR 9812Ian Lance Taylor2-2/+10
* reduced_debug_output.h (Output_reduced_debug_abbrev_section::failed): Use format for gold_warning. (Output_reduced_debug_info_section::faild): Likewise.
2009-02-01 * script.cc (Lazy_demangler): New class.Ian Lance Taylor2-12/+59
(Version_script_info::get_symbol_version_helper): Demangle a symbol only once.
2009-01-30 * i386.cc (Target_i386::Relocate::relocate): Recognize non-PIC callsCary Coutant3-3/+11
to __tls_get_addr. * x86_64.cc (Target_x86_64::Relocate::relocate): Likewise. * ChangeLog: Fixed typo in previous ChangeLog entry (version 1.9).
2009-01-28 * version.cc (version_string): Bump to 1.8.Ian Lance Taylor2-1/+3
2009-01-28 * gold.h: Include <cstring> and <stdint.h>.Ian Lance Taylor5-20/+29
* version.cc: Include <cstdio>. * object.cc (Sized_relobj::do_layout): Initialize gc_sd to avoid a warning. * reduced_debug_output.cc (insert_into_vector): Rename from Insert_into_vector; change all callers. Use Swap_unaligned to avoid aliasing issue; remove union since it is unnecessary.
2009-01-28Wrong date and missing space in last checkin.Sriraman Tallam1-1/+1
2009-01-282009-01-20 Sriraman Tallam <tmsriram@google.com>Sriraman Tallam23-138/+1495
* Makefile.am (CCFILES): Add gc.cc. (HFILES): Add gc.h. * Makefile.in: Regenerate. * gold.cc (Gc_runner): New class. (queue_initial_tasks): Call garbage collection related tasks when corresponding options are invoked. (queue_middle_gc_tasks): New function. (queue_middle_tasks): Reorder tasks to allow relocs to be read and processed early before laying out sections during garbage collection. * gold.h (queue_middle_gc_tasks): New function. (is_prefix_of): Move from "layout.cc". * i386.cc (Target_i386::gc_process_relocs): New function. * layout.cc (is_prefix_of): Remove. Move to "gold.h" * main.cc (main): Create object of class "Garbage_collection". * object.cc (Relobj::copy_symbols_data): New function. (Relobj::is_section_name_included): New function. (Sized_relobj::do_layout): Allow this function to be called twice during garbage collection and defer layout of section during the first call. * object.h (Relobj::get_symbols_data): New function. (Relobj::is_section_name_included): New function. (Relobj::copy_symbols_data): New function. (Relobj::set_symbols_data): New function. (Relobj::get_relocs_data): New function. (Relobj::set_relocs_data): New function. (Relobj::is_output_section_offset_invalid): New pure virtual function. (Relobj::gc_process_relocs): New function. (Relobj::do_gc_process_relocs): New pure virtual function. (Relobj::sd_): New data member. (Sized_relobj::is_output_section_offset_invalid): New function. (Sized_relobj::do_gc_process_relocs): New function. * options.h (General_options::gc_sections): Modify to not be a no-op. (General_options::print_gc_sections): New option. * plugin.cc (Plugin_finish::run): Remove function call to Plugin_manager::layout_deferred_objects. Move it to "gold.cc". * powerpc.cc (Target_powerpc::gc_process_relocs): New function. * reloc.cc (Read_relocs::run): Add task to process relocs and determine unreferenced sections when doing garbage collection. (Gc_process_relocs): New class. (Sized_relobj::do_gc_process_relocs): New function. (Sized_relobj::do_scan_relocs): Don't try to scan the relocs for sections that are garbage collected. * reloc.h (Gc_process_relocs): New class. * sparc.cc (Target_sparc::gc_process_relocs): New function. * symtab.cc (Symbol::should_add_dynsym_entry): Do not add entries for symbols whose corresponding sections are garbage collected. (Symbol_table::Symbol_table): Add new parameter for the garbage collection object. (Symbol_table::gc_mark_undef_symbols): New function. (Symbol_table::gc_mark_symbol_for_shlib): New function. (Symbol_table::gc_mark_dyn_syms): New function. (Symbol_table::resolve): Do not treat symbols seen in dynamic objects as garbage. (Symbol_table::add_from_object): Likewise. (Symbol_table::add_from_relobj): When building shared objects, do not treat externally visible symbols as garbage. (Symbol_table::sized_finalize_symbol): Do not check dynamic symbol table information for static and relocatable links. * symtab.h (Symbol_table::set_gc): New function. (Symbol_table::gc): New function. (Symbol_table::gc_mark_undef_symbols): New function. (Symbol_table::gc_mark_symbol_for_shlib): New function. (Symbol_table::gc_mark_dyn_syms): New function. (Symbol_table::gc_): New data member. * target.h (Sized_target::gc_process_relocs): New pure virtual function. * x86_64.cc (Target_x86_64::gc_process_relocs): New function. * testsuite/testfile.cc (Target_test::gc_process_relocs): New function.
2009-01-23* options.h (General_options::gc_sections): Define as a no-op for now.Christopher Faylor3-0/+20
(General_options::no_keep_memory): Ditto. (General_options::Bshareable): Define. * options.cc (General_options::finalize): Honor -Bshareable.
2009-01-20* powerpc.cc (Powerpc_relocate_functions::rel16_ha): Don't try toAndreas Schwab2-8/+9
read the value in the contents, since we don't use it. Use the template endianness when writing. (Relocate::relocate): Use it for R_PPC_REL16_HA.
2009-01-19* configure.tgt (powerpc64-*): Fix targ_obj.Andreas Schwab2-7/+10
2009-01-15 * object.cc (Sized_relobj::write_local_symbols): Don't write outIan Lance Taylor2-7/+15
local symbols when stripping all symbols.
2009-01-15 * output.cc (Output_reloc): Add explicit instantiations.Cary Coutant2-0/+84
2009-01-15 * archive.cc (Archive::get_elf_object_for_member): Remove callCary Coutant16-162/+476
to File_read::claim_for_plugin. * descriptors.cc (Descriptors::open): Remove reference to is_claimed. (Descriptors::claim_for_plugin): Remove. * descriptors.h (Descriptors::claim_for_plugin): Remove. (Descriptors::is_claimed): Remove. (claim_descriptor_for_plugin): Remove. * fileread.cc (File_read::claim_for_plugin): Remove. * fileread.h (File_read::claim_for_plugin): Remove. (File_read::descriptor): Reopen descriptor if necessary. * plugin.cc (Plugin::load): Add two new APIs to transfer vector. (Plugin_manager::all_symbols_read): Add task parameter. Change all callers. (Plugin_manager::get_input_file): New function. (Plugin_manager::release_input_file): New function. (Pluginobj::Pluginobj): Add filesize parameter and initialize corresponding data member. (Sized_pluginobj::Sized_pluginobj): Add filesize parameter and pass to base constructor. Change all callers. (get_input_file, release_input_file): New functions. (make_sized_plugin_object): Add filesize parameter. Change all callers. * plugin.h (Plugin_manager::Plugin_manager): Initialize task_ member. (Plugin_manager::all_symbols_read): Add task parameter. (Plugin_manager::get_input_file): New function. (Plugin_manager::release_input_file): New function. (Plugin_manager::task_): New data member. (Pluginobj::Pluginobj): Add filesize parameter. (Pluginobj::filename): New function. (Pluginobj::descriptor): New function. (Pluginobj::filesize): New function. (Pluginobj::filesize_): New data member. (Sized_pluginobj::Sized_pluginobj): Add filesize parameter. * readsyms.cc (Read_symbols::do_read_symbols): Remove call to File_read::claim_for_plugin; use Object::unlock to unlock the file. * testsuite/Makefile.am (plugin_test_4): New test case for plugins with archive libraries. * testsuite/Makefile.in: Regenerate. * testsuite/plugin_test.c (struct sym_info): New type. (get_input_file, release_input_file): New static variables. (onload): Capture new transfer vector entries. (claim_file_hook): Stop reading at end of file according to filesize. Factor out parsing of readelf output into separate function. (all_symbols_read_hook): Exercise get_input_file and release_input_file APIs and get the source file name from the symbol table. Convert source file name to corresponding object file name. Print info message when adding new input files. (parse_readelf_line): New function. * testsuite/plugin_test_1.sh: Add checks for new info messages. * testsuite/plugin_test_2.sh: Likewise. * testsuite/plugin_test_3.sh: Likewise. * testsuite/plugin_test_4.sh: New test case.
2009-01-07 * version.cc (version_string): Bump to 1.8.Ian Lance Taylor2-1/+5
2008-12-24 * gold.cc (gold_exit): Call plugin cleanup handlers on exit.Cary Coutant4-8/+46
* plugin.cc (Plugin_manager::finish): Rename as layout_deferred_objects. Move cleanup to separate function. (Plugin_manager::cleanup): New function. (Plugin_finish::run): Call layout_deferred_objects and cleanup separately. * plugin.h (Plugin_manager::finish): Rename as layout_deferred_objects. (Plugin_manager::cleanup): New function. (Plugin_manager::cleanup_done): New field.
2008-12-23 * plugin.cc (is_visible_from_outside): New function.Cary Coutant5-13/+129
(Pluginobj::get_symbol_resolution_info): Call is_visible_from_outside so we don't return "IR only" status for exported symbols or -r links. * testsuite/Makefile.am (plugin_test_3): New test case. * testsuite/Makefile.in: Regenerate. * testsuite/plugin_test_3.sh: New file.
2008-12-23 * object.cc (Sized_relobj::layout_section): New function.Cary Coutant5-42/+193
(Sized_relobj::do_layout): Defer layout of input sections until after plugin has provided replacement files. (Sized_relobj::do_layout_deferred_sections): New function. * object.h (Relobj::set_section_offset): Remove virtual keyword. (Relobj::layout_deferred_sections): New function. (Relobj::do_layout_deferred_sections): New function. (Sized_relobj::do_layout_deferred_sections): New function. (Sized_relobj::layout_section): New function. (Sized_relobj::Deferred_layout): New structure. (Sized_relobj::deferred_layout_): New field. * plugin.cc (Plugin_manager::finish): Renamed, was cleanup. Change all callers. Layout deferred sections. (class Plugin_finish): Renamed, was Plugin_cleanup. Change all references. (Plugin_hook::run): Move code from do_plugin_hook inline. (Plugin_hook::do_plugin_hook): Remove. * plugin.h (Plugin_manager::Plugin_manager): Add missing initializers. (Plugin_manager::finish): Renamed, was cleanup. (Plugin_manager::should_defer_layout): New function. (Plugin_manager::add_deferred_layout_object): New function. (Plugin_manager::Deferred_layout_list): New type. (Plugin_manager::deferred_layout_objects_): New field. (Plugin_hook::do_plugin_hook): Remove.
2008-12-18 * options.h (class General_options): Add --no case forIan Lance Taylor2-1/+7
--export-dynamic.
2008-12-16 * plugin.cc (Plugin::load): Move LDPT_MESSAGE to front of transferCary Coutant5-20/+50
vector. (Plugin_manager::claim_file): Create plugin object even if plugin did not call the add_symbols callback. (Plugin_obj::get_symbol_resolution_info): Guard against plugin asking for more symbols than were added. * testsuite/Makefile.am (plugin_test_1): Add test case with no global symbols. (empty.syms): New target. * testsuite/Makefile.in: Regenerate. * testsuite/plugin_test.c (claim_file_hook): Add new debug message. Don't call add_symbols if no globals. (all_symbols_read_hook): Don't provide replacement for empty claimed file.
2008-12-12 * target-reloc.h (Default_scan_relocatable_relocs): Only discardIan Lance Taylor3-16/+14
r_type == 0 for a local symbol with r_sym == 0. (scan_relocatable_relocs): Pass r_sym to local_non_section_strategy. * reloc.cc (Emit_relocs_strategy::local_non_section_strategy): Add r_sym parameter.
2008-12-12 * configure.ac: Update test for TLS descriptors: they areIan Lance Taylor3-51/+86
supported as of glibc 2.9. * configure: Rebuild.