X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gold%2FChangeLog;h=ed7f31d7680987a70d0acceb78068fa33781e672;hb=99fff23b2e6c675a1f35bf3ba853f70e2b7b4ce8;hp=bd91f6754fe89d823cb6e61d7a7199440ac31110;hpb=22b127cceb64a4a8dc7e62591746eb4c178eff9f;p=deliverable%2Fbinutils-gdb.git diff --git a/gold/ChangeLog b/gold/ChangeLog index bd91f6754f..ed7f31d768 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,585 @@ +2009-12-28 Ian Lance Taylor + + * symtab.h (class Symbol_table): Add enum Defined. + * resolve.cc (Symbol_table::should_override): Add defined + parameter. Change all callers. Test whether object is NULL + before calling a method on it. + (Symbol_table::report_resolve_problem): Add defined parameter. + Change all callers. + (Symbol_table::should_override_with_special): Likewise. + * symtab.cc (Symbol_table::define_in_output_data): Add defined + parameter. Change all callers. + (Symbol_table::do_define_in_output_data): Likewise. + (Symbol_table::define_in_output_segment): Likewise. + (Symbol_table::do_define_in_output_segment): Likewise. + (Symbol_table::define_as_constant): Likewise. + (Symbol_table::do_define_as_constant): Likewise. + * script.h (class Symbol_assignment): Add is_defsym parameter to + constructor; change all callers. + * script.cc (Script_options::add_symbol_assignment): Add is_defsym + parameter. Change all callers. Add is_defsym_ field. + (class Parser_closure): Add parsing_defsym parameter to + constructor; change all callers. Add parsing_defsym accessor + function. Add parsing_defsym_ field. + +2009-12-28 Ian Lance Taylor + + * gold.cc (queue_middle_tasks): Fix formatting. + * object.cc (Relobj::is_section_name_included): Likewise. + +2009-12-23 Ian Lance Taylor + + * i386.cc (Target_i386::do_calls_non_split): Recognize + -fsplit-stack prologue for a function with a static chain. + * x86_64.cc (Target_x86_64::do_calls_non_split): Recognize + -fsplit-stack prologue when using %r11. + +2009-12-21 Sriraman Tallam + + * options.cc (General_options::parse_version): Make -v continue and do + the link like GNU ld does. + +2009-12-17 Rafael Avila de Espindola + + * Makefile.am (CCFILES): Add timer.cc. + (HFILES): Add timer.h. + * configure.ac: Check for sysconf and times. + * main.cc: include timer.h. + (main): Use Timer instead of get_run_time. + * timer.cc: New. + * timer.h: New. + * workqueue.cc: include timer.h. + (Workqueue::find_and_run_task): + Report user, sys and wall time. + * Makefile.in: Regenerate. + * config.in: Regenerate. + * configure: Regenerate. + +2009-12-16 Doug Kwan + + * arm.cc (Arm_relobj::scan_sections_for_stubs): Exclude ICF-eliminated + sections. + * object.cc (Sized_relobj::do_finalize_local_symbols): Handle + relaxed input sections. + * output.cc (Output_section::find_relaxed_input_section): Change + return type to Output_relaxed_input_section pointer. Adjust code + for new type of relaxed_input_section_map_. + * output.h (Output_section::find_relaxed_input_section): Change + return type to Output_relaxed_input_section pointer. + (Output_section::Output_relaxed_input_section_by_input_section_map): + New type. + (Output_section::relaxed_input_section_map_): Change type to + Output_section::Output_relaxed_input_section_by_input_section_map. + * symtab.cc (Symbol_table::compute_final_value): Handle relaxed + input section. + +2009-12-15 Ian Lance Taylor + + * layout.cc (Layout::create_shstrtab): Only write out after input + sections if we are compressing debug sections. + +2009-12-15 Ian Lance Taylor + + * archive.cc (Archive::add_symbols): Only look up a symbol without + a version if there is, in fact, a version. + +2009-12-14 Ian Lance Taylor + + Revert -Wshadow changes, all changes from: + 2009-12-11 Doug Kwan + 2009-12-11 Nick Clifton + * configure.ac: Remove -Wshadow when setting WARN_CXXFLAGS. + +2009-12-11 Doug Kwan + + * arm.cc (Target_arm::do_finalize_sections): Fix build breakage + due to -Wshadow. + * attributes.cc (Object_attribute::size): Ditto. + (Attributes_section_data::size): Ditto. + (Attributes_section_data::Attributes_section_data): Ditto. + (Output_attributes_section_data::do_write): Ditto. + * attributes.h (Object_attribute::set_type): Ditto. + * testsuite/tls_test_main.cc (safe_lock, safe_unlock): Ditto. + +2009-12-11 Nick Clifton + + * archive.cc: Fix shadowed variable warnings. + * arm.cc: Likewise. + * compressed_output.cc: Likewise. + * compressed_output.h: Likewise. + * configure: Likewise. + * dwarf_reader.cc: Likewise. + * dynobj.cc: Likewise. + * dynobj.h: Likewise. + * ehframe.cc: Likewise. + * ehframe.h: Likewise. + * errors.cc: Likewise. + * expression.cc: Likewise. + * fileread.cc: Likewise. + * fileread.h: Likewise. + * freebsd.h: Likewise. + * i386.cc: Likewise. + * icf.cc: Likewise. + * incremental.h: Likewise. + * layout.cc: Likewise. + * layout.h: Likewise. + * mapfile.cc: Likewise. + * merge.cc: Likewise. + * merge.h: Likewise. + * object.cc: Likewise. + * object.h: Likewise. + * options.h: Likewise. + * output.cc: Likewise. + * output.h: Likewise. + * parameters.cc: Likewise. + * plugin.cc: Likewise. + * powerpc.cc: Likewise. + * reduced_debug_output.cc: Likewise. + * reduced_debug_output.h: Likewise. + * reloc.cc: Likewise. + * reloc.h: Likewise. + * resolve.cc: Likewise. + * script-sections.cc: Likewise. + * script.cc: Likewise. + * script.h: Likewise. + * sparc.cc: Likewise. + * symtab.cc: Likewise. + * symtab.h: Likewise. + * target-select.cc: Likewise. + * target-select.h: Likewise. + * token.h: Likewise. + * workqueue.cc: Likewise. + * workqueue.h: Likewise. + * x86_64.cc: Likewise. + +2009-12-10 Doug Kwan + + * arm.cc (attributes.h): New include. + (Arm_relobj::Arm_relobj): Initialize attributes_section_data_. + (Arm_relobj::~Arm_relobj): Delete object pointed by + attributes_section_data_. + (Arm_relobj::attributes_section_data): New method definition. + (Arm_relobj::attributes_section_data_): New data member declaration. + (Arm_dynobj::Arm_dynobj): Initialize attributes_section_data_. + (Arm_dynobj::~Arm_dynobj): Delete object pointed by + attributes_section_data_. + (Arm_dynobj::attributes_section_data): New method definition. + (Arm_dynobj::attributes_section_data_): New data member declaration. + (Target_arm::Target_arm): Initialize attributes_section_data_. Change + initialization value of may_use_blx_ to false. + (Target_arm::using_thumb2, Target_arm::using_thumb_only, + Target_arm::may_use_arm_nop, Target_arm::may_use_thumb2_nop): Use + object attributes to compute results instead of hard-coding. + (Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order, + Target_arm::get_secondary_compatible_arch, + Target_arm::set_secondary_compatible_arch + Target_arm::tag_cpu_arch_combine, Target_arm::aeabi_enum_name, + Target_arm::tag_cpu_name_value, Target_arm::merge_object_attributes): + New method declarations. + (Target_arm::get_aeabi_object_attribute): New method definition. + (Target_arm::attributes_section_data_): New data member declaration. + (read_arm_attributes_section): New template definition. + (Arm_relobj::do_read_symbols): Read attributes section if it exists. + (Arm_dynobj::do_read_symbols): Ditto. + (Target_arm::do_finalize_sections): Merge attributes sections from + input. Check for BLX use after attributes section merging. + Fix __exidx_start and __exidx_end visibility. Create an + .ARM.attributes section if necessary. + (Target_arm::get_secondary_compatible_arch, + Target_arm::set_secondary_compatible_arch, + Target_arm::tag_cpu_arch_combine, Target_arm::aeabi_enum_name, + Target_arm::tag_cpu_name_value, Target_arm::merge_object_attributes, + Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order): + New method definitions. + +2009-12-09 Ian Lance Taylor + + * plugin.cc (Plugin::load): Don't cast from void* to a function + pointer. + +2009-12-09 Ian Lance Taylor + + * dynobj.cc (Sized_dynobj::do_read_symbols): Clear version + information fields. + +2009-12-09 H.J. Lu + + * testsuite/Makefile.am (two_file_shared_1_pic_2_test_DEPENDENCIES): + Replace two_file_shared_1.so with two_file_shared_2.so. + * testsuite/Makefile.in: Regenerated. + +2009-12-08 Doug Kwan + + * Makefile.am (CCFILES): Add attributes.cc and int_encoding.cc. + (HFILES): Add attributes.h and int_encoding.h. + * Makefile.in: Regenerate. + * dwarf_reader.cc (read_unsigned_LEB_128, read_signed_LEB_128): Move + function definitions to int_encoding.cc + * dwarf_reader.h (read_unsigned_LEB_128, read_signed_LEB_128): Move + prototypes to int_encoding.h + * reduced_debug_output.cc (int_encoding.h): New include. + (write_unsigned_LEB_128, get_length_as_unsigned_LEB_128): Move + function definitions to int_encoding.cc + (insert_into_vector, read_from_pointer): Move template definitions to + int_encoding.h + * attributes.cc: New file. + * attributes.h: New file. + * int_encoding.cc: New file. + * int_encoding.h: New file. + +2009-12-07 Rafael Avila de Espindola + + PR gold/11055 + * incremental-dump.cc (dump_incremental_inputs): New. + (main): Use dump_incremental_inputs. + +2009-12-07 H.J. Lu + + PR gold/10893 + * i386.cc (Target_i386::Scan::globa): Use is_func instead of + checking elfcpp::STT_FUNC. + (Target_i386::Relocate::relocate): Likewise. + * x86_64.cc (Target_x86_64::Scan::global): Likewise. + + * symtab.cc (Symbol_table::sized_write_symbol): Turn IFUNC + symbols from shared libraries into normal FUNC symbols. + + * symtab.h (Symbol): Add is_func and use it. + +2009-12-05 Doug Kwan + + * arm.cc (Target_arm::arm_info): Initialize new fields + attributes_section and attributes_vendor. + * i386.cc (Target_i386::i386_info): Same. + * object.cc (Sized_relobj::do_layout): Skip attribute section. + * gold/powerpc.cc (Target_powerpc::powerpc_info): Initialize new + fields attributes_section and attributes_vendor. + * sparc.cc (Target_sparc::sparc_info): Same. + * target.h (Target::attributes_section, Target::attributes_vendor, + Target::is_attributes_section, Target::attribute_arg_type, + Target::attributes_order): New method definitions. + (Target::Target_info::attributes_section, + Target::Target_info::attributes_vendor): New fields. + (Target::do_attribute_arg_type, Target::do_attributes_order): New + virtual method definitions. + * x86_64.cc (Target_x86_64::x86_64_info): Initialize new fields + attributes_section and attributes_vendor. + * testsuite/testfile.cc (Target_test::test_target_info): Same. + +2009-12-05 Doug Kwan + + * arm.cc: Update comments about interworking and stub generation. + (Target_arm::Relocate::reloc_is_non_pic): Update list of relocations + considered as non-PIC. + (Arm_relocate_functions::base_abs): Fix formatting. + (Arm_relocate_functions::got_prel): Fix comment. Change interface + of function to use GOT entry address instead of offset. + (Target_arm::Scan::global): Issue an error if a symbol would need a + PLT does not get one because it is untyped. Remove code to create + dynamic symbols for relative branches. + (Target_arm::Relocate::relocate: Use 0 instead of false since function + takes unsigned integer instead of boolean. + +2009-12-05 H.J. Lu + + * testsuite/Makefile.am (constructor_test_LDADD): New. Empty. + (two_file_test_LDADD): Likewise. + (common_test_1_LDADD): Likewise. + (exception_test_LDADD) Likewise. + (weak_test_LDADD): Likewise. + (many_sections_test_LDADD): Likewise. + (initpri1_LDADD): Likewise. + (script_test_1_LDADD): Likewise. + (script_test_2_LDADD): Likewise. + (justsyms_LDADD): Likewise. + (binary_test_LDADD): Likewise. + (large_LDADD): Likewise. + * testsuite/Makefile.in: Regenerated. + +2009-12-04 H.J. Lu + + * resolve.cc (symbol_to_bits): Treat STB_GNU_UNIQUE as STB_GLOBAL. + (Symbol_table::override_with_special): Likewise. + (Symbol_table::add_from_object): Likewise. + +2009-12-04 Rafael Avila de Espindola + + * incremental.cc (Incremental_inputs::sized_create_inputs_section_data): + Don't set the data_offset twice. + +2009-12-04 Rafael Avila de Espindola + + * testsuite/Makefile.in: Regenerate. + +2009-12-03 Doug Kwan + + * arm.cc: Remove comment about missing .ARM.exidx section symbols. + (Target_arm::do_finalize_sections): Add parameter for symbol table + pointer. Add __exidx_start and __exidx_end symbols as appropriate. + * i386.cc (Target_i386::do_finalize_sections): Add an additional + parameter for symbol table pointer. + * layout.cc (Layout::finalize): Call Target::finalize_sections with + an additional parameter for a pointer to symbol table. + * powerpc.cc (Target_powerpc::do_finalize_sections): Add an additional + parameter for a symbol table pointer. + * sparc.cc (Target_sparc::do_finalize_sections): Ditto. + * target.h (Target::finalize_sections, Target::do_finalize_sections): + Ditto. + * x86_64.cc (Target_x86_64::do_finalize_sections): Add an additional + parameter for a symbol table pointer. + +2009-12-03 Rafael Avila de Espindola + + * incremental.cc (Incremental_inputs_header) + (Incremental_inputs_header_write, Incremental_inputs_entry) + (Incremental_inputs_entry_write): Move ... + * incremental.h (Incremental_inputs_header) + (Incremental_inputs_header_write, Incremental_inputs_entry) + (Incremental_inputs_entry_write): here. + +2009-12-02 Rafael Avila de Espindola + + * incremental.cc (make_sized_incremental_binary): Set the target. + Error if it is incompatible. + * output.h (Output_file): Add filename method. + +2009-12-02 Rafael Avila de Espindola + + * incremental.cc (Incremental_inputs_entry): Remove unused argument + from the get_* methods. + +2009-12-02 Rafael Avila de Espindola + + * incremental-dump.cc (main): Check that the offeset of a script is 0. + * incremental.cc (Incremental_inputs::sized_create_inputs_section_data): + Write 0 for the data_offset of scripts. + +2009-12-02 Rafael Avila de Espindola + + * testsuite/Makefile.am: Add the incremental_test.sh test. + * testsuite/incremental_test.sh: New. + * testsuite/incremental_test_1.c: New. + * testsuite/incremental_test_2.c: New. + +2009-12-01 Rafael Avila de Espindola + + * incremental-dump.cc (main): Fix typos. + +2009-11-27 Rafael Avila de Espindola + + PR gold/11025 + * incremental-dump.cc (main): Use llu to print 64 bit values. + +2009-11-26 Per Øyvind Karlsen + H.J. Lu + + * Makefile.am (incremental_dump_DEPENDENCIES): Add $(THREADSLIB) + $(LIBDL). + (incremental_dump_LDADD): Likewise. + * Makefile.in: Regenerated. + +2009-11-25 Doug Kwan + + Revert: + + 2009-11-25 Doug Kwan + + * arm.cc (Target_arm::Target_arm): Move method definition + outside of class definition. Add code to handle + --target1-rel, --target1-abs and --target2= options. + (Target_arm::get_reloc_reloc_type): Change method to be + non-static and const. + (Target_arm::target1_is_rel_, Target_arm::target2_reloc_): + New data member declaration. + (Target_arm::Scan::local, Target_arm::Scan::global, + Target_arm::Relocate::relocate, + Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): + Adjust call to Target_arm::get_real_reloc_type. + (Target_arm::get_real_reloc_type): Use command line options + to determine real types of R_ARM_TARGET1 and R_ARM_TARGET2. + * options.h (--target1-rel, --target1-abs, --target2): New + ARM-only options. + +2009-11-25 Doug Kwan + + * arm.cc (Target_arm::Target_arm): Move method definition outside of + class definition. Add code to handle --target1-rel, --target1-abs + and --target2= options. + (Target_arm::get_reloc_reloc_type): Change method to be non-static + and const. + (Target_arm::target1_is_rel_, Target_arm::target2_reloc_): New data + member declaration. + (Target_arm::Scan::local, Target_arm::Scan::global, + Target_arm::Relocate::relocate, + Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Adjust + call to Target_arm::get_real_reloc_type. + (Target_arm::get_real_reloc_type): Use command line options to + determine real types of R_ARM_TARGET1 and R_ARM_TARGET2. + * options.h (--target1-rel, --target1-abs, --target2): New ARM-only + options. + +2009-11-25 Doug Kwan + + * arm.cc (Target_arm::may_use_thumb2_nop): New method definition. + (Arm_relocate_functions::thumb_branch_common): New metod declaration. + (Arm_relocate_functions::abs12, Arm_relocate_functions::abs16): Fix + formatting. + (Arm_relocate_functions::thm_call): Replace body with a call to + Arm_relocate_functions::thumb_branch_common. + (Arm_relocate_functions::thm_jump24, + Arm_relocate_functions::thm_xpc22): New method definitions. + (Arm_relocate_functions::thumb_branch_common): New method definition. + (Reloc_stub::stbu_type_for_reloc): Fix incorrect uses of bit-wise-or + operator. + (Target_arm::Relocate::relocate): Adjust call to thm_call. + Add code to handle R_ARM_THM_XPC22 and R_ARM_THM_JUMP24. + +2009-11-24 Rafael Avila de Espindola + + * Makefile.am: Build incremental-dump + * Makefile.in: Regenerate. + * incremental-dump.cc: New. + * incremental.cc (Incremental_inputs_header_data, + Incremental_inputs_entry_data): Move to incremental.h + * incremental.h: (Incremental_inputs_header_data, + Incremental_inputs_entry_data): Move from incremental.cc + +2009-11-24 Rafael Avila de Espindola + + * incremental.cc (Incremental_inputs_header, + Incremental_inputs_header_write, Incremental_inputs_entry, + Incremental_inputs_entry_write): Add a typedef with the data type. + +2009-11-24 Rafael Avila de Espindola + + * incremental.cc (Incremental_inputs_header, + Incremental_inputs_header_write, Incremental_inputs_entry, + Incremental_inputs_entry_write): Update comment about which + type has the filed descriptions. + +2009-11-15 Doug Kwan + + * arm.cc (Target_arm::may_use_arm_nop): New method definition. + (Arm_relocate_functions::arm_branch_common): Change method defintion + in class definition to a method declaration and update list of formal + parameters. + (Arm_relocate_functions::plt32, Arm_relocate_functions::call, + Arm_relocation_functions::jump24): Adjust call to + Arm_relocate_functions::arm_branch_common. Update list of formal + parameters. + (Arm_relocate_functions::xpc25): New method definition. + (Arm_relocate_functions::arm_branch_common): Move method defintion + out from class definition. Use stubs for mode-switching and extending + branch ranges. + (Target_arm::Relocate::relocate): Handle weakly-undefined symbols + specially. Change code to enable use of stubs in ARM branches. + +2009-11-10 Doug Kwan + + * arm.cc (Arm_relobj::do_relocate_sections): Remove options parameter + in method declaration. + (Target_arm::relocate_stub): New method declaration. + (Target_arm::default_target): Change to return a pointer instead of + a const reference. + (Reloc_stub::stub_type_for_reloc): Adjust for the change in + Target_arm::default_target. + (Arm_Relobj::do_relocate_sections): Remove options paramater in + method definition. + (Target_arm::relocate_section): Adjust view. + (Target_arm::relocate_stub): New method definition. + +2009-11-10 Doug Kwan + + * i386.cc (Target_i386::do_calls_non_split): Add a cast to avoid + a format warning. + * incremental.cc (open_incremental_binary): Initialized local + variables to avoid warnings. + * object.cc (make_elf_object): Ditto. + * x86_64.cc (Target_x86_64::do_calls_non_split): Add a cast to avoid + a format warning. + +009-11-09 H.J. Lu + + PR gold/10930 + * testsuite/plugin_test.c: Include "config.h". + +2009-11-09 Doug Kwan + + * arm.cc (Target_arm::fake_relnum_for_stubs): New constant. + (arm_symbol_value): Remove. + (Arm_relocate_functions::arm_branch_common, + Arm_relocate_functions::abs8, Arm_relocate_functions::thm_abs5, + Arm_relocate_functions::abs12, Arm_relocate_functions::abs16, + Arm_relocate_functions::abs32, Arm_relocate_functions::rel32, + Arm_relocate_functions::thm_call, Arm_relocate_functions::plt32, + Arm_relocate_functions::call, Arm_relocate_functions::jump24, + Arm_relocate_functions::prel31, Arm_relocate_functions::mov_abs_nc, + Arm_relocate_functions::movt_abs, Arm_relocate_functions::movw_abs_nc, + Arm_relocate_functions::thm_mobw_abs_nc, + Arm_relocate_functions::thm_mov_abs, + Arm_relocate_functions::movw_prel_nc, + Arm_relocate_functions::thm_movt_abs, + Arm_relocate_functions::movt_prel, + Arm_relocate_functions::thm_movw_prel_nc, + Arm_relocate_functions::thm_movt_prel): Adjust callers of the above. + (Target_arm::Relocate::relocate): Only decompose address into two + parts if relocation type uses the thumb-bit and pass the actual + bit instead of a flag indicating that the thumb-bit is used. Adjust + calls to methods in Arm_relocate_functions for this change. + +2009-11-08 Ian Lance Taylor + + PR 10925 + * reloc.cc: Instantiate + Sized_relobj::initialize_input_to_output_maps and + Sized_relobj:free_input_to_output_maps. + +2009-11-06 Ian Lance Taylor + + PR 10876 + * defstd.cc (in_segment): Set only_if_ref true for "end". + +2009-11-06 Doug Kwan + + * arm.cc (class Reloc_stub): Correct a comment. + (Target_arm::Target_arm): Initialize arm_input_section_map_. + (Target_arm::scan_section_for_stubs): New method declaration. + (Target_arm::do_make_elf_object, Target_arm::do_make_output_section): + Change methods from private to protected. + (Target_arm::do_may_relax): New method definition. + (Target_arm::do_relax, Target_arm::group_sections, + Target_arm::scan_reloc_for_stub, + Target_arm::scan_reloc_section_for_stubs): New method declarations. + (Target_arm::arm_input_section_map_): New data member declaration. + (Target_arm::scan_reloc_for_stub, + Target_arm::scan_reloc_section_for_stubs, + Target_arm::scan_section_for_stubs, Target_arm::group_sections, + Target_arm::do_relax): New method definitions. + +2009-11-06 Mikolaj Zalewski + + * configure.ac: Check for (struct stat)::st_mtim + * fileread.cc (File_read::get_mtime): Use st_mtim if available. + * config.in: Regenerate. + * configure: Regenerate. + +2009-11-05 Ian Lance Taylor + + PR 10910 + * output.cc (Output_segment::add_output_section): Add missing + return statement. + +2009-11-04 Ian Lance Taylor + + PR 10880 + * object.h (class Object): Add is_needed and set_is_needed + methods. Add is_needed_ field. Make bool fields into bitfields. + * symtab.cc (Symbol_table::set_dynsym_indexes): If a symbol is + defined in a dynamic object and referenced by a regular object, + set is_needed for the dynamic object. + * layout.cc (Layout::finish_dynamic_section): Don't add DT_NEEDED + if the file is marked with as_needed and it is not needed. + 2009-11-04 Ian Lance Taylor PR 10887