diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt --- a/clang/tools/driver/CMakeLists.txt +++ b/clang/tools/driver/CMakeLists.txt @@ -19,10 +19,9 @@ option(CLANG_PLUGIN_SUPPORT "Build clang with plugin support" ON) -# Support plugins. This must be before add_clang_executable as it reads -# LLVM_NO_DEAD_STRIP. +# Support plugins. if(CLANG_PLUGIN_SUPPORT) - set(LLVM_NO_DEAD_STRIP 1) + set(support_plugins SUPPORT_PLUGINS) endif() if(NOT CLANG_BUILT_STANDALONE) @@ -37,6 +36,7 @@ DEPENDS ${tablegen_deps} + ${support_plugins} ) clang_target_link_libraries(clang diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -732,7 +732,7 @@ macro(add_llvm_executable name) cmake_parse_arguments(ARG - "DISABLE_LLVM_LINK_LLVM_DYLIB;IGNORE_EXTERNALIZE_DEBUGINFO;NO_INSTALL_RPATH" + "DISABLE_LLVM_LINK_LLVM_DYLIB;IGNORE_EXTERNALIZE_DEBUGINFO;NO_INSTALL_RPATH;SUPPORT_PLUGINS" "ENTITLEMENTS;BUNDLE_PATH" "DEPENDS" ${ARGN}) @@ -782,6 +782,11 @@ if(NOT LLVM_ENABLE_OBJLIB) llvm_update_compile_flags(${name}) endif() + + if (ARG_SUPPORT_PLUGINS) + set(LLVM_NO_DEAD_STRIP On) + endif() + add_link_opts( ${name} ) # Do not add -Dname_EXPORTS to the command-line when building files in this diff --git a/llvm/tools/bugpoint/CMakeLists.txt b/llvm/tools/bugpoint/CMakeLists.txt --- a/llvm/tools/bugpoint/CMakeLists.txt +++ b/llvm/tools/bugpoint/CMakeLists.txt @@ -21,9 +21,6 @@ Vectorize ) -# Support plugins. -set(LLVM_NO_DEAD_STRIP 1) - add_llvm_tool(bugpoint BugDriver.cpp CrashDebugger.cpp @@ -37,6 +34,7 @@ DEPENDS intrinsics_gen + SUPPORT_PLUGINS ) export_executable_symbols(bugpoint) diff --git a/llvm/tools/llc/CMakeLists.txt b/llvm/tools/llc/CMakeLists.txt --- a/llvm/tools/llc/CMakeLists.txt +++ b/llvm/tools/llc/CMakeLists.txt @@ -19,13 +19,11 @@ Vectorize ) -# Support plugins. -set(LLVM_NO_DEAD_STRIP 1) - add_llvm_tool(llc llc.cpp DEPENDS intrinsics_gen + SUPPORT_PLUGINS ) export_executable_symbols(llc) diff --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt --- a/llvm/tools/opt/CMakeLists.txt +++ b/llvm/tools/opt/CMakeLists.txt @@ -24,9 +24,6 @@ Passes ) -# Support plugins. -set(LLVM_NO_DEAD_STRIP 1) - add_llvm_tool(opt AnalysisWrappers.cpp BreakpointPrinter.cpp @@ -39,6 +36,7 @@ DEPENDS intrinsics_gen + SUPPORT_PLUGINS ) export_executable_symbols(opt)