diff --git a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt index b220cbea80f1b6d..9f327ce838b7073 100644 --- a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt @@ -33,6 +33,7 @@ clang_target_link_libraries(clangTidyMain # Support plugins. if(CLANG_PLUGIN_SUPPORT) set(support_plugins SUPPORT_PLUGINS) + set(export_symbols EXPORT_SYMBOLS_FOR_PLUGINS) endif() add_clang_tool(clang-tidy @@ -41,6 +42,7 @@ add_clang_tool(clang-tidy DEPENDS clang-resource-headers ${support_plugins} + ${export_symbols} ) clang_target_link_libraries(clang-tidy PRIVATE @@ -57,10 +59,6 @@ target_link_libraries(clang-tidy ${ALL_CLANG_TIDY_CHECKS} ) -if(CLANG_PLUGIN_SUPPORT) - export_executable_symbols_for_plugins(clang-tidy) -endif() - install(PROGRAMS clang-tidy-diff.py DESTINATION "${CMAKE_INSTALL_DATADIR}/clang" COMPONENT clang-tidy) diff --git a/clang/tools/clang-linker-wrapper/CMakeLists.txt b/clang/tools/clang-linker-wrapper/CMakeLists.txt index bf37d8031025ed3..4a16c3ca9f0903c 100644 --- a/clang/tools/clang-linker-wrapper/CMakeLists.txt +++ b/clang/tools/clang-linker-wrapper/CMakeLists.txt @@ -31,6 +31,7 @@ add_clang_tool(clang-linker-wrapper DEPENDS ${tablegen_deps} + EXPORT_SYMBOLS_FOR_PLUGINS ) set(CLANG_LINKER_WRAPPER_LIB_DEPS @@ -41,5 +42,3 @@ target_link_libraries(clang-linker-wrapper PRIVATE ${CLANG_LINKER_WRAPPER_LIB_DEPS} ) - -export_executable_symbols_for_plugins(clang-linker-wrapper) diff --git a/clang/tools/clang-repl/CMakeLists.txt b/clang/tools/clang-repl/CMakeLists.txt index a35ff13494e1153..52b740b356284e4 100644 --- a/clang/tools/clang-repl/CMakeLists.txt +++ b/clang/tools/clang-repl/CMakeLists.txt @@ -9,6 +9,8 @@ set( LLVM_LINK_COMPONENTS add_clang_tool(clang-repl ClangRepl.cpp + + EXPORT_SYMBOLS_FOR_PLUGINS ) if(MSVC) @@ -61,8 +63,6 @@ clang_target_link_libraries(clang-repl PRIVATE clangInterpreter ) -export_executable_symbols_for_plugins(clang-repl) - # The clang-repl binary can get huge with static linking in debug mode. # Some 32-bit targets use PLT slots with limited branch range by default and we # start to exceed this limit, e.g. when linking for arm-linux-gnueabihf with diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt index 018605c2fd4f268..805dffb0d9b7064 100644 --- a/clang/tools/driver/CMakeLists.txt +++ b/clang/tools/driver/CMakeLists.txt @@ -21,6 +21,7 @@ set( LLVM_LINK_COMPONENTS # Support plugins. if(CLANG_PLUGIN_SUPPORT) set(support_plugins SUPPORT_PLUGINS) + set(export_symbols EXPORT_SYMBOLS_FOR_PLUGINS) endif() add_clang_tool(clang @@ -35,6 +36,7 @@ add_clang_tool(clang ARMTargetParserTableGen AArch64TargetParserTableGen ${support_plugins} + ${export_symbols} GENERATE_DRIVER ) @@ -54,11 +56,6 @@ else() set_target_properties(clang PROPERTIES VERSION ${CLANG_EXECUTABLE_VERSION}) endif() -# Support plugins. -if(CLANG_PLUGIN_SUPPORT) - export_executable_symbols_for_plugins(clang) -endif() - add_dependencies(clang clang-resource-headers) if(NOT CLANG_LINKS_TO_CREATE) diff --git a/clang/unittests/Interpreter/CMakeLists.txt b/clang/unittests/Interpreter/CMakeLists.txt index c0fd2d8f3777aaa..ec6f81ea19b960e 100644 --- a/clang/unittests/Interpreter/CMakeLists.txt +++ b/clang/unittests/Interpreter/CMakeLists.txt @@ -13,6 +13,8 @@ add_clang_unittest(ClangReplInterpreterTests InterpreterTest.cpp InterpreterExtensionsTest.cpp CodeCompletionTest.cpp + + EXPORT_SYMBOLS ) target_link_libraries(ClangReplInterpreterTests PUBLIC clangAST @@ -28,8 +30,6 @@ if(NOT WIN32) add_subdirectory(ExceptionTests) endif() -export_executable_symbols(ClangReplInterpreterTests) - if(MSVC) set_target_properties(ClangReplInterpreterTests PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1) diff --git a/clang/unittests/Interpreter/ExceptionTests/CMakeLists.txt b/clang/unittests/Interpreter/ExceptionTests/CMakeLists.txt index 5a6597d1b6728f9..24ae9cd78b5ca28 100644 --- a/clang/unittests/Interpreter/ExceptionTests/CMakeLists.txt +++ b/clang/unittests/Interpreter/ExceptionTests/CMakeLists.txt @@ -12,6 +12,8 @@ set(LLVM_LINK_COMPONENTS add_clang_unittest(ClangReplInterpreterExceptionTests InterpreterExceptionTest.cpp + + EXPORT_SYMBOLS ) llvm_update_compile_flags(ClangReplInterpreterExceptionTests) @@ -22,5 +24,3 @@ target_link_libraries(ClangReplInterpreterExceptionTests PUBLIC clangFrontend ) add_dependencies(ClangReplInterpreterExceptionTests clang-resource-headers) - -export_executable_symbols(ClangReplInterpreterExceptionTests) diff --git a/flang/tools/flang-driver/CMakeLists.txt b/flang/tools/flang-driver/CMakeLists.txt index 9f33cdfe3fa90f7..baa949600283517 100644 --- a/flang/tools/flang-driver/CMakeLists.txt +++ b/flang/tools/flang-driver/CMakeLists.txt @@ -11,9 +11,18 @@ set( LLVM_LINK_COMPONENTS TargetParser ) +option(FLANG_PLUGIN_SUPPORT "Build Flang with plugin support." ON) + +# Enable support for plugins, which need access to symbols from flang-new +if(FLANG_PLUGIN_SUPPORT) + set(export_symbols EXPORT_SYMBOLS_FOR_PLUGINS) +endif() + add_flang_tool(flang-new driver.cpp fc1_main.cpp + + ${export_symbols} ) target_link_libraries(flang-new @@ -28,11 +37,4 @@ clang_target_link_libraries(flang-new clangBasic ) -option(FLANG_PLUGIN_SUPPORT "Build Flang with plugin support." ON) - -# Enable support for plugins, which need access to symbols from flang-new -if(FLANG_PLUGIN_SUPPORT) - export_executable_symbols_for_plugins(flang-new) -endif() - install(TARGETS flang-new DESTINATION "${CMAKE_INSTALL_BINDIR}") diff --git a/lld/tools/lld/CMakeLists.txt b/lld/tools/lld/CMakeLists.txt index 8498a91597a930c..630d38f770a7fee 100644 --- a/lld/tools/lld/CMakeLists.txt +++ b/lld/tools/lld/CMakeLists.txt @@ -8,8 +8,8 @@ add_lld_tool(lld SUPPORT_PLUGINS GENERATE_DRIVER + EXPORT_SYMBOLS_FOR_PLUGINS ) -export_executable_symbols_for_plugins(lld) function(lld_target_link_libraries target type) if (TARGET obj.${target}) diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 699de1ccd870c84..51f99cb6962575a 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1197,7 +1197,7 @@ if( ${CMAKE_SYSTEM_NAME} MATCHES SunOS ) endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS ) # Make sure we don't get -rdynamic in every binary. For those that need it, -# use export_executable_symbols(target). +# use EXPORT_SYMBOLS argument. set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") include(AddLLVM) @@ -1238,7 +1238,7 @@ if( LLVM_INCLUDE_UTILS ) if( LLVM_INCLUDE_TESTS ) set(LLVM_SUBPROJECT_TITLE "Third-Party/Google Test") add_subdirectory(${LLVM_THIRD_PARTY_DIR}/unittest ${CMAKE_CURRENT_BINARY_DIR}/third-party/unittest) - set(LLVM_SUBPROJECT_TITLE) + set(LLVM_SUBPROJECT_TITLE) endif() else() if ( LLVM_INCLUDE_TESTS ) diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake index bb4e9963d091391..257dc2250bb4ef8 100644 --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1010,7 +1010,7 @@ endmacro() macro(add_llvm_executable name) cmake_parse_arguments(ARG - "DISABLE_LLVM_LINK_LLVM_DYLIB;IGNORE_EXTERNALIZE_DEBUGINFO;NO_INSTALL_RPATH;SUPPORT_PLUGINS" + "DISABLE_LLVM_LINK_LLVM_DYLIB;IGNORE_EXTERNALIZE_DEBUGINFO;NO_INSTALL_RPATH;SUPPORT_PLUGINS;EXPORT_SYMBOLS;EXPORT_SYMBOLS_FOR_PLUGINS" "ENTITLEMENTS;BUNDLE_PATH" "" ${ARGN}) @@ -1070,7 +1070,8 @@ macro(add_llvm_executable name) endif(LLVM_EXPORTED_SYMBOL_FILE) if (DEFINED LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND - NOT LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES) + NOT LLVM_ENABLE_EXPORTED_SYMBOLS_IN_EXECUTABLES AND + NOT ARG_EXPORT_SYMBOLS AND NOT ARG_EXPORT_SYMBOLS_FOR_PLUGINS) if(LLVM_LINKER_SUPPORTS_NO_EXPORTED_SYMBOLS) set_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,-no_exported_symbols") @@ -1080,6 +1081,12 @@ macro(add_llvm_executable name) endif() endif() + if (ARG_EXPORT_SYMBOLS) + export_executable_symbols(${name}) + elseif(ARG_EXPORT_SYMBOLS_FOR_PLUGINS) + export_executable_symbols_for_plugins(${name}) + endif() + if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB) set(USE_SHARED USE_SHARED) endif() @@ -1464,7 +1471,7 @@ macro(add_llvm_example name) if( NOT LLVM_BUILD_EXAMPLES ) set(EXCLUDE_FROM_ALL ON) endif() - add_llvm_executable(${name} ${ARGN}) + add_llvm_executable(${name} EXPORT_SYMBOLS ${ARGN}) if( LLVM_BUILD_EXAMPLES ) install(TARGETS ${name} RUNTIME DESTINATION "${LLVM_EXAMPLES_INSTALL_DIR}") endif() diff --git a/llvm/examples/ExceptionDemo/CMakeLists.txt b/llvm/examples/ExceptionDemo/CMakeLists.txt index 793cf291ca6f110..6c125fe20fb6fb3 100644 --- a/llvm/examples/ExceptionDemo/CMakeLists.txt +++ b/llvm/examples/ExceptionDemo/CMakeLists.txt @@ -16,6 +16,6 @@ endif() add_llvm_example(ExceptionDemo ExceptionDemo.cpp - ) -export_executable_symbols(ExceptionDemo) + EXPORT_SYMBOLS + ) diff --git a/llvm/examples/HowToUseLLJIT/CMakeLists.txt b/llvm/examples/HowToUseLLJIT/CMakeLists.txt index 3ca99e5598e7628..ca5e190c61338b1 100644 --- a/llvm/examples/HowToUseLLJIT/CMakeLists.txt +++ b/llvm/examples/HowToUseLLJIT/CMakeLists.txt @@ -7,6 +7,6 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(HowToUseLLJIT HowToUseLLJIT.cpp - ) -export_executable_symbols(HowToUseLLJIT) + EXPORT_SYMBOLS + ) diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/CMakeLists.txt b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/CMakeLists.txt index 72c9668f7d3af01..d4b7c3fed547dac 100644 --- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/CMakeLists.txt @@ -14,5 +14,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(BuildingAJIT-Ch1 toy.cpp ) - -export_executable_symbols(BuildingAJIT-Ch1) diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/CMakeLists.txt b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/CMakeLists.txt index ba6abd72d428274..9fd9e8860b2f9a7 100644 --- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/CMakeLists.txt @@ -14,5 +14,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(BuildingAJIT-Ch2 toy.cpp ) - -export_executable_symbols(BuildingAJIT-Ch2) diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/CMakeLists.txt b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/CMakeLists.txt index 51800a64b1e30c9..cf82552162e01cb 100644 --- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/CMakeLists.txt @@ -15,5 +15,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(BuildingAJIT-Ch3 toy.cpp ) - -export_executable_symbols(BuildingAJIT-Ch3) diff --git a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/CMakeLists.txt b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/CMakeLists.txt index 7cd40a1da60dc2c..241192fa01c93aa 100644 --- a/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/CMakeLists.txt @@ -15,5 +15,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(BuildingAJIT-Ch4 toy.cpp ) - -export_executable_symbols(BuildingAJIT-Ch4) diff --git a/llvm/examples/Kaleidoscope/CMakeLists.txt b/llvm/examples/Kaleidoscope/CMakeLists.txt index 6ad3b6156647209..3cc6733c7d30760 100644 --- a/llvm/examples/Kaleidoscope/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/CMakeLists.txt @@ -3,7 +3,7 @@ set_target_properties(Kaleidoscope PROPERTIES FOLDER "LLVM/Examples") macro(add_kaleidoscope_chapter name) add_dependencies(Kaleidoscope ${name}) - add_llvm_example(${name} ${ARGN}) + add_llvm_example(${name} EXPORT_SYMBOLS ${ARGN}) endmacro(add_kaleidoscope_chapter name) add_subdirectory(BuildingAJIT) diff --git a/llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt index 5281941fec874c2..dcb82ffad4b8dcc 100644 --- a/llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter4/CMakeLists.txt @@ -15,5 +15,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch4 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch4) diff --git a/llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt index 35fb1b7911b862e..9639f440d200c77 100644 --- a/llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter5/CMakeLists.txt @@ -15,5 +15,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch5 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch5) diff --git a/llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt index 627d682bdc57fb8..0baf3f483e1bab1 100644 --- a/llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter6/CMakeLists.txt @@ -15,5 +15,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch6 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch6) diff --git a/llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt index f4d8bd9e20c38a2..2167b4cf55e2c97 100644 --- a/llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter7/CMakeLists.txt @@ -16,5 +16,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch7 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch7) diff --git a/llvm/examples/Kaleidoscope/Chapter8/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter8/CMakeLists.txt index 1bb1cd25af72d83..29c02c9dbc720b1 100644 --- a/llvm/examples/Kaleidoscope/Chapter8/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter8/CMakeLists.txt @@ -5,5 +5,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch8 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch8) diff --git a/llvm/examples/Kaleidoscope/Chapter9/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter9/CMakeLists.txt index a5d1a45108872fd..d21ba342ebe5a83 100644 --- a/llvm/examples/Kaleidoscope/Chapter9/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter9/CMakeLists.txt @@ -11,5 +11,3 @@ set(LLVM_LINK_COMPONENTS add_kaleidoscope_chapter(Kaleidoscope-Ch9 toy.cpp ) - -export_executable_symbols(Kaleidoscope-Ch9) diff --git a/llvm/examples/OrcV2Examples/LLJITDumpObjects/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITDumpObjects/CMakeLists.txt index 42b9d1c4f9ae81f..3d83ee6864d3335 100644 --- a/llvm/examples/OrcV2Examples/LLJITDumpObjects/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITDumpObjects/CMakeLists.txt @@ -11,5 +11,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITDumpObjects LLJITDumpObjects.cpp ) - -export_executable_symbols(LLJITDumpObjects) diff --git a/llvm/examples/OrcV2Examples/LLJITRemovableCode/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITRemovableCode/CMakeLists.txt index 2c0036f625607da..3ab58c1c1f3088b 100644 --- a/llvm/examples/OrcV2Examples/LLJITRemovableCode/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITRemovableCode/CMakeLists.txt @@ -12,5 +12,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITRemovableCode LLJITRemovableCode.cpp ) - -export_executable_symbols(LLJITRemovableCode) diff --git a/llvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/CMakeLists.txt index 85e11ec1368e0c0..6034fc67911271d 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithCustomObjectLinkingLayer/CMakeLists.txt @@ -10,5 +10,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithCustomObjectLinkingLayer LLJITWithCustomObjectLinkingLayer.cpp ) - -export_executable_symbols(LLJITWithCustomObjectLinkingLayer) diff --git a/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt index 65a5b1bb3a404f5..47f50ca746440f5 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithExecutorProcessControl/CMakeLists.txt @@ -10,5 +10,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithExecutorProcessControl LLJITWithExecutorProcessControl.cpp ) - -export_executable_symbols(LLJITWithExecutorProcessControl) diff --git a/llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/CMakeLists.txt index 12fe6346ea4e796..61864201ddec6a6 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithGDBRegistrationListener/CMakeLists.txt @@ -12,7 +12,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithGDBRegistrationListener LLJITWithGDBRegistrationListener.cpp ) - -# We want JIT'd code to be able to link against process symbols like printf -# for this example, so make sure they're exported. -export_executable_symbols(LLJITWithGDBRegistrationListener) diff --git a/llvm/examples/OrcV2Examples/LLJITWithInitializers/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithInitializers/CMakeLists.txt index ed466f4e4065227..302647564ab81c4 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithInitializers/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithInitializers/CMakeLists.txt @@ -11,5 +11,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithInitializers LLJITWithInitializers.cpp ) - -export_executable_symbols(LLJITWithInitializers) diff --git a/llvm/examples/OrcV2Examples/LLJITWithLazyReexports/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithLazyReexports/CMakeLists.txt index 2ed22e161139c16..cdff74b10ad0360 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithLazyReexports/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithLazyReexports/CMakeLists.txt @@ -10,5 +10,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithLazyReexports LLJITWithLazyReexports.cpp ) - -export_executable_symbols(LLJITWithLazyReexports) diff --git a/llvm/examples/OrcV2Examples/LLJITWithObjectCache/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithObjectCache/CMakeLists.txt index a4eaaadf0152179..c5f8fd6a97a7f5b 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithObjectCache/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithObjectCache/CMakeLists.txt @@ -10,5 +10,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithObjectCache LLJITWithObjectCache.cpp ) - -export_executable_symbols(LLJITWithObjectCache) diff --git a/llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/CMakeLists.txt index 6177d4596e36916..54814621a5a5f0f 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithObjectLinkingLayerPlugin/CMakeLists.txt @@ -10,5 +10,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithObjectLinkingLayerPlugin LLJITWithObjectLinkingLayerPlugin.cpp ) - -export_executable_symbols(LLJITWithObjectLinkingLayerPlugin) diff --git a/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/CMakeLists.txt index b40e30911c4a91e..a9cd91ad596ad61 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/CMakeLists.txt @@ -12,5 +12,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithOptimizingIRTransform LLJITWithOptimizingIRTransform.cpp ) - -export_executable_symbols(LLJITWithOptimizingIRTransform) diff --git a/llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/CMakeLists.txt index 51b3925f4a9e790..6052622ba0d6eeb 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/CMakeLists.txt @@ -20,6 +20,4 @@ if (LLVM_INCLUDE_UTILS) DEPENDS llvm-jitlink-executor ) - - export_executable_symbols(LLJITWithRemoteDebugging) endif() diff --git a/llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/CMakeLists.txt b/llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/CMakeLists.txt index 148b1aaa108333e..5ce2fb498f334bf 100644 --- a/llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/LLJITWithThinLTOSummaries/CMakeLists.txt @@ -12,5 +12,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(LLJITWithThinLTOSummaries LLJITWithThinLTOSummaries.cpp ) - -export_executable_symbols(LLJITWithThinLTOSummaries) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/CMakeLists.txt index 376ee1d8af5d4d7..cc50112f326eac6 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsAddObjectFile/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsAddObjectFile OrcV2CBindingsAddObjectFile.c ) - -export_executable_symbols(OrcV2CBindingsAddObjectFile) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/CMakeLists.txt index 3e0ac3971dc45a9..0f18d6c24912ff9 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsBasicUsage/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsBasicUsage OrcV2CBindingsBasicUsage.c ) - -export_executable_symbols(OrcV2CBindingsBasicUsage) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/CMakeLists.txt index ad927d191a570cf..8e2c97d78206224 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsDumpObjects/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsDumpObjects OrcV2CBindingsDumpObjects.c ) - -export_executable_symbols(OrcV2CBindingsDumpObjects) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt index c90534c87954c20..af1b43e43e1117d 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsIRTransforms/CMakeLists.txt @@ -14,5 +14,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsIRTransforms OrcV2CBindingsIRTransforms.c ) - -export_executable_symbols(OrcV2CBindingsIRTransforms) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsLazy/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsLazy/CMakeLists.txt index 74238cbce8af3bb..52eb2d496fc23ea 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsLazy/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsLazy/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsLazy OrcV2CBindingsLazy.c ) - -export_executable_symbols(OrcV2CBindingsLazy) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/CMakeLists.txt index 65299ff871f1838..5b737557bb1ef07 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsRemovableCode/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsRemovableCode OrcV2CBindingsRemovableCode.c ) - -export_executable_symbols(OrcV2CBindingsRemovableCode) diff --git a/llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/CMakeLists.txt b/llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/CMakeLists.txt index 5d3e730e29e2506..0bc9610b1ad7eef 100644 --- a/llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/CMakeLists.txt +++ b/llvm/examples/OrcV2Examples/OrcV2CBindingsVeryLazy/CMakeLists.txt @@ -13,5 +13,3 @@ set(LLVM_LINK_COMPONENTS add_llvm_example(OrcV2CBindingsVeryLazy OrcV2CBindingsVeryLazy.c ) - -export_executable_symbols(OrcV2CBindingsVeryLazy) diff --git a/llvm/tools/bugpoint/CMakeLists.txt b/llvm/tools/bugpoint/CMakeLists.txt index b0e71910c7cc38f..f846aed24b75ebb 100644 --- a/llvm/tools/bugpoint/CMakeLists.txt +++ b/llvm/tools/bugpoint/CMakeLists.txt @@ -37,5 +37,5 @@ add_llvm_tool(bugpoint DEPENDS intrinsics_gen SUPPORT_PLUGINS + EXPORT_SYMBOLS_FOR_PLUGINS ) -export_executable_symbols_for_plugins(bugpoint) diff --git a/llvm/tools/llc/CMakeLists.txt b/llvm/tools/llc/CMakeLists.txt index 01825c6e4c64c77..c5407944dd2138c 100644 --- a/llvm/tools/llc/CMakeLists.txt +++ b/llvm/tools/llc/CMakeLists.txt @@ -30,6 +30,5 @@ add_llvm_tool(llc DEPENDS intrinsics_gen SUPPORT_PLUGINS + EXPORT_SYMBOLS_FOR_PLUGINS ) - -export_executable_symbols_for_plugins(llc) diff --git a/llvm/tools/lli/CMakeLists.txt b/llvm/tools/lli/CMakeLists.txt index e3fca225a22754b..3106f25ad79f867 100644 --- a/llvm/tools/lli/CMakeLists.txt +++ b/llvm/tools/lli/CMakeLists.txt @@ -56,6 +56,6 @@ add_llvm_tool(lli DEPENDS intrinsics_gen - ) -export_executable_symbols(lli) + EXPORT_SYMBOLS + ) diff --git a/llvm/tools/lli/ChildTarget/CMakeLists.txt b/llvm/tools/lli/ChildTarget/CMakeLists.txt index 5a81faa70f014b3..b3c1dd25ed75d5c 100644 --- a/llvm/tools/lli/ChildTarget/CMakeLists.txt +++ b/llvm/tools/lli/ChildTarget/CMakeLists.txt @@ -10,6 +10,6 @@ add_llvm_utility(lli-child-target DEPENDS intrinsics_gen -) -export_executable_symbols(lli-child-target) + EXPORT_SYMBOLS +) diff --git a/llvm/tools/llvm-jitlink/CMakeLists.txt b/llvm/tools/llvm-jitlink/CMakeLists.txt index 1487e7897f60014..e337fe5f9986561 100644 --- a/llvm/tools/llvm-jitlink/CMakeLists.txt +++ b/llvm/tools/llvm-jitlink/CMakeLists.txt @@ -26,6 +26,8 @@ add_llvm_tool(llvm-jitlink llvm-jitlink-elf.cpp llvm-jitlink-macho.cpp llvm-jitlink-statistics.cpp + + EXPORT_SYMBOLS ) if(${CMAKE_SYSTEM_NAME} MATCHES "Haiku") @@ -35,5 +37,3 @@ endif() if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS") target_link_libraries(llvm-jitlink PRIVATE socket) endif() - -export_executable_symbols(llvm-jitlink) diff --git a/llvm/tools/llvm-jitlink/llvm-jitlink-executor/CMakeLists.txt b/llvm/tools/llvm-jitlink/llvm-jitlink-executor/CMakeLists.txt index f6d882d1a8f06f7..f2daa294eec072d 100644 --- a/llvm/tools/llvm-jitlink/llvm-jitlink-executor/CMakeLists.txt +++ b/llvm/tools/llvm-jitlink/llvm-jitlink-executor/CMakeLists.txt @@ -9,6 +9,6 @@ add_llvm_utility(llvm-jitlink-executor DEPENDS intrinsics_gen -) -export_executable_symbols(llvm-jitlink-executor) + EXPORT_SYMBOLS +) diff --git a/llvm/tools/llvm-lto2/CMakeLists.txt b/llvm/tools/llvm-lto2/CMakeLists.txt index 3b4644d6e277150..335392fb8990a07 100644 --- a/llvm/tools/llvm-lto2/CMakeLists.txt +++ b/llvm/tools/llvm-lto2/CMakeLists.txt @@ -21,5 +21,6 @@ add_llvm_tool(llvm-lto2 DEPENDS intrinsics_gen + + EXPORT_SYMBOLS_FOR_PLUGINS ) -export_executable_symbols_for_plugins(llvm-lto2) diff --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt index 8d031b2cc57c786..c235fcf1ac9605b 100644 --- a/llvm/tools/opt/CMakeLists.txt +++ b/llvm/tools/opt/CMakeLists.txt @@ -45,8 +45,7 @@ add_llvm_tool(opt DEPENDS intrinsics_gen SUPPORT_PLUGINS + EXPORT_SYMBOLS_FOR_PLUGINS ) target_link_libraries(opt PRIVATE LLVMOptDriver) - -export_executable_symbols_for_plugins(opt) diff --git a/llvm/unittests/Analysis/CMakeLists.txt b/llvm/unittests/Analysis/CMakeLists.txt index 3cba630867a83b3..a1199adba076a7d 100644 --- a/llvm/unittests/Analysis/CMakeLists.txt +++ b/llvm/unittests/Analysis/CMakeLists.txt @@ -62,8 +62,14 @@ else() LIST(APPEND LLVM_OPTIONAL_SOURCES ${MLGO_TESTS}) endif() +# Export symbols from the plugins shared objects. +if(NOT WIN32) + set(export_symbols EXPORT_SYMBOLS_FOR_PLUGINS) +endif() + add_llvm_unittest_with_input_files(AnalysisTests ${ANALYSIS_TEST_SOURCES} + ${export_symbols} ) add_dependencies(AnalysisTests intrinsics_gen) @@ -76,10 +82,5 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-brtl") endif() -# Export symbols from the plugins shared objects. -if(NOT WIN32) - export_executable_symbols_for_plugins(AnalysisTests) -endif() - add_subdirectory(InlineAdvisorPlugin) add_subdirectory(InlineOrderPlugin) diff --git a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt index cc868e7587dc6ba..dc3380d35fda9df 100644 --- a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt +++ b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt @@ -43,10 +43,10 @@ add_llvm_unittest(OrcJITTests TaskDispatchTest.cpp ThreadSafeModuleTest.cpp WrapperFunctionUtilsTest.cpp + + EXPORT_SYMBOLS ) target_link_libraries(OrcJITTests PRIVATE LLVMTestingSupport ${ORC_JIT_TEST_LIBS}) - -export_executable_symbols(OrcJITTests) diff --git a/llvm/unittests/Passes/Plugins/CMakeLists.txt b/llvm/unittests/Passes/Plugins/CMakeLists.txt index e90cae167bc2223..55d7e715014f4b7 100644 --- a/llvm/unittests/Passes/Plugins/CMakeLists.txt +++ b/llvm/unittests/Passes/Plugins/CMakeLists.txt @@ -6,8 +6,9 @@ if (NOT WIN32 AND NOT CYGWIN) set(LLVM_LINK_COMPONENTS Support Passes Core AsmParser) add_llvm_unittest(PluginsTests PluginsTest.cpp + + EXPORT_SYMBOLS_FOR_PLUGINS ) - export_executable_symbols_for_plugins(PluginsTests) target_link_libraries(PluginsTests PRIVATE LLVMTestingSupport) unset(LLVM_LINK_COMPONENTS) diff --git a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt b/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt index 4574acd62906853..d8dff1ef4a3f77b 100644 --- a/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt +++ b/llvm/unittests/Support/DynamicLibrary/CMakeLists.txt @@ -17,9 +17,10 @@ set_output_directory(DynamicLibraryLib add_llvm_unittest(DynamicLibraryTests DynamicLibraryTest.cpp + + EXPORT_SYMBOLS ) target_link_libraries(DynamicLibraryTests PRIVATE DynamicLibraryLib) -export_executable_symbols(DynamicLibraryTests) function(dynlib_add_module NAME) add_library(${NAME} MODULE @@ -38,7 +39,7 @@ function(dynlib_add_module NAME) ) add_dependencies(DynamicLibraryTests ${NAME}) - + if(LLVM_INTEGRATED_CRT_ALLOC) # We need to link in the Support lib for the Memory allocator override, # otherwise the DynamicLibrary.Shutdown test will fail, because it would @@ -48,7 +49,7 @@ function(dynlib_add_module NAME) llvm_map_components_to_libnames(llvm_libs Support) target_link_libraries(${NAME} ${llvm_libs} "-INCLUDE:malloc") endif() - + endfunction(dynlib_add_module) # Revert -Wl,-z,nodelete on this test since it relies on the file diff --git a/mlir/tools/mlir-cpu-runner/CMakeLists.txt b/mlir/tools/mlir-cpu-runner/CMakeLists.txt index 1766b28aa0b113a..ae6dbceca855d12 100644 --- a/mlir/tools/mlir-cpu-runner/CMakeLists.txt +++ b/mlir/tools/mlir-cpu-runner/CMakeLists.txt @@ -7,6 +7,8 @@ set(LLVM_LINK_COMPONENTS add_mlir_tool(mlir-cpu-runner mlir-cpu-runner.cpp + + EXPORT_SYMBOLS ) llvm_update_compile_flags(mlir-cpu-runner) target_link_libraries(mlir-cpu-runner PRIVATE @@ -22,5 +24,3 @@ target_link_libraries(mlir-cpu-runner PRIVATE MLIRTargetLLVMIRExport MLIRSupport ) - -export_executable_symbols(mlir-cpu-runner) diff --git a/mlir/tools/mlir-opt/CMakeLists.txt b/mlir/tools/mlir-opt/CMakeLists.txt index 8b79de58fa1028b..1209c53d81bfb28 100644 --- a/mlir/tools/mlir-opt/CMakeLists.txt +++ b/mlir/tools/mlir-opt/CMakeLists.txt @@ -102,9 +102,9 @@ add_mlir_tool(mlir-opt DEPENDS ${LIBS} SUPPORT_PLUGINS + EXPORT_SYMBOLS_FOR_PLUGINS ) target_link_libraries(mlir-opt PRIVATE ${LIBS}) llvm_update_compile_flags(mlir-opt) mlir_check_all_link_libraries(mlir-opt) -export_executable_symbols_for_plugins(mlir-opt)