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.
This commit is contained in:
Fangrui Song 2023-02-02 14:51:35 -08:00
parent dd3f7b0225
commit c294bdd647
3 changed files with 1 additions and 88 deletions

View File

@ -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)

View File

@ -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

View File

@ -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