Age | Commit message (Collapse) | Author | Files | Lines |
|
* script.cc (script_include_directive): Implement.
(read_script_file): New local variables name and search_path. Update
comment. Call IS_ABSOLUTE_PATH and Dirsearch::find_file_in_dir_list.
* dirsearch.h (Dirsearch::find_file_in_dir_list): Declare new method.
* dirsearch.cc (Dirsearch::find_file_in_dir_list): Implement it.
|
|
* yyscript.y (section_cmd): Add support for INCLUDE directive.
(file_or_sections_cmd): Likewise.
|
|
* arm.cc (Target_arm::do_make_elf_object): Allow executable also
if --just-symbols is given.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
* 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.
|
|
* symtab.cc (Symbol_table::sized_write_globals): Convert
STB_GNU_UNIQUE to STB_GLOBAL if --no-gnu-unique.
|
|
* i386.cc (Target_i386::Relocate::relocate_tls): Remove
unnecessary assertion.
* x86_64.cc (Target_x86_64::Relocate::relocate_tls): Likewise.
|
|
* 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.
|
|
* script-sections.cc
(Output_section_element_dot_assignment::needs_output_section): New
function.
|
|
* 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.
|
|
bfd/
PR binutils/13301
* elfxx-sparc.c (sparc_elf_find_reloc_at_ofs): New function.
(_bfd_sparc_elf_relocate_section): Always move the __tls_get_addr
call delay slot instruction forward 4 bytes when performing
relaxation.
gold/
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.
ld/testsuite/
* ld-sparc/tlssunbin32.dd: Update for TLS call relaxation fix
for PR 13301.
* ld-sparc/tlssunbin64.dd: Likewise.
* ld-sparc/tlssunpic32.dd: Likewise.
* ld-sparc/tlssunpic64.dd: Likewise.
|
|
(Output_file::map_no_anonymous): Check for non-zero
return code from posix_fallocate.
|
|
* 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.
|
|
(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.
|
|
task for members of lib groups.
|
|
|
|
* gold/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.
|
|
::read returns less than requested size.
|
|
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.
* gold/incremental.h (Sized_relobj_incr::defined_count_): New data
member.
(Sized_incr_dynobj::defined_count_): New data member.
* gold/plugin.cc (Sized_pluginobj::do_get_global_symbol_counts):
Return zeroes instead of internal error.
|
|
* gold/output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
(Output_reloc::symbol_value): Return PLT offset if flag is set.
* gold/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.
* gold/x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
creating RELATIVE relocations.
|
|
|
|
|
|
* 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.
|
|
Check for NULL.
* gold/symtab.cc (Symbol_table::add_from_relobj): Ignore version
symbols during incremental update.
(Symbol_table::add_from_dynobj): Likewise.
|
|
canonicalize version string.
|
|
* gold/options.cc (General_options::finalize): ... to here. Disable
some options; make others fatal.
|
|
gcc PR lto/47247
* plugin-api.h (enum ld_plugin_symbol_resolution): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2.
gold/ChangeLog
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.
|
|
configuration options.
* configure: Regenerate.
* Makefile.am: Handle GOLD_LDADD and GOLD_LDFLAGS.
* Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
|
|
* plugin.h (should_defer_layout): Modify to check for any_claimed_.
|
|
* incremental.h (can_incremental_update): Likewise.
|
|
* 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.
|
|
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.
|
|
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.
|
|
variable external_symbols_offset.
|
|
triggered if object has no symbols.
|
|
(Output_fill_debug_line::do_write): Likewise.
|
|
casts to match formatting specs.
(Output_fill_debug_line::do_minimum_hole_size): Likewise.
|
|
remaining hole size when allocating.
(Layout::make_output_section): Set fill methods for debug sections.
* layout.h (Free_list::Free_list_node): Move from private to
public.
(Free_list::set_min_hole_size): New function.
(Free_list::begin, Free_list::end): New functions.
(Free_list::min_hole_): New data member.
* output.cc: Include dwarf.h.
(Output_fill_debug_info::do_minimum_hole_size): New function.
(Output_fill_debug_info::do_write): New function.
(Output_fill_debug_line::do_minimum_hole_size): New function.
(Output_fill_debug_line::do_write): New function.
(Output_section::Output_section): Initialize new data member.
(Output_section::set_final_data_size): Ensure patch space is larger
than minimum hole size.
(Output_section::do_write): Fill holes in debug sections.
* output.h (Output_fill): New class.
(Output_fill_debug_info): New class.
(Output_fill_debug_line): New class.
(Output_section::set_free_space_fill): New function.
(Output_section::free_space_fill_): New data member.
* testsuite/Makefile.am (incremental_test_3): Add
--incremental-patch option.
(incremental_test_4): Likewise.
(incremental_test_5): Likewise.
(incremental_test_6): Likewise.
(incremental_copy_test): Likewise.
(incremental_common_test_1): Likewise.
* testsuite/Makefile.in: Regenerate.
|
|
|
|
|
|
|
|
* gold/testsuite/Makefile.in: Regenerate.
* gold/testsuite/justsyms_exec.c: New source file.
* gold/testsuite/justsyms_lib.c: New source file.
|
|
segment if -Ttext was specified.
* object.cc (Sized_relobj_file::Sized_relobj_file): Store the ELF
file type.
* object.h (Sized_relobj_file::e_type): New function.
(Sized_relobj_file::e_type_): New data member.
* symtab.cc (Symbol_table::add_from_relobj): Don't add section
base address for ET_EXEC files.
* target.cc (Target::do_make_elf_object_implementation): Allow
ET_EXEC files with --just-symbols option.
|
|
Add thread_number parameter.
(Workqueue_threader_threadpool::should_cancel_thread): Likewise.
* workqueue-threads.cc
(Workqueue_threader_threadpool::should_cancel_thread): Cancel
current thread if its thread number is greater than desired thread
count.
* workqueue.cc (Workqueue_threader_single::should_cancel_thread):
Add thread_number parameter.
(Workqueue::should_cancel_thread): Likewise.
(Workqueue::find_runnable_or_wait): Pass thread_number to
should_cancel_thread.
* workqueue.h (Workqueue::should_cancel_thread): Add thread_number
parameter.
|
|
the -Ttext option is not 0 modulo the page size. If we clear
load_seg, clear phdr_seg too.
* testsuite/Makefile.am (check_PROGRAMS): Add flagstest_o_ttext_1.
(flagstest_o_ttext_1): New target.
(check_DATA): Add flagstest_o_ttext_2.
(flagstest_o_ttext_2): New target.
* testsuite/Makefile.in: Rebuild.
|
|
* symtab.cc (Symbol_table::add_from_relobj): Mark symbol as referenced
only after checking if it cannot be forced local.
* symtab.h (is_externally_visible): Check if the symbol is not forced
local.
|