diff --git a/clang/lib/Support/CMakeLists.txt b/clang/lib/Support/CMakeLists.txt --- a/clang/lib/Support/CMakeLists.txt +++ b/clang/lib/Support/CMakeLists.txt @@ -9,8 +9,22 @@ Support ) -add_clang_library(clangSupport +set(clangSupport_sources RISCVVIntrinsicUtils.cpp ) +add_clang_library(clangSupport ${clangSupport_sources}) + +if (LLVM_LINK_LLVM_DYLIB) + # Build a version of the support library that does not link against + # libLLVM-*.so, to be used by clang-tblgen. This is so clang-tblgen doesn't + # accidentally link against libLLVMSupport twice (once statically and once via + # libLLVM-*.so). + llvm_add_library(clangSupport_tablegen + STATIC + DISABLE_LLVM_LINK_LLVM_DYLIB + ${clangSupport_sources}) +endif() + + set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS_OLD}) diff --git a/clang/utils/TableGen/CMakeLists.txt b/clang/utils/TableGen/CMakeLists.txt --- a/clang/utils/TableGen/CMakeLists.txt +++ b/clang/utils/TableGen/CMakeLists.txt @@ -25,6 +25,10 @@ TableGen.cpp ) -target_link_libraries(clang-tblgen PRIVATE clangSupport) +if(LLVM_LINK_LLVM_DYLIB) + target_link_libraries(clang-tblgen PRIVATE clangSupport_tablegen) +else() + target_link_libraries(clang-tblgen PRIVATE clangSupport) +endif() set_target_properties(clang-tblgen PROPERTIES FOLDER "Clang tablegenning")