+
+ * arm.cc (Target_arm<big_endian>::gc_process_relocs): Add template
+ paramter to the call to gold::gc_process_relocs.
+ * i386.cc (Target_i386<big_endian>::gc_process_relocs): Add template
+ paramter to the call to gold::gc_process_relocs.
+ * x86_64.cc (Target_x86_64<big_endian>::gc_process_relocs): Add template
+ parameter to the call to gold::gc_process_relocs.
+ * powerpc.cc (Target_powerpc<big_endian>::gc_process_relocs): Add
+ template parameter to the call to gold::gc_process_relocs.
+ * sparc.cc (Target_sparc<big_endian>::gc_process_relocs): Add template
+ paramter to the call to gold::gc_process_relocs.
+ * gc.h (get_embedded_addend_size): New function.
+ (gc_process_relocs): Save the size of the reloc for use by ICF.
+ * icf.cc (get_section_contents): Get the addend from the text section
+ for SHT_REL relocation sections.
+ * icf.h (Icf::Reloc_addend_size_info): New typedef.
+ (Icf::Reloc_info): Add new member reloc_addend_size_info.
+ * int_encoding.h (read_from_pointer): New overloaded function.
+ * testsuite/Makefile.am (icf_sht_rel_addend_test): New test.
+ * testsuite/icf_sht_rel_addend_test.sh: New file.
+ * testsuite/icf_sht_rel_addend_test_1.cc: New file.
+ * testsuite/icf_sht_rel_addend_test_2.cc: New file.
+
+
+ * configure.ac (AM_INIT_AUTOMAKE): Use parallel-tests option.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.in: Regenerate.
+
+
+ * testsuite/debug_msg.sh: Test mixed weak/strong symbol behavior.
+ * gold/testsuite/debug_msg.cc: Likewise.
+ * gold/testsuite/odr_violation1.cc
+ * gold/testsuite/odr_violation2.cc
+
+
+ * merge.h (Output_merge_string::Merged_string): Remove object, shndx,
+ string, and length fields.
+ (Output_merge_string::Merged_strings_list): New type.
+ (Output_merge_string::Merged_strings_lists): New typedef.
+ (Output_merge_string): Replace merged_strings_ with
+ merged_strings_lists_.
+ * merge.cc (Output_merge_string::do_add_input_section): Allocate new
+ Merged_strings_list per input object and section. Don't store pointer
+ to the string. Don't store length with each merged string entry.
+ (Output_merge_string::finalize_merged_data): Loop over list of merged
+ strings lists. Recompute length of each merged string.
+
+
+ * plugin.cc (Plugin_finish::run): Don't call cleanup handlers from
+ here.
+
+
+ * descriptors.cc (Descriptors::open): Report correct name in error
+ message.
+
+
+ * arm.cc (Arm_input_section::Arm_input_section): For a
+ SHT_ARM_EXIDX section, always keeps the input sections.
+ (Arm_input_section::set_exidx_section_link): New method.
+ (Arm_exidx_input_section::Arm_exidx_input_section): Initialize
+ has_errors_ to false.
+ (Arm_exidx_input_section::has_errors,
+ Arm_exidx_input_section::set_has_errors): New methods.
+ (Arm_exidx_input_section::has_errors_): New data member.
+ (Arm_relobj::get_exidx_shndx_list): New method.
+ (Arm_output_section::append_text_sections_to_list): Do not skip
+ section without SHF_EXECINSTR.
+ (Arm_output_section::fix_exidx_coverage): Skip input sections with
+ errors.
+ (Arm_relobj::make_exidx_input_section): Add new parameter for text
+ section header. Make error messages more verbose. Check for
+ a non-executable section linked to an EXIDX section.
+ (Arm_relobj::do_read_symbols): Remove error checking, which has been
+ moved to Arm_relobj::make_exidx_input_section. Add an assertion to
+ check that there is no deferred EXIDX section if we exit early.
+ Instead of not making an EXIDX section in case of an error, make one
+ and set the has_errors flag of it.
+ (Target_arm::do_finalize_sections): Fix up links of EXIDX sections
+ in a relocatable link.
+ (Target_arm::do_relax): Look for the EXIDX output section instead of
+ assuming that it is called .ARM.exidx.
+ (Target_arm::fix_exidx_coverage): Add a new parameter for input
+ section list. Do not check for SHF_EXECINSTR section flags but
+ skip any input section with errors.
+ * output.cc (Output_section::Output_section): Initialize
+ always_keeps_input_sections_ to false.
+ (Output_section::add_input_section): Check for
+ always_keeps_input_sections_.
+ * output.h (Output_section::always_keeps_input_sections,
+ Output_section::set_always_keeps_input_sections): New methods.
+ (Output_section::always_keeps_input_sections): New data member.
+
+
+ * fileread.cc (try_extra_search_path, find_file): Move to Input_file.
+ * fileread.h (Input_file): Add try_extra_search_path and find_file.
+
+
+ * output.h (Output_section_lookup_maps::add_merge_section):
+ Correct check of whether value was inserted.
+ (Output_section_lookup_maps::add_merge_input_section): Likewise.
+ (Output_section_lookup_maps::add_relaxed_input_section):
+ Likewise.
+ * arm.cc (Target_arm::got_section): Remove used local os.
+ * i386.cc (Target_i386::got_section): Likewise.
+ * x86_64.cc (Target_x86_64::got_section): Likewise.
+ * sparc.cc (Target_sparc::got_section): Likewise.
+ (Target_sparc::relocate): Remove unused local have_got_offset.
+ * powerpc.cc (Target_powerpc::relocate): Likewise.
+
+
+ * compressed_output.cc (zlib_decompress): Fix signature in
+ !HAVE_ZLIB_H case.
+
+ * archive.cc (Archive::include_member): Unlock an external member
+ of a thin archive. Don't bother to delete an object we know is
+ NULL.
+
+
+ * compressed_output.cc (zlib_decompress): New function.
+ (get_uncompressed_size): New function.
+ (decompress_input_section): New function.
+ * compressed_output.h (get_uncompressed_size): New function.
+ (decompress_input_section): New function.
+ * dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info)
+ Handle compressed debug sections.
+ * layout.cc (is_compressed_debug_section): New function.
+ (Layout::output_section_name): Map compressed section names to
+ canonical names.
+ * layout.h (is_compressed_debug_section): New function.
+ (is_debug_info_section): Recognize compressed debug sections.
+ * merge.cc: Include compressed_output.h.
+ (Output_merge_data::do_add_input_section): Handle compressed
+ debug sections.
+ (Output_merge_string::do_add_input_section): Handle compressed
+ debug sections.
+ * object.cc: Include compressed_output.h.
+ (Sized_relobj::Sized_relobj): Initialize new data members.
+ (build_compressed_section_map): New function.
+ (Sized_relobj::do_read_symbols): Handle compressed debug sections.
+ * object.h (Object::section_is_compressed): New method.
+ (Object::do_section_is_compressed): New method.
+ (Sized_relobj::Compressed_section_map): New type.
+ (Sized_relobj::do_section_is_compressed): New method.
+ (Sized_relobj::compressed_sections_): New data member.
+ * output.cc (Output_section::add_input_section): Handle compressed
+ debug sections.
+ * reloc.cc: Include compressed_output.h.
+ (Sized_relobj::write_sections): Handle compressed debug sections.
+
+
+ * resolve.cc (Symbol_table::resolve): Remember whether undef was
+ weak when resolving to a dynamic def.
+ (Symbol_table::should_override): Add adjust_dyndef flag; set it
+ for weak undef/dynamic def cases. Adjust callers.
+ * symtab.cc (Symbol::init_fields): Initialize undef_binding_set_ and
+ undef_binding_weak_.
+ (Symbol_table::sized_write_globals): Adjust symbol binding.
+ (Symbol_table::sized_write_symbol): Add binding parameter.
+ * symtab.h (Symbol::set_undef_binding): New method.
+ (Symbol::is_undef_binding_weak): New method.
+ (Symbol::undef_binding_set_, Symbol::undef_binding_weak_): New members.
+ (Symbol_table::should_override): Add new parameter.
+ (Symbol_table::sized_write_symbol): Add new parameter.
+
+ * testsuite/weak_undef_file1.cc: Add new test case.
+ * testsuite/weak_undef_file2.cc: Fix header comment.
+ * testsuite/weak_undef_test.cc: Add new test case.
+
+
+ * arm-reloc-property.cc (Arm_reloc_property::Arm_reloc_property):
+ Initialize USE_SYMBOL_.
+ * arm-reloc-property.h (Arm_reloc_property::uses_symbol): New method
+ definition.
+ (Arm_reloc_property::uses_symbol_): New data member declaration.
+ * arm.cc (Target_arm::Relocate::relocate): Exit early if relocation
+ uses symbol value and symbol is undefined but not weakly undefined.
+
+
+ * plugin.cc (Plugin::load): Use dlerror.
+
+
+ * symtab.cc (detect_odr_violations): When reporting an ODR
+ violation, report an object where the symbol is defined.
+
+
+ * arm.cc (Target_arm::can_check_for_functions_pointers): Return true.
+ (Target_arm::section_may_have_icf_unsafe_pointers): New method
+ definition.
+ (Target_arm::Scan::local_reloc_may_be_function_pointer,
+ Target_arm::Scan::global_reloc_may_be_function_pointer): Implement
+ target hook to detect function points.
+ (Target_arm::Scan::possible_function_pointer_reloc): New method.
+ * icf.h (Icf::check_section_for_function_pointers): Change type of
+ parameter SECTION_NAME to const reference to std::string. Use
+ target hook to determine if section may have unsafe pointers.
+ * target.h (Target::section_may_have_icf_unsafe_pointers): New
+ method definition.
+
+
+ * fileread.cc (Input_file::find_fie): New
+ (Input_file::open): Use Input_file::find_fie.
+ * fileread.h (Input_file::find_fie): New
+ * plugin.cc (set_extra_library_path): New.
+ (Plugin::load): Add set_extra_library_path to the transfer vector.
+ (Plugin_manager::set_extra_library_path): New.
+ (Plugin_manager::add_input_file): Use the extra search path if set.
+ (set_extra_library_path(): New.
+ * plugin.h (Plugin_manager): Add set_extra_library_path and
+ extra_search_path_.
+
+
+ * layout.cc (gdb_sections): Add .debug_types.
+ (lines_only_debug_sections): Likewise.
+
+
+ * plugin.cc (add_input_file,add_input_library)
+ (Plugin_manager::add_input_file): Make filename arguments const.
+ * plugin.h (Plugin_manager::add_input_file): Make filename arguments
+ const.
+
+
+ * arm.cc (Target_arm::do_finalize_sections): Do not emit an
+ .ARM.attributes section if we have not merged any input
+ attributes sections.
+
+
+ * arm.cc: Allow combining objects with no EABI version
+ information.
+
+
+ * plugin.cc (Plugin_hook::run): Set in_real_elf for the start symbol.
+
+
+ * fileread.cc: Only #include <sys/uio.h> if HAVE_READV.
+ (struct iovec): Correct !HAVE_READV definition.
+
+
+ * object.cc (Sized_relobj::do_layout): Defer layout for reloc sections.
+ (Sized_relobj::do_layout_deferred_sections): Do layout for deferred
+ reloc sections.
+ * object.h (Sized_relobj::deferred_layout_relocs_): New data member.
+
+ PR 11683
+ * symtab.h (Symbol::is_placeholder): New member function.
+ * target-reloc.h (relocate_section): Check for placeholder symbols.
+
+ * testsuite/Makefile.am (plugin_test_8): New test.
+ (plugin_test_9): New test.
+ * testsuite/Makefile.in: Regenerate.
+
+
+ * yyscript.y (input_list_element): Allow strings prefixed with
+ the '-' character. Treat these as libraries.
+ * script.cc (script_add_library): New function. Adds a library
+ specified by "-l<name>" found in an input script.
+ * script-c.h: Add prototype for script_add_library.
+
+
+ * arm.cc (Target_arm::do_relax): Reserve more space for stubs.
+ Restrict stub-group size to be within long conditional branch
+ range when working around cortex-A8 erratum.
+
+
+ * gold-threads.cc (Lock_impl_threads::Lock_impl_threads): Correct
+ #ifdef typo.
+
+
+ PR gold/11658
+ * output.cc
+ (Output_section::Input_section_sort_entry::compare_section_ordering):
+ Change to return non-zero correctly.
+ (Output_section::Input_section_sort_section_order_index_compare
+ ::operator()): Change to fix ambiguity in comparisons.
+
+
+ * gold.h (is_wildcard_string): New function.
+ * layout.cc (Layout::layout): Pass this pointer to add_input_section.
+ (Layout::layout_eh_frame): Ditto.
+ (Layout::find_section_order_index): New method.
+ (Layout::read_layout_from_file): New method.
+ * layout.h (Layout::find_section_order_index): New method.
+ (Layout::read_layout_from_file): New method.
+ (Layout::input_section_position_): New private member.
+ (Layout::input_section_glob_): New private member.
+ * main.cc (main): Call read_layout_from_file here.
+ * options.h (--section-ordering-file): New option.
+ * output.cc (Output_section::input_section_order_specified_): New
+ member.
+ (Output_section::Output_section): Initialize new member.
+ (Output_section::add_input_section): Add new parameter.
+ Keep input sections when --section-ordering-file is used.
+ (Output_section::set_final_data_size): Sort input sections when
+ section ordering file is specified.
+ (Output_section::Input_section_sort_entry): Add new parameter.
+ Check sorting type.
+ (Output_section::Input_section_sort_entry::compare_section_ordering):
+ New method.
+ (Output_section::Input_section_sort_compare::operator()): Change to
+ consider section_order_index.
+ (Output_section::Input_section_sort_init_fini_compare::operator()):
+ Change to consider section_order_index.
+ (Output_section::Input_section_sort_section_order_index_compare
+ ::operator()): New method.
+ (Output_section::sort_attached_input_sections): Change to sort
+ according to section order when specified.
+ (Output_section::add_input_section<32, true>): Add new parameter.
+ (Output_section::add_input_section<64, true>): Add new parameter.
+ (Output_section::add_input_section<32, false>): Add new parameter.
+ (Output_section::add_input_section<64, false>): Add new parameter.
+ * output.h (Output_section::add_input_section): Add new parameter.
+ (Output_section::input_section_order_specified): New
+ method.
+ (Output_section::set_input_section_order_specified): New method.
+ (Input_section::Input_section): Initialize section_order_index_.
+ (Input_section::section_order_index): New method.
+ (Input_section::set_section_order_index): New method.
+ (Input_section::section_order_index_): New member.
+ (Input_section::Input_section_sort_section_order_index_compare): New
+ struct.
+ (Output_section::input_section_order_specified_): New member.
+ * script-sections.cc (is_wildcard_string): Delete and move modified
+ method to gold.h.
+ (Output_section_element_input::Output_section_element_input): Modify
+ call to is_wildcard_string.
+ (Output_section_element_input::Input_section_pattern
+ ::Input_section_pattern): Ditto.
+ (Output_section_element_input::Output_section_element_input): Ditto.
+ * testsuite/Makefile.am (final_layout): New test case.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/final_layout.cc: New file.
+ * testsuite/final_layout.sh: New file.
+
+
+ * plugin.cc (Plugin::load): Pass the output name to the plugin.
+
+
+ * plugin.cc (Sized_pluginobj::::do_add_symbols): Correctly set the
+ visibility of symbols.
+
+
+ * object.cc (Sized_relobj::do_finalize_local_symbols): Use offset
+ from start of output section instead of address for a local symbol
+ in a merged or relaxed section when doing a relocatable link.
+
+
+ PR 11604
+ * gold/object.cc(Sized_relobj::do_layout_deferred_sections): Avoid
+ adding sections the garbage collector removed.
+ * gold/testsuite/Makefile.am: Add test.
+ * gold/testsuite/Makefile.in: Regenerate.
+ * gold/testsuite/plugin_test_7.sh: New.
+ * gold/testsuite/plugin_test_7_1.c: New.
+ * gold/testsuite/plugin_test_7_2.c: New.
+
+
+ * script-sections.cc (Output_section_definition::set_section_addresses):
+ Check for --section-start.
+
+
+ * arm.cc (Arm_scan_relocatable_relocs): New class.
+ (Target_arm::relocate_special_relocatable): New method.
+ (Arm_relocate_functions::arm_branch_common): Handle relocatable link.
+ (Arm_relocate_functions::thumb_branch_common): Same.
+ (Target_arm::scan_relocatable_relocs): Use Arm_scan_relocatable_relocs
+ instead of Default_scan_relocatable_relocs.
+ * target-reloc.h (relocate_for_relocatable): Let target handle
+ relocation strategy Relocatable_relocs::RELOC_SPECIAL.
+ * target.h (Sized_target::relocate_special_relocatable): New method.
+
+
+ * timer.cc: Only #include <sys/times.h> if HAVE_TIMES is defined.
+
+
+ * arm.cc (Arm_input_section::do_output_offset): Use convert_types
+ instead of a cast.
+ (Target_arm::apply_cortex_a8_workaround): Rewrite a conditional branch
+ with a direct branch, not a conditional branch, to a stub.
+ * merge.cc (Output_merge_base::record_input_section): New method
+ defintion.
+ (Output_merge_data::do_add_input_section): Record input section if
+ keeps-input-sections flag is set.
+ (Output_merge_string::do_add_input_section): Ditto.
+ * merge.h (Output_merge_base::Output_merge_base): Initialize new data
+ members KEEPS_INPUT_SECTIONS_, FIRST_RELOBJ_, FIRST_SHNDX_ and
+ INPUT_SECTIONS_.
+ (Output_merge_base::keeps_input_sections,
+ Output_merge_base::set_keeps_input_sections,
+ Output_merge_base::first_relobj, Output_merge_base::first_shndx): New
+ method definitions.
+ (Output_merge_base::Input_sections): New type declaration.
+ (Output_merge_base::input_sections_begin,
+ Output_merge_base::input_sections_end,
+ Output_merge_base::do_set_keeps_input_sections): New method definitions.
+ (Output_merge_base::bool keeps_input_sections_,
+ Output_merge_base::first_relobj_, Output_merge_base::first_shndx_,
+ Output_merge_base::input_sections_): New data members.
+ (Output_merge_data::do_set_keeps_input_sections): New method
+ defintion.
+ (Output_merge_string::do_set_keeps_input_sections): Ditto.
+ * output.cc (Output_section::Input_section::relobj): Move method
+ defintion from class declaration to here and handle merge sections.
+ (Output_section::Input_section::shndx): Ditto.
+ (Output_section::Output_section): Remove initializations of removed
+ data members and initialize new data member LOOKUP_MAPS_.
+ (Output_section::add_input_section): Set keeps-input-sections flag
+ for a newly created merge output section as appropriate. Adjust code
+ to use Output_section_lookup_maps class.
+ (Output_section::add_relaxed_input_section): Adjst code for lookup
+ maps code refactoring.
+ (Output_section::add_merge_input_section): Add a new parameter
+ KEEPS_INPUT_SECTION. Adjust code to use Output_section_lookup_maps
+ class. If adding input section to a newly created merge output
+ section fails, remove the new merge section.
+ (Output_section::convert_input_sections_in_list_to_relaxed_input_sections):
+ Adjust code for use of the Output_section_lookup_maps class.
+ (Output_section::find_merge_section): Ditto.
+ (Output_section::build_lookup_maps): New method defintion.
+ (Output_section::find_relaxed_input_section): Adjust code to use
+ Output_section_lookup_maps class.
+ (Output_section::get_input_sections): Export merge sections. Adjust
+ code to use Output_section_lookup_maps class.
+ (Output_section:::add_script_input_section): Adjust code to use
+ Output_section_lookup_maps class. Update lookup maps for merge
+ sections also.
+ (Output_section::discard_states): Use Output_section_lookup_maps.
+ (Output_section::restore_states): Same.
+ * output.h (Merge_section_properties): Move class defintion out of
+ Output_section.
+ (Output_section_lookup_maps): New class.
+ (Output_section::Input_section::is_merge_section): New method
+ defintion.
+ (Output_section::Input_section::relobj): Move defintion out of class
+ defintion. Declare method only.
+ (Output_section::Input_section::shndx): Ditto.
+ (Output_section::Input_section::output_merge_base): New method defintion.
+ (Output_section::Input_section::u2_.pomb): New union field.
+ (Output_section::Merge_section_by_properties_map,
+ Output_section::Output_section_data_by_input_section_map,
+ Output_section::Ouptut_relaxed_input_section_by_input_section_map):
+ Remove types.
+ (Output_section::add_merge_input_section): Add new parameter
+ KEEPS_INPUT_SECTIONS.
+ (Output_section::build_lookup_maps): New method declaration.
+ (Output_section::merge_section_map_,
+ Output_section::merge_section_by_properties_map_,
+ Output_section::relaxed_input_section_map_,
+ Output_section::is_relaxed_input_section_map_valid_): Remove data
+ members.
+ (Output_section::lookup_maps_): New data member.
+
+
+ PR gold/11619
+ * arm.cc (Arm_input_section::do_output_offset): Add a cast to
+ avoid a compilation error.
+
+
+ * script-sections.cc (Output_section_definition::allocate_to_segment):
+ Update the phdrs_list even when the output section is NULL.
+ * testsuite/Makefile.am: Add test.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/script_test_9.cc: New.
+ * testsuite/script_test_9.sh: New.
+ * testsuite/script_test_9.t: New.
+
+
+ * arm.cc (Arm_input_section::original_size): New method.
+ (Arm_input_section::do_addralign): Add a cast.
+ (Arm_input_section::do_output_offset): Remove static cast.
+ (Arm_input_section::original_addralign,
+ Arm_input_section::original_size_): Change type to uint32_t.
+ (Arm_input_section::init): Add safe casts for section alignment
+ and size.
+ (Arm_input_section::set_final_data_size): Do not set address and
+ offset of stub table.
+ (Arm_output_section::fix_exidx_coverage): Change use of of
+ Output_section::Simple_input_section to that of
+ Output_section::Input_section.
+ (Target_arm::do_relax): Set addresses and file offsets of Stub_tables
+ except for the first pass.
+ * output.cc (Output_section::get_input_sections): Change type of
+ input_sections to std::list<Input_section>.
+ (Output_section::add_script_input_section): Rename from
+ Output_section::add_simple_input_section. Change type of SIS
+ parameter from Simple_input_section to Input_section.
+ * output.h (Output_section::Simple_input_section): Remove class.
+ (Output_section::Input_section): Change class visibility to public.
+ (Output_section::Input_section::addralign): Use stored alignments
+ for special input sections if set.
+ (Output_section::Input_section::set_addralign): New method.
+ (Output_section::get_input_sections): Change parameter type from
+ list of Simple_input_section to list of Input_section.
+ (Output_section::add_script_input_section): Rename from
+ Output_section::add_simple_input_section. Change first parameter's
+ type from Simple_input_section to Input_section and remove the
+ second and third parameters.
+ * script-sections.cc (Input_section::Input_section_list): Change
+ type to list of Output_section::Input_section/
+ (Input_section_info::Input_section_info): Change parameter type of
+ INPUT_SECTION to Output_section::Input_section.
+ (Input_section_info::input_section): Change return type.
+ (Input_section_info::input_section_): Change type to
+ Output_section::Input_section.
+ (Output_section_element_input::set_section_addresses): Adjust code
+ to use Output_section::Input_section instead of
+ Output_section::Simple_input_section. Adjust code for renaming
+ of Output_section::add_simple_input_section.
+ (Orphan_output_section::set_section_addresses): Ditto.
+
+
+ * gold.h (Unordered_multimap, Unordered_map): Fix defines for
+ when neither HAVE_TR1_UNORDERED_MAP nor HAVE_EXT_HASH_MAP are set.
+
+
+ * options.cc (General_options::finalize): Handle -nostdlib.
+ * options.h (nostdlib): New option.
+ * script.cc (script_add_search_dir): Handle -nostdlib.
+
+
+ * arm.cc (Target_arm::do_finalize_sections): Create an empty
+ attributes section only if there no attributes section after merging.
+ (Target_arm::merge_object_attributes): Move value of
+ Tag_MPextension_use_legacy to that of Tag_MPextension_use.
+ Handle Tag_DIV_use and Tag_MPextension_use_legacy.
+ * testsuite/Makefile.am (check_SCRIPTS): Add arm_attr_merge.sh
+ (check_DATA): Add arm_attr_merge_6.stdout, arm_attr_merge_6r_stdout
+ and arm_attr_merge_7.stdout.
+ (arm_attr_merge_6.stdout, arm_attr_merge_6 arm_attr_merge_6a.o
+ arm_attr_merge_6b.o, arm_attr_merge_6r.stdout, arm_attr_merge_6r,
+ arm_attr_merge_7.stdout, arm_attr_merge_7, arm_attr_merge_7a.o,
+ arm_attr_merge_7b.o): New rules.
+ (MOSTLYCLEANFILES): Add arm_attr_merge_6, arm_attr_merge_6r and
+ arm_attr_merge_7
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/arm_attr_merge.sh: New file.
+ * testsuite/arm_attr_merge_[67][ab].s: Same.
+
+
+ * po/es.po: Updated Spanish translation.
+
* Makefile.am (install-exec-local): Properly install gold as
Output_merge_data.
* output.cc (Output_section::add_merge_input_section): Simplify
code and return status of Output_merge_base::add_input_section.
- Update merge section map only if Output_merge_base::add_input_section
+ Update merge section map only if Output_merge_base::add_input_section
returns true.
(Chunked_vector::reserve): Call reserve method of all Element_vectors.
(Chunked_vector::size): Return size_.
(Chunked_vector::push_back): Use size_ to find insert position.
- (Chunked_vector::size_): New data member.
+ (Chunked_vector::size_): New data member.
(Stringpool_template::set_no_zero_null): Assert string set is empty.
(Stringpool_template::new_key_offset): New method declaration.
(Stringpool_template::offset_): New data member.
(Target_arm::Scan::global): Ditto.
(Target_arm::Relocate::relocate_tls): Handle static linking. Fix
all incorrectly implemented relocations.
- (Target_arm::fix_exidx_coverage): Pass layout to
+ (Target_arm::fix_exidx_coverage): Pass layout to
Arm_output_section::fix_exidx_coverage.
* layout.cc (Layout::section_name_mapping): Remove trailing dots
from ".ARM.exidx." and ".ARM.extab.".
(Arm_relocate_functions::thumb_branch_common): Ditto.
* testsuite/Makefile.am (check_SCRIPTS): Add arm_branch_in_range.sh.
(check_DATA): Add arm_bl_in_range.stdout, arm_bl_out_of_range.stdout
- thumb_bl_in_range.stdout, thumb_bl_out_of_range.stdout,
+ thumb_bl_in_range.stdout, thumb_bl_out_of_range.stdout,
thumb2_bl_in_range.stdout and thumb2_bl_out_of_range.stdout.
(arm_bl_in_range.stdout, arm_bl_in_range, arm_bl_in_range.o,
arm_bl_out_of_range.stdout, arm_bl_out_of_range,
(Target_arm::Relocate::relocate): Adjust code to call
Arm_relocation_functions::arm_branch_common and
Arm_relocation_functions::thumb_branch_common instead of their removed
- wrappers. Merge switch-cases together to reduce source code size.
+ wrappers. Merge switch-cases together to reduce source code size.
* options.h (DEFINE_bool): Set the user-set flag.
(General_options): Add --[no-]-fix-cortex options.
* output.cc (Output_section::convert_input_sections_to_relaxed_sections)
- : Update fast look-up map after conversion.
+ : Update fast look-up map after conversion.
relocation and Cortex-A8 stub scanning.
(Target_arm::do_relax): Force stubs to be after stubbed sections
if fixing the Cortex-A8 erratum. Remove all Cortex-A8 stubs at
- the beginning of a new relaxation pass. Update a comment.
+ the beginning of a new relaxation pass. Update a comment.
(Target_arm::scan_span_for_cortex_a8_erratum): New method definition.
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):
+ Target_arm::do_attribute_arg_type, Target_arm::do_attributes_order):
New method definitions.
* Makefile.in: Regenerated.
-
+
Revert:
* object.cc (make_elf_object): Ditto.
* x86_64.cc (Target_x86_64::do_calls_non_split): Add a cast to avoid
a format warning.
-
+
PR gold/10930
(Target_arm::new_arm_input_section,
Target_arm::find_arm_input_section, Target_arm::new_stub_table,
Target_arm::reloc_uses_thumb_bit): New method declarations.
- (Target_arm::Stub_table_list, Target_arm::Arm_input_section_map):
+ (Target_arm::Stub_table_list, Target_arm::Arm_input_section_map):
New type definitions.
(Target_arm::stub_tables_, Target_arm::stub_factory_): New data
member declarations.
* arm.cc (Arm_relobj): New class definition.
- (Arm_relobj::scan_sections_for_stubs,
+ (Arm_relobj::scan_sections_for_stubs,
Arm_relobj::do_count_local_symbols, Arm_relobj::do_relocate_sections):
New method definitions.
from private to protected to allow access by child class.
(Sized_relobj::do_relocate_sections): New method declaration.
(Sized_relobj::relocate_sections): Virtualize.
- * reloc.cc (Sized_relobj::do_relocate_sections): Rename from
+ * reloc.cc (Sized_relobj::do_relocate_sections): Rename from
Sized_relobj::relocate_sections. Instantiate template explicitly
for different target sizes and endianity.
* testsuite/Makefile.am: Add commands to build icf_safe_test. Modify
icf_test and icf_keep_unique_test to use the --icf enum flag.
* testsuite/icf_safe_test.sh: New file.
- * testsuite/icf_safe_test.cc: New file.
+ * testsuite/icf_safe_test.cc: New file.
(Output_section_headers::Output_section_headers): Move size
computation to Output_section_headers::do_size.
(Output_segment_headers::do_size): New method definition.
- (Output_file_header::Output_file_header): Move size computation to
+ (Output_file_header::Output_file_header): Move size computation to
Output_file_header::do_size and call it.
(Output_file_header::do_size): New method definition.
(Output_data_group::Output_data_group): Adjust call to
pair with Output_section::Simple_input_section and Convert struct to a
class.
(Input_section_sorter::operator()): Adjust access to
- Input_section_info data member to use accessors.
+ Input_section_info data member to use accessors.
(Output_section_element_input::set_section_addresses): Use layout
parameter. Adjust code to use Output_section::Simple_input_section
and Input_secction_info classes. Register filler for relaxation
* testsuite/gc_tls_test.sh: New file.
-
+
* icf.cc: New file.
* icf.h: New file.
* Makefile.am (CCFILES): Add icf.cc.
Renamed from timestamp_nsec.
(Incremental_inputs_entry_write::timestamp_sec): Fix argument to
Elf_Xword.
- (Incremental_inputs_entry_write::timestamp_usec): Renamed from
+ (Incremental_inputs_entry_write::timestamp_usec): Renamed from
timestamp_nsec.
- (Incremental_inputs::report_archive): Save mtime; style fix.
+ (Incremental_inputs::report_archive): Save mtime; style fix.
(Incremental_inputs::report_obejct): Save mtime; style fix.
(Incremental_inputs::report_script): Save mtime; style fix.
(Incremental_inputs::finalize_inputs): Style fix.
* Makefile.am (CCFILES): Add target.cc.
- * Makefile.in: Regenerate.
+ * Makefile.in: Regenerate.
* i386.cc (class Target_i386): Define new virtual method to
override do_is_local_label_name in parent.
* object.cc (Sized_relobj::do_count_local_symbols): Discard
- * testsuite/Makefile.am: Add -ffunction-sections to compile
+ * testsuite/Makefile.am: Add -ffunction-sections to compile
gc_comdat_test files. Add -Wl,--gc-sections to build
gc_comdat_test.
* testsuite/Makefile.in: Regenerate.
* layout.cc (Layout::output_section_name): Preserve names
of '.note.' sections.
-
+
* descriptors.cc (Descriptors::open): Check that the options are
* configure, Makefile.in, config.in: Rebuild.
-
+
* 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.
-
+
* descriptors.cc: Include "options.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
+ (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.
(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
+ * 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.