[PATCH] D91859: [clangd] Fix shared-lib builds
Kirill Bobyrev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Nov 22 10:18:01 PST 2020
kbobyrev added a comment.
In D91859#2410166 <https://reviews.llvm.org/D91859#2410166>, @kadircet wrote:
> In D91859#2409743 <https://reviews.llvm.org/D91859#2409743>, @nridge wrote:
>
>> I applied the patch locally and it fixes most of the linker errors but I'm still seeing one:
>>
>> [6/393] Linking CXX executable bin/clangd-index-server
>> FAILED: bin/clangd-index-server
>> : && /usr/bin/clang++-10 -fPIC -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 -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG -fuse-ld=gold -Wl,-O3 -Wl,--gc-sections tools/clang/tools/extra/clangd/index/remote/server/CMakeFiles/clangd-index-server.dir/Server.cpp.o -o bin/clangd-index-server -Wl,-rpath,"\$ORIGIN/../lib" -lpthread lib/libRemoteIndexServiceProto.so.12git lib/libclangdRemoteMarshalling.so.12git -lgrpc++ lib/libclangDaemon.so.12git lib/libclangdSupport.so.12git lib/libRemoteIndexProto.so.12git lib/libLLVMSupport.so.12git -Wl,-rpath-link,llvm/prod-build/lib && :
>> tools/clang/tools/extra/clangd/index/remote/server/CMakeFiles/clangd-index-server.dir/Server.cpp.o:Server.cpp:function llvm::detail::stream_operator_format_adapter<clang::clangd::remote::(anonymous namespace)::RemoteIndexServer::TextProto>::format(llvm::raw_ostream&, llvm::StringRef): error: undefined reference to 'google::protobuf::Message::DebugString[abi:cxx11]() const'
>> clang: error: linker command failed with exit code 1 (use -v to see invocation)
>
> I am not able to reproduce the failure. Maybe we should just make the dependencies introduced in `generate_protos` for grpc++ and protobuf PUBLIC, to ensure they propagate into users (i believe that's the default for my configuration for whatever reason). Can you share your cmake configuration ?
I agree that would be a good thing but since `Server.cpp` explicitly uses `DebugString` I think explicitly specifying `protobuf` dependency there is still a way to go.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91859/new/
https://reviews.llvm.org/D91859
More information about the cfe-commits
mailing list