From c294bdd64768e0954e7dec8ed878bdac7ce7530f Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Thu, 2 Feb 2023 14:51:35 -0800 Subject: [PATCH] libLTO.{so,dylib}: remove unused non-LTO symbols These dissembler symbols are not used by LTO (see Apple ld64's use in check-llvm-tools-lto). On ELF platforms, these symbols are not defined and are rejected by ld --no-undefined-version. I think this is a more proper solution than D139932 and this fixes -DBUILD_SHARED_LIBS=on for ELF as well. --- llvm/tools/lto/CMakeLists.txt | 6 +-- llvm/tools/lto/lto.dylib.exports | 77 -------------------------------- llvm/tools/lto/lto.exports | 6 --- 3 files changed, 1 insertion(+), 88 deletions(-) delete mode 100644 llvm/tools/lto/lto.dylib.exports diff --git a/llvm/tools/lto/CMakeLists.txt b/llvm/tools/lto/CMakeLists.txt index 9382ee9588b3..67f6d3af40e0 100644 --- a/llvm/tools/lto/CMakeLists.txt +++ b/llvm/tools/lto/CMakeLists.txt @@ -19,11 +19,7 @@ set(SOURCES lto.cpp ) -if (LLVM_LINK_LLVM_DYLIB) - set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.dylib.exports) -else() - set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports) -endif() +set(LLVM_EXPORTED_SYMBOL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/lto.exports) if(CMAKE_SYSTEM_NAME STREQUAL AIX) set(LTO_LIBRARY_TYPE MODULE) diff --git a/llvm/tools/lto/lto.dylib.exports b/llvm/tools/lto/lto.dylib.exports deleted file mode 100644 index 4164c3919a97..000000000000 --- a/llvm/tools/lto/lto.dylib.exports +++ /dev/null @@ -1,77 +0,0 @@ -lto_get_error_message -lto_get_version -lto_initialize_disassembler -lto_module_create -lto_module_create_from_fd -lto_module_create_from_fd_at_offset -lto_module_create_from_memory -lto_module_create_from_memory_with_path -lto_module_create_in_local_context -lto_module_create_in_codegen_context -lto_module_has_ctor_dtor -lto_module_get_linkeropts -lto_module_get_macho_cputype -lto_module_get_num_symbols -lto_module_get_symbol_attribute -lto_module_get_symbol_name -lto_module_get_target_triple -lto_module_set_target_triple -lto_module_is_object_file -lto_module_is_object_file_for_target -lto_module_is_object_file_in_memory -lto_module_is_object_file_in_memory_for_target -lto_module_has_objc_category -lto_module_dispose -lto_api_version -lto_codegen_set_diagnostic_handler -lto_codegen_add_module -lto_codegen_set_module -lto_codegen_add_must_preserve_symbol -lto_codegen_compile -lto_codegen_create -lto_codegen_create_in_local_context -lto_codegen_dispose -lto_codegen_set_debug_model -lto_codegen_set_pic_model -lto_codegen_write_merged_modules -lto_codegen_debug_options -lto_codegen_debug_options_array -lto_codegen_set_assembler_args -lto_codegen_set_assembler_path -lto_codegen_set_cpu -lto_codegen_compile_to_file -lto_codegen_optimize -lto_codegen_compile_optimized -lto_codegen_set_should_internalize -lto_codegen_set_should_embed_uselists -lto_set_debug_options -thinlto_create_codegen -thinlto_codegen_dispose -thinlto_codegen_add_module -thinlto_codegen_process -thinlto_module_get_num_objects -thinlto_module_get_object -thinlto_codegen_set_pic_model -thinlto_codegen_set_cache_dir -thinlto_codegen_set_cache_pruning_interval -thinlto_codegen_set_cache_entry_expiration -thinlto_codegen_set_final_cache_size_relative_to_available_space -thinlto_codegen_set_cache_size_bytes -thinlto_codegen_set_cache_size_megabytes -thinlto_codegen_set_cache_size_files -thinlto_codegen_set_savetemps_dir -thinlto_codegen_set_cpu -thinlto_debug_options -lto_module_is_thinlto -thinlto_codegen_add_must_preserve_symbol -thinlto_codegen_add_cross_referenced_symbol -thinlto_codegen_set_codegen_only -thinlto_codegen_disable_codegen -thinlto_module_get_num_object_files -thinlto_module_get_object_file -thinlto_set_generated_objects_dir -lto_input_create -lto_input_dispose -lto_input_get_num_dependent_libraries -lto_input_get_dependent_library -lto_runtime_lib_symbols_list diff --git a/llvm/tools/lto/lto.exports b/llvm/tools/lto/lto.exports index 3abae5f0fcba..4164c3919a97 100644 --- a/llvm/tools/lto/lto.exports +++ b/llvm/tools/lto/lto.exports @@ -45,12 +45,6 @@ lto_codegen_compile_optimized lto_codegen_set_should_internalize lto_codegen_set_should_embed_uselists lto_set_debug_options -LLVMCreateDisasm -LLVMCreateDisasmCPU -LLVMDisasmDispose -LLVMDisasmInstruction -LLVMSetDisasmOptions -LLVMCreateDisasmCPUFeatures thinlto_create_codegen thinlto_codegen_dispose thinlto_codegen_add_module