[llvm] c294bdd - libLTO.{so,dylib}: remove unused non-LTO symbols

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 2 14:51:40 PST 2023


Author: Fangrui Song
Date: 2023-02-02T14:51:35-08:00
New Revision: c294bdd64768e0954e7dec8ed878bdac7ce7530f

URL: https://github.com/llvm/llvm-project/commit/c294bdd64768e0954e7dec8ed878bdac7ce7530f
DIFF: https://github.com/llvm/llvm-project/commit/c294bdd64768e0954e7dec8ed878bdac7ce7530f.diff

LOG: 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.

Added: 
    

Modified: 
    llvm/tools/lto/CMakeLists.txt
    llvm/tools/lto/lto.exports

Removed: 
    llvm/tools/lto/lto.dylib.exports


################################################################################
diff  --git a/llvm/tools/lto/CMakeLists.txt b/llvm/tools/lto/CMakeLists.txt
index 9382ee9588b37..67f6d3af40e05 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 4164c3919a97f..0000000000000
--- 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 3abae5f0fcbaf..4164c3919a97f 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


        


More information about the llvm-commits mailing list