commit:     60d43626dcce4238ca0227752fd94ee9a74d8901
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 19 16:07:38 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jun 19 18:10:19 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60d43626

sys-devel/clang: Fix bad dylib linking in 10.0.1*

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sys-devel/clang/clang-10.0.1.9999.ebuild           |   6 +
 sys-devel/clang/clang-10.0.1_rc1.ebuild            |   6 +
 ...-extra-Prevent-linking-to-duplicate-.a-li.patch | 788 +++++++++++++++++++++
 ...-linking-c-index-test-to-duplicate-librar.patch |  29 +
 4 files changed, 829 insertions(+)

diff --git a/sys-devel/clang/clang-10.0.1.9999.ebuild 
b/sys-devel/clang/clang-10.0.1.9999.ebuild
index 6f913045c09..874112003a9 100644
--- a/sys-devel/clang/clang-10.0.1.9999.ebuild
+++ b/sys-devel/clang/clang-10.0.1.9999.ebuild
@@ -71,6 +71,12 @@ CMAKE_BUILD_TYPE=RelWithDebInfo
 # Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
 # multilib clang* libraries (not runtime, not wrappers).
 
+PATCHES=(
+       # fix simultaneous linking to .a and dylib
+       
"${FILESDIR}"/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch
+       
"${FILESDIR}"/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch
+)
+
 pkg_setup() {
        LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
        python-single-r1_pkg_setup

diff --git a/sys-devel/clang/clang-10.0.1_rc1.ebuild 
b/sys-devel/clang/clang-10.0.1_rc1.ebuild
index 13d42251a43..e7e3d86f94f 100644
--- a/sys-devel/clang/clang-10.0.1_rc1.ebuild
+++ b/sys-devel/clang/clang-10.0.1_rc1.ebuild
@@ -71,6 +71,12 @@ CMAKE_BUILD_TYPE=RelWithDebInfo
 # Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
 # multilib clang* libraries (not runtime, not wrappers).
 
+PATCHES=(
+       # fix simultaneous linking to .a and dylib
+       
"${FILESDIR}"/10.0.1/0003-clang-tools-extra-Prevent-linking-to-duplicate-.a-li.patch
+       
"${FILESDIR}"/10.0.1/0004-clang-Avoid-linking-c-index-test-to-duplicate-librar.patch
+)
+
 pkg_setup() {
        LLVM_MAX_SLOT=${SLOT} llvm_pkg_setup
        python-single-r1_pkg_setup

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 00000000000..e2a70c6fb3b
--- /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?= <mgo...@gentoo.org>
+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 00000000000..61bec21d692
--- /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?= <mgo...@gentoo.org>
+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
+

Reply via email to