mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
6e9ba2ca9c
* 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. |
||
---|---|---|
.. | ||
arm_abs_global.s | ||
arm_abs_global.sh | ||
arm_abs_lib.s | ||
arm_attr_merge_6a.s | ||
arm_attr_merge_6b.s | ||
arm_attr_merge_7a.s | ||
arm_attr_merge_7b.s | ||
arm_attr_merge.sh | ||
arm_bl_in_range.s | ||
arm_bl_out_of_range.s | ||
arm_branch_in_range.sh | ||
arm_branch_range.t | ||
arm_fix_v4bx.s | ||
arm_fix_v4bx.sh | ||
basic_test.cc | ||
binary_test.cc | ||
binary_unittest.cc | ||
binary.in | ||
common_test_1.c | ||
common_test_2.c | ||
common_test_3.c | ||
constructor_test.cc | ||
copy_test_1.cc | ||
copy_test_2.cc | ||
copy_test.cc | ||
debug_msg.cc | ||
debug_msg.sh | ||
discard_locals_relocatable_test.c | ||
discard_locals_test.c | ||
discard_locals_test.sh | ||
dynamic_list.sh | ||
dynamic_list.t | ||
exception_test_1.cc | ||
exception_test_2.cc | ||
exception_test_main.cc | ||
exception_test.h | ||
exclude_libs_test_1.c | ||
exclude_libs_test_2.c | ||
exclude_libs_test_3.c | ||
exclude_libs_test.c | ||
exclude_libs_test.sh | ||
final_layout.cc | ||
final_layout.sh | ||
gc_comdat_test_1.cc | ||
gc_comdat_test_2.cc | ||
gc_comdat_test.sh | ||
gc_orphan_section_test.cc | ||
gc_orphan_section_test.sh | ||
gc_tls_test.cc | ||
gc_tls_test.sh | ||
hidden_test_1.c | ||
hidden_test_main.c | ||
hidden_test.sh | ||
icf_keep_unique_test.cc | ||
icf_keep_unique_test.sh | ||
icf_preemptible_functions_test.cc | ||
icf_preemptible_functions_test.sh | ||
icf_safe_so_test.cc | ||
icf_safe_so_test.sh | ||
icf_safe_test.cc | ||
icf_safe_test.sh | ||
icf_string_merge_test.cc | ||
icf_string_merge_test.sh | ||
icf_test.cc | ||
icf_test.sh | ||
icf_virtual_function_folding_test.cc | ||
incremental_test_1.c | ||
incremental_test_2.c | ||
incremental_test.sh | ||
initpri1.c | ||
justsyms_1.cc | ||
justsyms_2.cc | ||
justsyms.t | ||
large.c | ||
Makefile.am | ||
Makefile.in | ||
many_sections_test.cc | ||
no_version_test.c | ||
no_version_test.sh | ||
object_unittest.cc | ||
odr_violation1.cc | ||
odr_violation2.cc | ||
plugin_common_test_1.c | ||
plugin_common_test_2.c | ||
plugin_test_1.sh | ||
plugin_test_2.sh | ||
plugin_test_3.sh | ||
plugin_test_4.sh | ||
plugin_test_6.sh | ||
plugin_test_7_1.c | ||
plugin_test_7_2.c | ||
plugin_test_7.sh | ||
plugin_test.c | ||
protected_1.cc | ||
protected_2.cc | ||
protected_3.cc | ||
protected_4.cc | ||
protected_main_1.cc | ||
protected_main_2.cc | ||
protected_main_3.cc | ||
relro_script_test.t | ||
relro_test_main.cc | ||
relro_test.cc | ||
retain_symbols_file_test.sh | ||
script_test_1.cc | ||
script_test_1.t | ||
script_test_2.cc | ||
script_test_2.t | ||
script_test_2a.cc | ||
script_test_2b.cc | ||
script_test_3.sh | ||
script_test_3.t | ||
script_test_4.sh | ||
script_test_4.t | ||
script_test_5.cc | ||
script_test_5.sh | ||
script_test_5.t | ||
script_test_6.sh | ||
script_test_6.t | ||
script_test_7.sh | ||
script_test_7.t | ||
script_test_8.sh | ||
script_test_9.cc | ||
script_test_9.sh | ||
script_test_9.t | ||
searched_file_test_lib.cc | ||
searched_file_test.cc | ||
split_i386_1.s | ||
split_i386_2.s | ||
split_i386_3.s | ||
split_i386_4.s | ||
split_i386_n.s | ||
split_i386.sh | ||
split_x86_64_1.s | ||
split_x86_64_2.s | ||
split_x86_64_3.s | ||
split_x86_64_4.s | ||
split_x86_64_n.s | ||
split_x86_64.sh | ||
test.cc | ||
test.h | ||
testfile.cc | ||
testfile.h | ||
testmain.cc | ||
thin_archive_main.cc | ||
thin_archive_test_1.cc | ||
thin_archive_test_2.cc | ||
thin_archive_test_3.cc | ||
thin_archive_test_4.cc | ||
thumb2_branch_range.t | ||
thumb_bl_in_range.s | ||
thumb_bl_out_of_range.s | ||
thumb_blx_in_range.s | ||
thumb_blx_out_of_range.s | ||
thumb_branch_range.t | ||
tls_test_c.c | ||
tls_test_file2.cc | ||
tls_test_main.cc | ||
tls_test.cc | ||
tls_test.h | ||
two_file_shared.sh | ||
two_file_test_1.cc | ||
two_file_test_1b.cc | ||
two_file_test_2.cc | ||
two_file_test_main.cc | ||
two_file_test.h | ||
undef_symbol_main.cc | ||
undef_symbol.cc | ||
undef_symbol.sh | ||
ver_matching_def.cc | ||
ver_matching_test.sh | ||
ver_test_1.cc | ||
ver_test_1.sh | ||
ver_test_2.cc | ||
ver_test_2.script | ||
ver_test_2.sh | ||
ver_test_3.cc | ||
ver_test_4.cc | ||
ver_test_4.script | ||
ver_test_4.sh | ||
ver_test_5.cc | ||
ver_test_5.script | ||
ver_test_5.sh | ||
ver_test_6.c | ||
ver_test_7.cc | ||
ver_test_7.sh | ||
ver_test_8.script | ||
ver_test_9.cc | ||
ver_test_10.script | ||
ver_test_10.sh | ||
ver_test_main_2.cc | ||
ver_test_main.cc | ||
ver_test.h | ||
version_script.map | ||
weak_alias_test_1.cc | ||
weak_alias_test_2.cc | ||
weak_alias_test_3.cc | ||
weak_alias_test_4.cc | ||
weak_alias_test_main.cc | ||
weak_plt_main.cc | ||
weak_plt_shared.cc | ||
weak_plt.sh | ||
weak_test.cc | ||
weak_undef_file1.cc | ||
weak_undef_file2.cc | ||
weak_undef_test.cc | ||
weak_undef.h |