mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
ce97fa81e0
* icf.cc (get_section_contents): Check for preemptible functions. Ignore addend when appropriate. * symtab.cc (should_add_dynsym_entry): Add new parameter. Check for section folded. (add_from_relobj): Check for section folded. (set_dynsym_indexes): Fix call to should_add_dynsym_entry. * symtab.h (should_add_dynsym_entry): Add new parameter. * target-reloc.h (scan_relocs): Check for section folded. * x86_64.cc (Target_x86_64::Scan::possible_function_pointer_reloc): Check reloc types for function pointers in shared objects. * testsuite/Makefile.am (icf_virtual_function_folding_test): New test case. (icf_preemptible_functions_test): New test case. (icf_string_merge_test): New test case. * testsuite.Makefile.in: Regenerate. * testsuite/icf_safe_so_test.sh: Change to not fold foo_glob and bar_glob. Refactor code. * testsuite/icf_preemptible_functions_test.cc: New file. * testsuite/icf_preemptible_functions_test.sh: New file. * testsuite/icf_string_merge_test.cc: New file. * testsuite/icf_string_merge_test.sh: New file. * testsuite/icf_virtual_function_folding_test.cc: New file. * testsuite/icf_virtual_function_folding_test.sh: New file. |
||
---|---|---|
.. | ||
arm_abs_global.s | ||
arm_abs_global.sh | ||
arm_abs_lib.s | ||
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 | ||
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 | ||
icf_virtual_function_folding_test.sh | ||
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.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 | ||
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 |