Line 1... |
Line 1... |
|
2011-11-11 Sterling Augustine
|
|
|
|
* yyscript.y (section_cmd): Add support for INCLUDE directive.
|
|
(file_or_sections_cmd): Likewise.
|
|
|
|
2011-11-11 Doug Kwan
|
|
|
|
* arm.cc (Target_arm::do_make_elf_object): Allow executable also
|
|
if --just-symbols is given.
|
|
|
|
2011-11-10 Doug Kwan
|
|
|
|
PR gold/13362
|
|
* arm.cc (Target_arm::Relocate::relocate_tls): Do unaligned accesses
|
|
when processing data relocs.
|
|
* reloc.h (Relocate_functions::rel_unaligned): New method.
|
|
(Relocate_functions::pcrel_unaligned): Ditto.
|
|
(Relocate_functions::rel32_unaligned): Ditto.
|
|
(Relocate_functions::pcrel32_unaligned): Ditto.
|
|
|
|
2011-11-09 Doug Kwan
|
|
|
|
PR gold/13362
|
|
* arm.cc (Arm_scan_relocatable_relocs::Default_scan_relocatable_relocs):
|
|
Use unaligned 4-byte relocs for static 32-bit data as required by EABI.
|
|
* reloc.h (Relocatable_relocs::Reloc_strategy): New enum
|
|
RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
|
|
(Relocate_functions::rel_unaligned): New.
|
|
(Relocate_functions::rel32_unaligned): New.
|
|
* target-reloc.h (relocate_for_relocatable): Add code to handle
|
|
RELOC_ADJUST_FOR_SECTION_4_UNALIGNED.
|
|
* testsuite/Makefile.am (arm_unaligned_reloc_r.stdout,
|
|
arm_unaligned_reloc_r): New targets.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
* arm_unaligned_reloc.sh: Check unaligned relocs in relocatable
|
|
linking.
|
|
|
|
2011-11-02 Ian Lance Taylor
|
|
|
|
* configure.ac: Add --with-lib-path option. Define LIB_PATH and
|
|
NATIVE_LINKER.
|
|
* Makefile.am (AM_CPPFLAGS): Define TOOLLIBDIR.
|
|
* options.cc (General_options::finalize): Use library search path
|
|
from configure script if specified. If not native and no sysroot,
|
|
only search TOOLLIBDIR.
|
|
* options.h (Search_directory::Search_directory): Change name to
|
|
const std::string&.
|
|
(General_options::add_to_library_path_with_sysroot): Change arg to
|
|
const std::string&.
|
|
* configure, Makefile.in, config.in: Rebuild.
|
|
|
|
2011-11-02 Matthew Gretton-Dann
|
|
|
|
* arm.cc (Target_arm::may_use_v5t_interworking): Check whether
|
|
we are working around the ARM1176 Erratum.
|
|
* options.h (General_options::fix_arm1176): Add option.
|
|
* testsuite/Makefile.am: Add testcases, and keep current ones
|
|
working.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
* testsuite/arm_fix_1176.s: New file.
|
|
* testsuite/arm_fix_1176.sh: Likewise.
|
|
|
|
2011-11-02 Matthew Gretton-Dann
|
|
|
|
* arm.cc (Target_arm::Target_arm): Remove initialisation of
|
|
may_use_blx_.
|
|
(Target_arm::may_use_blx): Remove method.
|
|
(Target_arm::set_may_use_blx): Likewise.
|
|
(Target_arm::may_use_v4t_interworking): New method.
|
|
(Target_arm::may_use_v5t_interworking): Likewise.
|
|
(Target_arm::may_use_blx_): Remove member variable.
|
|
(Arm_relocate_functions::arm_branch_common): Check for v5T
|
|
interworking.
|
|
(Arm_relocate_functions::thumb_branch_common): Likewise.
|
|
(Reloc_stub::stub_type_for_reloc): Likewise.
|
|
(Target_arm::do_finalize_sections): Correct interworking checks.
|
|
* testsuite/Makefile.am: Add new tests.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
* testsuite/arm_farcall_arm_arm.s: New test.
|
|
* testsuite/arm_farcall_arm_arm.sh: Likewise.
|
|
* testsuite/arm_farcall_arm_thumb.s: Likewise.
|
|
* testsuite/arm_farcall_arm_thumb.sh: Likewise.
|
|
* testsuite/arm_farcall_thumb_arm.s: Likewise.
|
|
* testsuite/arm_farcall_thumb_arm.sh: Likewise.
|
|
* testsuite/arm_farcall_thumb_thumb.s: Likewise.
|
|
* testsuite/arm_farcall_thumb_thumb.sh: Likewise.
|
|
|
|
2011-10-31 Cary Coutant
|
|
|
|
PR gold/13023
|
|
* expression.cc (Expression::eval_with_dot): Add
|
|
is_section_dot_assignment parameter.
|
|
(Expression::eval_maybe_dot): Likewise. Adjust value when rhs is
|
|
absolute and assigning to dot within a section.
|
|
* script-sections.cc
|
|
(Output_section_element_assignment::set_section_addresses): Pass
|
|
dot_section to set_if_absolute.
|
|
(Output_section_element_dot_assignment::finalize_symbols): Pass TRUE
|
|
as is_section_dot_assignment flag to eval_with_dot.
|
|
(Output_section_element_dot_assignment::set_section_addresses):
|
|
Likewise.
|
|
* script.cc (Symbol_assignment::set_if_absolute): Add dot_section
|
|
parameter. Also set value if relative to dot_section; set the
|
|
symbol's output_section.
|
|
* script.h (Expression::eval_with_dot): Add is_section_dot_assignment
|
|
parameter. Adjust all callers.
|
|
(Expression::eval_maybe_dot): Likewise.
|
|
(Symbol_assignment::set_if_absolute): Add dot_section parameter.
|
|
Adjust all callers.
|
|
* testsuite/script_test_2.t: Test assignment of an absolute value
|
|
to dot within an output section element.
|
|
|
|
2011-10-31 Cary Coutant
|
|
|
|
* options.h (class General_options): Add --[no-]gnu-unique options.
|
|
* symtab.cc (Symbol_table::sized_write_globals): Convert
|
|
STB_GNU_UNIQUE to STB_GLOBAL if --no-gnu-unique.
|
|
|
|
2011-10-31 Cary Coutant
|
|
|
|
PR gold/13359
|
|
* i386.cc (Target_i386::Relocate::relocate_tls): Remove
|
|
unnecessary assertion.
|
|
* x86_64.cc (Target_x86_64::Relocate::relocate_tls): Likewise.
|
|
|
|
2011-10-31 Sriraman Tallam
|
|
|
|
* symtab.h (Symbol_table::gc_mark_symbol_for_shlib): Rename to
|
|
gc_mark_symbol.
|
|
* symtab.cc (Symbol_table::gc_mark_symbol_for_shlib): Rename to
|
|
gc_mark_symbol.
|
|
Change to just keep the section associated with symbol.
|
|
(Symbol_table::add_from_relobj): Mark symbols as not garbage when
|
|
they are externally visible and --export-dynamic is turned on.
|
|
(Symbol_table::gc_mark_dyn_syms): Call gc_mark_symbol.
|
|
|
|
2011-10-19 Ian Lance Taylor
|
|
|
|
PR gold/13163
|
|
* script-sections.cc
|
|
(Output_section_element_dot_assignment::needs_output_section): New
|
|
function.
|
|
|
|
2011-10-19 Ian Lance Taylor
|
|
|
|
PR gold/13204
|
|
* layout.cc (Layout::segment_precedes): Don't assert failure if a
|
|
--section-start option was seen.
|
|
* options.h (General_options::any_section_start): New function.
|
|
|
|
2011-10-18 David S. Miller
|
|
|
|
PR binutils/13301
|
|
* sparc.cc (Target_sparc::Relocate::reloc_adjust_addr_): New
|
|
member to track relocation locations that have moved during TLS
|
|
reloc optimizations.
|
|
(Target_sparc::Relocate::Relocate): Initialize to NULL.
|
|
(Target_sparc::Relocate::relocate): Adjust view down by 4
|
|
bytes if it matches reloc_adjust_addr_.
|
|
(Target_sparc::Relocate::relocate_tls): Always move the
|
|
__tls_get_addr call delay slot instruction forward 4 bytes when
|
|
performing relaxation.
|
|
|
|
2011-10-18 Cary Coutant
|
|
|
|
* output.cc (posix_fallocate): Return 0 on success, errno on failure.
|
|
(Output_file::map_no_anonymous): Check for non-zero
|
|
return code from posix_fallocate.
|
|
|
|
2011-10-17 Cary Coutant
|
|
|
|
PR gold/13245
|
|
* plugin.cc (is_visible_from_outside): Check for symbols
|
|
referenced from dynamic objects.
|
|
* resolve.cc (Symbol_table::resolve): Don't count references
|
|
from dynamic objects as references from real ELF files.
|
|
* testsuite/plugin_test_2.sh: Adjust expected result.
|
|
|
|
2011-10-17 Cary Coutant
|
|
|
|
* gold.cc: Include timer.h.
|
|
(queue_middle_tasks): Stamp time.
|
|
(queue_final_tasks): Likewise.
|
|
* main.cc (main): Store timer in parameters. Print timers
|
|
for each pass.
|
|
* parameters.cc (Parameters::Parameters): Initialize timer_.
|
|
(Parameters::set_timer): New function.
|
|
(set_parameters_timer): New function.
|
|
* parameters.h (Parameters::set_timer): New function.
|
|
(Parameters::timer): New function.
|
|
(Parameters::timer_): New data member.
|
|
(set_parameters_timer): New function.
|
|
* timer.cc (Timer::stamp): New function.
|
|
(Timer::get_pass_time): New function.
|
|
* timer.h (Timer::stamp): New function.
|
|
(Timer::get_pass_time): New function.
|
|
(Timer::pass_times_): New data member.
|
|
|
|
2011-10-17 Cary Coutant
|
|
|
|
* readsyms.cc (Read_symbols::run): Don't queue an unblocker
|
|
task for members of lib groups.
|
|
|
|
2011-10-17 Cary Coutant
|
|
|
|
PR gold/13288
|
|
* fileread.cc (File_read::find_view): Add assert.
|
|
(File_read::make_view): Move bounds check (replace with assert)...
|
|
(File_read::find_or_make_view): ... to here.
|
|
|
|
2011-10-12 Cary Coutant
|
|
|
|
* output.cc (Output_file::open_base_file): Handle case where
|
|
::read returns less than requested size.
|
|
|
|
2011-10-10 Cary Coutant
|
|
|
|
* incremental.cc (Sized_relobj_incr::Sized_relobj_incr):
|
|
Initialize defined_count_.
|
|
(Sized_relobj_incr::do_add_symbols): Count defined symbols.
|
|
(Sized_relobj_incr::do_get_global_symbol_counts): Rewrite.
|
|
(Sized_incr_dynobj::Sized_incr_dynobj): Initialize defined_count_.
|
|
(Sized_incr_dynobj::do_add_symbols): Count defined symbols.
|
|
(Sized_incr_dynobj::do_get_global_symbol_counts): Rewrite.
|
|
* incremental.h (Sized_relobj_incr::defined_count_): New data
|
|
member.
|
|
(Sized_incr_dynobj::defined_count_): New data member.
|
|
* plugin.cc (Sized_pluginobj::do_get_global_symbol_counts):
|
|
Return zeroes instead of internal error.
|
|
|
|
2011-10-10 Cary Coutant
|
|
|
|
PR gold/13249
|
|
* output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
|
|
(Output_reloc::symbol_value): Return PLT offset if flag is set.
|
|
* output.h (class Output_reloc): Add use_plt_offset flag.
|
|
(Output_reloc::type_): Adjust size of bit field.
|
|
(Output_reloc::use_plt_offset_): New bit field.
|
|
(class Output_data_reloc): Adjust all calls to Output_reloc_type.
|
|
(Output_data_reloc::add_local_relative): (RELA only) Add use_plt_offset
|
|
flag. Adjust all callers.
|
|
* x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
|
|
creating RELATIVE relocations.
|
|
|
|
2011-10-10 Nick Clifton
|
|
|
|
* po/es.po: Updated Spanish translation.
|
|
* po/fi.po: Updated Finnish translation.
|
|
|
|
2011-10-03 Diego Novillo
|
|
|
|
* options.cc (parse_uint): Fix dereference of RETVAL.
|
|
|
|
2011-09-29 Sriraman Tallam
|
|
|
|
* layout.h (section_order_map_): New member.
|
|
(get_section_order_map): New member function.
|
|
* output.cc (Output_section::add_input_section): Check for patterns
|
|
only when --section-ordering-file is specified.
|
|
* gold.cc (queue_middle_tasks): Delay updating order of sections till
|
|
output_sections have been formed.
|
|
* layout.cc (Layout_Layout): Initialize section_order_map_.
|
|
* plugin.cc (update_section_order): Store order in order_map. Do not
|
|
update the order.
|
|
* testsuite/Makefile.am: Add test case for plugin_final_layout.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
* testsuite/plugin_section_order.c: New file.
|
|
* testsuite/plugin_final_layout.cc: New file.
|
|
* testsuite/plugin_final_layout.sh: New file.
|
|
|
|
2011-09-29 Cary Coutant
|
|
|
|
* incremental.cc (Sized_incremental_binary::do_process_got_plt):
|
|
Check for NULL.
|
|
* symtab.cc (Symbol_table::add_from_relobj): Ignore version
|
|
symbols during incremental update.
|
|
(Symbol_table::add_from_dynobj): Likewise.
|
|
|
|
2011-09-27 Viktor Kutuzov
|
|
Ian Lance Taylor
|
|
|
|
* symtab.cc (Symbol_table::define_special_symbol): Always
|
|
canonicalize version string.
|
|
|
|
2011-09-26 Cary Coutant
|
|
|
|
* gold.cc (queue_initial_tasks): Move option checks ...
|
|
* options.cc (General_options::finalize): ... to here. Disable
|
|
some options; make others fatal.
|
|
|
|
2011-09-26 Cary Coutant
|
|
|
|
gcc PR lto/47247
|
|
* plugin.cc (get_symbols_v2): New function.
|
|
(Plugin::load): Add LDPT_GET_SYMBOLS_V2.
|
|
(is_referenced_from_outside): New function.
|
|
(Pluginobj::get_symbol_resolution_info): Add version parameter, return
|
|
LDPR_PREVAILING_DEF_IRONLY_EXP when using new version.
|
|
(get_symbols): Pass version parameter.
|
|
(get_symbols_v2): New function.
|
|
* plugin.h (Pluginobj::get_symbol_resolution_info): Add version
|
|
parameter.
|
|
* testsuite/plugin_test.c (get_symbols_v2): New static variable.
|
|
(onload): Add LDPT_GET_SYMBOLS_V2.
|
|
(all_symbols_read_hook): Use get_symbols_v2; check for
|
|
LDPR_PREVAILING_DEF_IRONLY_EXP.
|
|
* testsuite/plugin_test_3.sh: Update expected results.
|
|
|
|
2011-09-23 Simon Baldwin
|
|
|
|
* configure.ac: Add new --with-gold-ldadd and --with-gold-ldflags
|
|
configuration options.
|
|
* configure: Regenerate.
|
|
* Makefile.am: Handle GOLD_LDADD and GOLD_LDFLAGS.
|
|
* Makefile.in: Regenerate.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
2011-09-19 Sriraman Tallam
|
|
|
|
* plugin.h (should_defer_layout): Modify to check for any_claimed_.
|
|
|
|
2011-09-19 Cary Coutant
|
|
|
|
* incremental.cc (can_incremental_update): Fix typo in comment.
|
|
* incremental.h (can_incremental_update): Likewise.
|
|
|
|
2011-09-18 Cary Coutant
|
|
|
|
* incremental.cc (can_incremental_update): New function.
|
|
* incremental.h (can_incremental_update): New function.
|
|
* layout.cc (Layout::init_fixed_output_section): Call it.
|
|
(Layout::make_output_section): Don't allow patch space in .eh_frame.
|
|
* object.cc (Sized_relobj_file::do_layout): Call
|
|
can_incremental_update.
|
|
|
|
2011-09-13 Cary Coutant
|
|
|
|
* configure.ac: Check for glibc support for gnu_indirect_function
|
|
support with static linking, setting automake conditional
|
|
IFUNC_STATIC.
|
|
* Makefile.in: Regenerate.
|
|
* configure: Regenerate.
|
|
|
|
* testsuite/Makefile.am (ifuncmain1static, ifuncmain2static)
|
|
(ifuncmain4static, ifuncmain5static, ifuncmain7static): Add check
|
|
for IFUNC_STATIC.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
|
|
2011-09-13 Cary Coutant
|
|
|
|
* incremental.cc (Sized_relobj_incr::do_layout): Call
|
|
report_comdat_group for kept comdat sections.
|
|
* testsuite/Makefile.am (incremental_comdat_test_1): New test.
|
|
* testsuite/Makefile.in: Regenerate.
|
|
* testsuite/incr_comdat_test_1.cc: New source file.
|
|
* testsuite/incr_comdat_test_2_v1.cc: New source file.
|
|
* testsuite/incr_comdat_test_2_v2.cc: New source file.
|
|
* testsuite/incr_comdat_test_2_v3.cc: New source file.
|
|
|
|
2011-09-13 Ian Lance Taylor
|
|
|
|
* object.cc (Sized_relobj_file::do_layout): Remove unused local
|
|
variable external_symbols_offset.
|
|
|
|
2011-09-12 Ian Lance Taylor
|
|
|
|
* object.cc (Sized_relobj_file::do_layout): Remove assertion which
|
|
triggered if object has no symbols.
|
|
|
|
2011-09-09 David S. Miller
|
|
|
|
* output.cc (Output_fill_debug_info::do_write): Use Swap_unaligned.
|
|
(Output_fill_debug_line::do_write): Likewise.
|
|
|
|
2011-08-29 Cary Coutant
|
|
|
|
* output.cc: (Output_fill_debug_info::do_minimum_hole_size): Add
|
|
casts to match formatting specs.
|
|
(Output_fill_debug_line::do_minimum_hole_size): Likewise.
|
|
|
2011-08-26 Cary Coutant
|
2011-08-26 Cary Coutant
|
|
|
* layout.cc (Free_list::allocate): Provide guarantee of minimum
|
* layout.cc (Free_list::allocate): Provide guarantee of minimum
|
remaining hole size when allocating.
|
remaining hole size when allocating.
|
(Layout::make_output_section): Set fill methods for debug sections.
|
(Layout::make_output_section): Set fill methods for debug sections.
|