tambry wrote:

This causes a build failure for me:
```
: && /usr/bin/c++ -g -O3 -ffile-prefix-map=/home/tambre/dev/llvm=. -flto=auto 
-ffat-lto-objects -Wformat -Werror=format-security -DNDEBUG -Wdate-time 
-stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden 
-Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra 
-Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers 
-pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough 
-Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor 
-Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion 
-Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color 
-ffunction-sections -fdata-sections -flto=thin -fno-common -Woverloaded-virtual 
-Wno-nested-anon-types -O2 -g -DNDEBUG -flto=auto -ffat-lto-objects 
-Wl,-z,relro -stdlib=libc++ -fuse-ld=lld -Wl,--color-diagnostics -flto=thin 
-Wl,--thinlto-cache-dir=/home/tambre/dev/llvm/build/lto.cache 
-Wl,--export-dynamic  -Xlinker 
--dependency-file=tools/clang/tools/extra/clang-tidy/tool/CMakeFiles/clang-tidy.dir/link.d
 
tools/clang/tools/extra/clang-tidy/tool/CMakeFiles/clang-tidy.dir/ClangTidyToolMain.cpp.o
 -o bin/clang-tidy  
-Wl,-rpath,"\$ORIGIN/../lib:\$ORIGIN/../lib/x86_64-linux-gnu:"  
lib/x86_64-linux-gnu/libclangTidy.a  lib/x86_64-linux-gnu/libclangTidyMain.a  
lib/x86_64-linux-gnu/libclangTidyAndroidModule.a  
lib/x86_64-linux-gnu/libclangTidyAbseilModule.a  
lib/x86_64-linux-gnu/libclangTidyAlteraModule.a  
lib/x86_64-linux-gnu/libclangTidyBoostModule.a  
lib/x86_64-linux-gnu/libclangTidyBugproneModule.a  
lib/x86_64-linux-gnu/libclangTidyCERTModule.a  
lib/x86_64-linux-gnu/libclangTidyConcurrencyModule.a  
lib/x86_64-linux-gnu/libclangTidyCppCoreGuidelinesModule.a  
lib/x86_64-linux-gnu/libclangTidyDarwinModule.a  
lib/x86_64-linux-gnu/libclangTidyFuchsiaModule.a  
lib/x86_64-linux-gnu/libclangTidyGoogleModule.a  
lib/x86_64-linux-gnu/libclangTidyHICPPModule.a  
lib/x86_64-linux-gnu/libclangTidyLinuxKernelModule.a  
lib/x86_64-linux-gnu/libclangTidyLLVMModule.a  
lib/x86_64-linux-gnu/libclangTidyLLVMLibcModule.a  
lib/x86_64-linux-gnu/libclangTidyMiscModule.a  
lib/x86_64-linux-gnu/libclangTidyModernizeModule.a  
lib/x86_64-linux-gnu/libclangTidyObjCModule.a  
lib/x86_64-linux-gnu/libclangTidyOpenMPModule.a  
lib/x86_64-linux-gnu/libclangTidyPerformanceModule.a  
lib/x86_64-linux-gnu/libclangTidyPortabilityModule.a  
lib/x86_64-linux-gnu/libclangTidyReadabilityModule.a  
lib/x86_64-linux-gnu/libclangTidyZirconModule.a  
lib/x86_64-linux-gnu/libclangTidyCustomModule.a  
lib/x86_64-linux-gnu/libclangTidyMPIModule.a  
lib/x86_64-linux-gnu/libclangIncludeCleaner.a  
lib/x86_64-linux-gnu/libclangTidyUtils.a  
lib/x86_64-linux-gnu/libclang-cpp.so.22.0  lib/x86_64-linux-gnu/libLLVM.so.22.0 
&& :
ld.lld: error: undefined symbol: 
clang::query::QueryParser::parse(llvm::StringRef, clang::query::QuerySession 
const&)
>>> referenced by QueryCheck.cpp:36 
>>> (./build/./clang-tools-extra/clang-tidy/custom/QueryCheck.cpp:36)
>>>               
>>> lib/x86_64-linux-gnu/clang-tidy.lto.libclangTidyCustomModule.a(QueryCheck.cpp.o
>>>  at 
>>> 2766304).o:(clang::tidy::custom::QueryCheck::QueryCheck(llvm::StringRef, 
>>> clang::tidy::ClangTidyOptions::CustomCheckValue const&, 
>>> clang::tidy::ClangTidyContext*))
c++: error: linker command failed with exit code 1 (use -v to see invocation)
```
I was able to fix this by moving `clangQuery` from 
`clang_target_link_libraries()` to `add_clang_library(clangTidyCustomModule)`. 
I imagine this is caused by `LLVM_LINK_LLVM_DYLIB=ON`. Reading the code it 
isn't immediately obvious to me what's the intended difference between the two 
ways of linking or why the latter doesn't work. The latter links `clang-cpp` 
but it seems `clangQuery` should be part of that anyway? Or maybe because 
`clang-shlib` is created _before_ 
`add_llvm_external_project(clang-tools-extra)`?

https://github.com/llvm/llvm-project/pull/159547
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to