From 60d43626dcce4238ca0227752fd94ee9a74d8901 Mon Sep 17 00:00:00 2001 From: Michał Górny Date: Fri, 19 Jun 2020 18:07:38 +0200 Subject: sys-devel/clang: Fix bad dylib linking in 10.0.1* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Górny --- ...-extra-Prevent-linking-to-duplicate-.a-li.patch | 788 +++++++++++++++++++++ ...-linking-c-index-test-to-duplicate-librar.patch | 29 + 2 files changed, 817 insertions(+) create mode 100644 sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch create mode 100644 sys-devel/clang/files/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch (limited to 'sys-devel/clang/files') diff --git a/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch b/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch new file mode 100644 index 000000000000..e2a70c6fb3b8 --- /dev/null +++ b/sys-devel/clang/files/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch @@ -0,0 +1,788 @@ +From 248d706ca72666a203a24b84406be430ccf40558 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Tue, 16 Jun 2020 20:43:55 +0200 +Subject: [PATCH 3/4] [clang-tools-extra] Prevent linking to duplicate .a libs + and dylib + +Fix various tool libraries not to link to clang's .a libraries and dylib +simultaneously. This may cause breakage, in particular through +duplicate command-line option declarations. +--- + .../clang-apply-replacements/CMakeLists.txt | 4 +++- + .../clang-change-namespace/CMakeLists.txt | 4 +++- + tools/extra/clang-doc/CMakeLists.txt | 4 +++- + .../clang-include-fixer/CMakeLists.txt | 6 +++++- + .../find-all-symbols/CMakeLists.txt | 4 +++- + tools/extra/clang-move/CMakeLists.txt | 4 +++- + tools/extra/clang-query/CMakeLists.txt | 4 +++- + .../clang-reorder-fields/CMakeLists.txt | 4 +++- + tools/extra/clang-tidy/CMakeLists.txt | 7 +++++-- + tools/extra/clang-tidy/abseil/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/android/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/boost/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/bugprone/CMakeLists.txt | 10 +++++++--- + tools/extra/clang-tidy/cert/CMakeLists.txt | 12 ++++++++---- + .../clang-tidy/cppcoreguidelines/CMakeLists.txt | 14 +++++++++----- + tools/extra/clang-tidy/darwin/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/fuchsia/CMakeLists.txt | 10 +++++++--- + tools/extra/clang-tidy/google/CMakeLists.txt | 10 +++++++--- + tools/extra/clang-tidy/hicpp/CMakeLists.txt | 14 +++++++++----- + .../clang-tidy/linuxkernel/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/llvm/CMakeLists.txt | 10 +++++++--- + tools/extra/clang-tidy/misc/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/modernize/CMakeLists.txt | 10 +++++++--- + tools/extra/clang-tidy/mpi/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/objc/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/openmp/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/performance/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/plugin/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/portability/CMakeLists.txt | 8 ++++++-- + .../clang-tidy/readability/CMakeLists.txt | 8 ++++++-- + tools/extra/clang-tidy/utils/CMakeLists.txt | 6 +++++- + tools/extra/clang-tidy/zircon/CMakeLists.txt | 8 ++++++-- + tools/extra/clangd/CMakeLists.txt | 11 +++++++---- + tools/extra/clangd/unittests/CMakeLists.txt | 1 - + 34 files changed, 188 insertions(+), 73 deletions(-) + +diff --git a/tools/extra/clang-apply-replacements/CMakeLists.txt b/tools/extra/clang-apply-replacements/CMakeLists.txt +index 5bfdcb487e1..27383b488e4 100644 +--- a/tools/extra/clang-apply-replacements/CMakeLists.txt ++++ b/tools/extra/clang-apply-replacements/CMakeLists.txt +@@ -4,8 +4,10 @@ set(LLVM_LINK_COMPONENTS + + add_clang_library(clangApplyReplacements + lib/Tooling/ApplyReplacements.cpp ++) + +- LINK_LIBS ++clang_target_link_libraries(clangApplyReplacements ++ PRIVATE + clangAST + clangBasic + clangRewrite +diff --git a/tools/extra/clang-change-namespace/CMakeLists.txt b/tools/extra/clang-change-namespace/CMakeLists.txt +index 178306423eb..dccfd7c0673 100644 +--- a/tools/extra/clang-change-namespace/CMakeLists.txt ++++ b/tools/extra/clang-change-namespace/CMakeLists.txt +@@ -4,8 +4,10 @@ set(LLVM_LINK_COMPONENTS + + add_clang_library(clangChangeNamespace + ChangeNamespace.cpp ++) + +- LINK_LIBS ++clang_target_link_libraries(clangChangeNamespace ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +diff --git a/tools/extra/clang-doc/CMakeLists.txt b/tools/extra/clang-doc/CMakeLists.txt +index c301ad5afac..6f303a67c9a 100644 +--- a/tools/extra/clang-doc/CMakeLists.txt ++++ b/tools/extra/clang-doc/CMakeLists.txt +@@ -14,8 +14,10 @@ add_clang_library(clangDoc + Representation.cpp + Serialize.cpp + YAMLGenerator.cpp ++) + +- LINK_LIBS ++clang_target_link_libraries(clangDoc ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers +diff --git a/tools/extra/clang-include-fixer/CMakeLists.txt b/tools/extra/clang-include-fixer/CMakeLists.txt +index f27f7403ea6..d8685cb2075 100644 +--- a/tools/extra/clang-include-fixer/CMakeLists.txt ++++ b/tools/extra/clang-include-fixer/CMakeLists.txt +@@ -11,6 +11,11 @@ add_clang_library(clangIncludeFixer + YamlSymbolIndex.cpp + + LINK_LIBS ++ findAllSymbols ++ ) ++ ++clang_target_link_libraries(clangIncludeFixer ++ PRIVATE + clangAST + clangBasic + clangFormat +@@ -21,7 +26,6 @@ add_clang_library(clangIncludeFixer + clangSerialization + clangTooling + clangToolingCore +- findAllSymbols + ) + + add_subdirectory(plugin) +diff --git a/tools/extra/clang-include-fixer/find-all-symbols/CMakeLists.txt b/tools/extra/clang-include-fixer/find-all-symbols/CMakeLists.txt +index c5fe19bfdbd..06a2324e918 100644 +--- a/tools/extra/clang-include-fixer/find-all-symbols/CMakeLists.txt ++++ b/tools/extra/clang-include-fixer/find-all-symbols/CMakeLists.txt +@@ -11,8 +11,10 @@ add_clang_library(findAllSymbols + PragmaCommentHandler.cpp + STLPostfixHeaderMap.cpp + SymbolInfo.cpp ++ ) + +- LINK_LIBS ++clang_target_link_libraries(findAllSymbols ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +diff --git a/tools/extra/clang-move/CMakeLists.txt b/tools/extra/clang-move/CMakeLists.txt +index c63127ea325..9ea409932da 100644 +--- a/tools/extra/clang-move/CMakeLists.txt ++++ b/tools/extra/clang-move/CMakeLists.txt +@@ -5,8 +5,10 @@ set(LLVM_LINK_COMPONENTS + add_clang_library(clangMove + Move.cpp + HelperDeclRefGraph.cpp ++ ) + +- LINK_LIBS ++clang_target_link_libraries(clangMove ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers +diff --git a/tools/extra/clang-query/CMakeLists.txt b/tools/extra/clang-query/CMakeLists.txt +index d1d68d502e3..bc76bae9c0e 100644 +--- a/tools/extra/clang-query/CMakeLists.txt ++++ b/tools/extra/clang-query/CMakeLists.txt +@@ -6,8 +6,10 @@ set(LLVM_LINK_COMPONENTS + add_clang_library(clangQuery + Query.cpp + QueryParser.cpp ++ ) + +- LINK_LIBS ++clang_target_link_libraries(clangQuery ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +diff --git a/tools/extra/clang-reorder-fields/CMakeLists.txt b/tools/extra/clang-reorder-fields/CMakeLists.txt +index 9c75d785cc9..e555fd5cdf0 100644 +--- a/tools/extra/clang-reorder-fields/CMakeLists.txt ++++ b/tools/extra/clang-reorder-fields/CMakeLists.txt +@@ -2,8 +2,10 @@ set(LLVM_LINK_COMPONENTS support) + + add_clang_library(clangReorderFields + ReorderFieldsAction.cpp ++) + +- LINK_LIBS ++clang_target_link_libraries(clangReorderFields ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +diff --git a/tools/extra/clang-tidy/CMakeLists.txt b/tools/extra/clang-tidy/CMakeLists.txt +index 6dadb271771..329df19f331 100644 +--- a/tools/extra/clang-tidy/CMakeLists.txt ++++ b/tools/extra/clang-tidy/CMakeLists.txt +@@ -14,8 +14,10 @@ add_clang_library(clangTidy + + DEPENDS + ClangSACheckers ++ ) + +- LINK_LIBS ++clang_target_link_libraries(clangTidy ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers +@@ -31,7 +33,8 @@ add_clang_library(clangTidy + ) + + if(CLANG_ENABLE_STATIC_ANALYZER) +- target_link_libraries(clangTidy PRIVATE ++ clang_target_link_libraries(clangTidy ++ PRIVATE + clangStaticAnalyzerCore + clangStaticAnalyzerFrontend + ) +diff --git a/tools/extra/clang-tidy/abseil/CMakeLists.txt b/tools/extra/clang-tidy/abseil/CMakeLists.txt +index 3f88da6233f..0f040e56a05 100644 +--- a/tools/extra/clang-tidy/abseil/CMakeLists.txt ++++ b/tools/extra/clang-tidy/abseil/CMakeLists.txt +@@ -22,11 +22,15 @@ add_clang_library(clangTidyAbseilModule + UpgradeDurationConversionsCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyAbseilModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/android/CMakeLists.txt b/tools/extra/clang-tidy/android/CMakeLists.txt +index 9d04003d9bb..d29adc610c8 100644 +--- a/tools/extra/clang-tidy/android/CMakeLists.txt ++++ b/tools/extra/clang-tidy/android/CMakeLists.txt +@@ -20,10 +20,14 @@ add_clang_library(clangTidyAndroidModule + ComparisonInTempFailureRetryCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyAndroidModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/boost/CMakeLists.txt b/tools/extra/clang-tidy/boost/CMakeLists.txt +index 059f6e91eca..481a709600c 100644 +--- a/tools/extra/clang-tidy/boost/CMakeLists.txt ++++ b/tools/extra/clang-tidy/boost/CMakeLists.txt +@@ -5,10 +5,14 @@ add_clang_library(clangTidyBoostModule + UseToStringCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyBoostModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/bugprone/CMakeLists.txt b/tools/extra/clang-tidy/bugprone/CMakeLists.txt +index 2cb28f4e8f1..d664f5eb875 100644 +--- a/tools/extra/clang-tidy/bugprone/CMakeLists.txt ++++ b/tools/extra/clang-tidy/bugprone/CMakeLists.txt +@@ -52,13 +52,17 @@ add_clang_library(clangTidyBugproneModule + VirtualNearMissCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyCppCoreGuidelinesModule ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyBugproneModule ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyCppCoreGuidelinesModule +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/cert/CMakeLists.txt b/tools/extra/clang-tidy/cert/CMakeLists.txt +index 66ea2a13acd..75a13349f2f 100644 +--- a/tools/extra/clang-tidy/cert/CMakeLists.txt ++++ b/tools/extra/clang-tidy/cert/CMakeLists.txt +@@ -17,10 +17,6 @@ add_clang_library(clangTidyCERTModule + VariadicFunctionDefCheck.cpp + + LINK_LIBS +- clangAST +- clangASTMatchers +- clangBasic +- clangLex + clangTidy + clangTidyBugproneModule + clangTidyGoogleModule +@@ -29,3 +25,11 @@ add_clang_library(clangTidyCERTModule + clangTidyReadabilityModule + clangTidyUtils + ) ++ ++clang_target_link_libraries(clangTidyCERTModule ++ PRIVATE ++ clangAST ++ clangASTMatchers ++ clangBasic ++ clangLex ++ ) +diff --git a/tools/extra/clang-tidy/cppcoreguidelines/CMakeLists.txt b/tools/extra/clang-tidy/cppcoreguidelines/CMakeLists.txt +index 13c15bc9d22..e48bc1c8b1a 100644 +--- a/tools/extra/clang-tidy/cppcoreguidelines/CMakeLists.txt ++++ b/tools/extra/clang-tidy/cppcoreguidelines/CMakeLists.txt +@@ -23,15 +23,19 @@ add_clang_library(clangTidyCppCoreGuidelinesModule + SpecialMemberFunctionsCheck.cpp + + LINK_LIBS +- clangAST +- clangASTMatchers +- clangBasic +- clangLex +- clangSerialization + clangTidy + clangTidyMiscModule + clangTidyModernizeModule + clangTidyReadabilityModule + clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyCppCoreGuidelinesModule ++ PRIVATE ++ clangAST ++ clangASTMatchers ++ clangBasic ++ clangLex ++ clangSerialization + clangTooling + ) +diff --git a/tools/extra/clang-tidy/darwin/CMakeLists.txt b/tools/extra/clang-tidy/darwin/CMakeLists.txt +index c650efb2a5f..feec79c12bf 100644 +--- a/tools/extra/clang-tidy/darwin/CMakeLists.txt ++++ b/tools/extra/clang-tidy/darwin/CMakeLists.txt +@@ -6,11 +6,15 @@ add_clang_library(clangTidyDarwinModule + DispatchOnceNonstaticCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyDarwinModule ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/fuchsia/CMakeLists.txt b/tools/extra/clang-tidy/fuchsia/CMakeLists.txt +index 30b319e7e5a..0148b20f364 100644 +--- a/tools/extra/clang-tidy/fuchsia/CMakeLists.txt ++++ b/tools/extra/clang-tidy/fuchsia/CMakeLists.txt +@@ -12,11 +12,15 @@ add_clang_library(clangTidyFuchsiaModule + VirtualInheritanceCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyGoogleModule ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyFuchsiaModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyGoogleModule +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/google/CMakeLists.txt b/tools/extra/clang-tidy/google/CMakeLists.txt +index 08368932da5..302561ba646 100644 +--- a/tools/extra/clang-tidy/google/CMakeLists.txt ++++ b/tools/extra/clang-tidy/google/CMakeLists.txt +@@ -21,11 +21,15 @@ add_clang_library(clangTidyGoogleModule + UsingNamespaceDirectiveCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyReadabilityModule ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyGoogleModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyReadabilityModule +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/hicpp/CMakeLists.txt b/tools/extra/clang-tidy/hicpp/CMakeLists.txt +index 4cf26767f3d..b4c9eb7a445 100644 +--- a/tools/extra/clang-tidy/hicpp/CMakeLists.txt ++++ b/tools/extra/clang-tidy/hicpp/CMakeLists.txt +@@ -8,11 +8,6 @@ add_clang_library(clangTidyHICPPModule + SignedBitwiseCheck.cpp + + LINK_LIBS +- clangAST +- clangASTMatchers +- clangBasic +- clangLex +- clangSerialization + clangTidy + clangTidyBugproneModule + clangTidyCppCoreGuidelinesModule +@@ -23,3 +18,12 @@ add_clang_library(clangTidyHICPPModule + clangTidyReadabilityModule + clangTidyUtils + ) ++ ++clang_target_link_libraries(clangTidyHICPPModule ++ PRIVATE ++ clangAST ++ clangASTMatchers ++ clangBasic ++ clangLex ++ clangSerialization ++ ) +diff --git a/tools/extra/clang-tidy/linuxkernel/CMakeLists.txt b/tools/extra/clang-tidy/linuxkernel/CMakeLists.txt +index f0e766d30e4..bfcc2ba526d 100644 +--- a/tools/extra/clang-tidy/linuxkernel/CMakeLists.txt ++++ b/tools/extra/clang-tidy/linuxkernel/CMakeLists.txt +@@ -5,10 +5,14 @@ add_clang_library(clangTidyLinuxKernelModule + MustCheckErrsCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyLinuxKernelModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/llvm/CMakeLists.txt b/tools/extra/clang-tidy/llvm/CMakeLists.txt +index c035596b556..bff128cbba7 100644 +--- a/tools/extra/clang-tidy/llvm/CMakeLists.txt ++++ b/tools/extra/clang-tidy/llvm/CMakeLists.txt +@@ -9,12 +9,16 @@ add_clang_library(clangTidyLLVMModule + TwineLocalCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyReadabilityModule ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyLLVMModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyReadabilityModule +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/misc/CMakeLists.txt b/tools/extra/clang-tidy/misc/CMakeLists.txt +index 3fc152148d6..37bc2aa5af6 100644 +--- a/tools/extra/clang-tidy/misc/CMakeLists.txt ++++ b/tools/extra/clang-tidy/misc/CMakeLists.txt +@@ -17,13 +17,17 @@ add_clang_library(clangTidyMiscModule + UnusedUsingDeclsCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyMiscModule ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers + clangBasic + clangLex + clangSerialization +- clangTidy +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/modernize/CMakeLists.txt b/tools/extra/clang-tidy/modernize/CMakeLists.txt +index 36193f0a6d1..162f44568c5 100644 +--- a/tools/extra/clang-tidy/modernize/CMakeLists.txt ++++ b/tools/extra/clang-tidy/modernize/CMakeLists.txt +@@ -36,12 +36,16 @@ add_clang_library(clangTidyModernizeModule + UseUsingCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyReadabilityModule ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyModernizeModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyReadabilityModule +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/mpi/CMakeLists.txt b/tools/extra/clang-tidy/mpi/CMakeLists.txt +index 5be7b36550a..b36767ac7f3 100644 +--- a/tools/extra/clang-tidy/mpi/CMakeLists.txt ++++ b/tools/extra/clang-tidy/mpi/CMakeLists.txt +@@ -6,13 +6,17 @@ add_clang_library(clangTidyMPIModule + TypeMismatchCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyMPIModule ++ PRIVATE + clangAnalysis + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + clangTooling + clangStaticAnalyzerCheckers + ) +diff --git a/tools/extra/clang-tidy/objc/CMakeLists.txt b/tools/extra/clang-tidy/objc/CMakeLists.txt +index 68dda6530f7..3624d2f3ef0 100644 +--- a/tools/extra/clang-tidy/objc/CMakeLists.txt ++++ b/tools/extra/clang-tidy/objc/CMakeLists.txt +@@ -9,10 +9,14 @@ add_clang_library(clangTidyObjCModule + SuperSelfCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyObjCModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/openmp/CMakeLists.txt b/tools/extra/clang-tidy/openmp/CMakeLists.txt +index af95704fd44..d182b29f366 100644 +--- a/tools/extra/clang-tidy/openmp/CMakeLists.txt ++++ b/tools/extra/clang-tidy/openmp/CMakeLists.txt +@@ -8,9 +8,13 @@ add_clang_library(clangTidyOpenMPModule + UseDefaultNoneCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyOpenMPModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/performance/CMakeLists.txt b/tools/extra/clang-tidy/performance/CMakeLists.txt +index d1f9897b015..c9a7e262124 100644 +--- a/tools/extra/clang-tidy/performance/CMakeLists.txt ++++ b/tools/extra/clang-tidy/performance/CMakeLists.txt +@@ -18,11 +18,15 @@ add_clang_library(clangTidyPerformanceModule + UnnecessaryValueParamCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyPerformanceModule ++ PRIVATE + clangAST + clangASTMatchers + clangAnalysis + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clang-tidy/plugin/CMakeLists.txt b/tools/extra/clang-tidy/plugin/CMakeLists.txt +index 4adc3f26977..0bfe122314e 100644 +--- a/tools/extra/clang-tidy/plugin/CMakeLists.txt ++++ b/tools/extra/clang-tidy/plugin/CMakeLists.txt +@@ -2,12 +2,16 @@ add_clang_library(clangTidyPlugin + ClangTidyPlugin.cpp + + LINK_LIBS ++ clangTidy ++ ${ALL_CLANG_TIDY_CHECKS} ++ ) ++ ++clang_target_link_libraries(clangTidyPlugin ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangFrontend + clangSema +- clangTidy + clangTooling +- ${ALL_CLANG_TIDY_CHECKS} + ) +diff --git a/tools/extra/clang-tidy/portability/CMakeLists.txt b/tools/extra/clang-tidy/portability/CMakeLists.txt +index 0420a18a2a6..bbe9ccbef1f 100644 +--- a/tools/extra/clang-tidy/portability/CMakeLists.txt ++++ b/tools/extra/clang-tidy/portability/CMakeLists.txt +@@ -5,11 +5,15 @@ add_clang_library(clangTidyPortabilityModule + SIMDIntrinsicsCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyPortabilityModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/readability/CMakeLists.txt b/tools/extra/clang-tidy/readability/CMakeLists.txt +index 97144af06ca..5af900db5fd 100644 +--- a/tools/extra/clang-tidy/readability/CMakeLists.txt ++++ b/tools/extra/clang-tidy/readability/CMakeLists.txt +@@ -41,11 +41,15 @@ add_clang_library(clangTidyReadabilityModule + UppercaseLiteralSuffixCheck.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyReadabilityModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + clangTooling + ) +diff --git a/tools/extra/clang-tidy/utils/CMakeLists.txt b/tools/extra/clang-tidy/utils/CMakeLists.txt +index fc383a318b9..5c837ca79aa 100644 +--- a/tools/extra/clang-tidy/utils/CMakeLists.txt ++++ b/tools/extra/clang-tidy/utils/CMakeLists.txt +@@ -18,11 +18,15 @@ add_clang_library(clangTidyUtils + UsingInserter.cpp + + LINK_LIBS ++ clangTidy ++ ) ++ ++clang_target_link_libraries(clangTidyUtils ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex + clangSema +- clangTidy + clangTransformer + ) +diff --git a/tools/extra/clang-tidy/zircon/CMakeLists.txt b/tools/extra/clang-tidy/zircon/CMakeLists.txt +index 7aa7cd3f669..71db5e90f25 100644 +--- a/tools/extra/clang-tidy/zircon/CMakeLists.txt ++++ b/tools/extra/clang-tidy/zircon/CMakeLists.txt +@@ -5,10 +5,14 @@ add_clang_library(clangTidyZirconModule + ZirconTidyModule.cpp + + LINK_LIBS ++ clangTidy ++ clangTidyUtils ++ ) ++ ++clang_target_link_libraries(clangTidyZirconModule ++ PRIVATE + clangAST + clangASTMatchers + clangBasic + clangLex +- clangTidy +- clangTidyUtils + ) +diff --git a/tools/extra/clangd/CMakeLists.txt b/tools/extra/clangd/CMakeLists.txt +index e3eccb50a49..148043ee9df 100644 +--- a/tools/extra/clangd/CMakeLists.txt ++++ b/tools/extra/clangd/CMakeLists.txt +@@ -110,6 +110,13 @@ add_clang_library(clangDaemon + refactor/Tweak.cpp + + LINK_LIBS ++ clangTidy ++ ${LLVM_PTHREAD_LIB} ++ ${ALL_CLANG_TIDY_CHECKS} ++ ) ++ ++clang_target_link_libraries(clangDaemon ++ PRIVATE + clangAST + clangASTMatchers + clangBasic +@@ -120,15 +127,11 @@ add_clang_library(clangDaemon + clangLex + clangSema + clangSerialization +- clangTidy + clangTooling + clangToolingCore + clangToolingInclusions + clangToolingRefactoring + clangToolingSyntax +- ${LLVM_PTHREAD_LIB} +- ${CLANGD_ATOMIC_LIB} +- ${ALL_CLANG_TIDY_CHECKS} + ) + + add_subdirectory(refactor/tweaks) +diff --git a/tools/extra/clangd/unittests/CMakeLists.txt b/tools/extra/clangd/unittests/CMakeLists.txt +index 62113c6e4bb..6c2b56c93d5 100644 +--- a/tools/extra/clangd/unittests/CMakeLists.txt ++++ b/tools/extra/clangd/unittests/CMakeLists.txt +@@ -103,7 +103,6 @@ target_link_libraries(ClangdTests + PRIVATE + clangDaemon + clangTidy +- LLVMSupport + LLVMTestingSupport + ) + +-- +2.27.0 + diff --git a/sys-devel/clang/files/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch b/sys-devel/clang/files/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch new file mode 100644 index 000000000000..61bec21d6925 --- /dev/null +++ b/sys-devel/clang/files/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch @@ -0,0 +1,29 @@ +From e0df57328dd084d38ea4aac0cfb129fc320eae3f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= +Date: Fri, 19 Jun 2020 17:00:12 +0200 +Subject: [PATCH 4/4] [clang] Avoid linking c-index-test to duplicate libraries + +Use clang_target_link_libraries() to link libraries included +in clang-cpp.so to avoid simultaneously linking to it and to split +static libraries. This prevents units from being included twice. +--- + tools/c-index-test/CMakeLists.txt | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/tools/c-index-test/CMakeLists.txt b/tools/c-index-test/CMakeLists.txt +index ceef4b08637..d83d1091936 100644 +--- a/tools/c-index-test/CMakeLists.txt ++++ b/tools/c-index-test/CMakeLists.txt +@@ -25,6 +25,9 @@ else() + target_link_libraries(c-index-test + PRIVATE + libclang ++ ) ++ clang_target_link_libraries(c-index-test ++ PRIVATE + clangAST + clangBasic + clangCodeGen +-- +2.27.0 + -- cgit v1.2.3-18-g5258