-
Notifications
You must be signed in to change notification settings - Fork 15.2k
[lldb][NFC] Mark ValueObject library with NO_PLUGIN_DEPENDENCIES #167794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The ValueObject library doesn't actually depend on any plugins currently, but it links against the C++ and ObjC language plugins. I removed those and added NO_PLUGIN_DEPENDENCIES. However, the build failed initally because the Commands library depends on clangFrontend and it was previously getting it transitively through ValueObject -> C++/ObjC Language -> clangFrontend. This makes the dependency more explicit.
|
@llvm/pr-subscribers-lldb Author: Alex Langford (bulbazord) ChangesThe ValueObject library doesn't actually depend on any plugins currently, but it links against the C++ and ObjC language plugins. I removed those and added NO_PLUGIN_DEPENDENCIES. However, the build failed initally because the Commands library depends on clangFrontend and it was previously getting it transitively through ValueObject -> C++/ObjC Language -> clangFrontend. This makes the dependency more explicit. Full diff: https://github.com/llvm/llvm-project/pull/167794.diff 2 Files Affected:
diff --git a/lldb/source/Commands/CMakeLists.txt b/lldb/source/Commands/CMakeLists.txt
index 69e4c45f0b8e5..33332f2d59a23 100644
--- a/lldb/source/Commands/CMakeLists.txt
+++ b/lldb/source/Commands/CMakeLists.txt
@@ -58,6 +58,8 @@ add_lldb_library(lldbCommands NO_PLUGIN_DEPENDENCIES
lldbUtility
lldbValueObject
lldbVersion
+ CLANG_LIBS
+ clangFrontend
)
add_dependencies(lldbCommands LLDBOptionsGen)
diff --git a/lldb/source/ValueObject/CMakeLists.txt b/lldb/source/ValueObject/CMakeLists.txt
index 2a61407521bec..f0fe7f374a506 100644
--- a/lldb/source/ValueObject/CMakeLists.txt
+++ b/lldb/source/ValueObject/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_lldb_library(lldbValueObject
+add_lldb_library(lldbValueObject NO_PLUGIN_DEPENDENCIES
DILAST.cpp
DILEval.cpp
DILLexer.cpp
@@ -34,6 +34,4 @@ add_lldb_library(lldbValueObject
lldbSymbol
lldbTarget
lldbUtility
- lldbPluginCPlusPlusLanguage
- lldbPluginObjCLanguage
)
|
…m#167794) The ValueObject library doesn't actually depend on any plugins currently, but it links against the C++ and ObjC language plugins. I removed those and added NO_PLUGIN_DEPENDENCIES. However, the build failed initally because the Commands library depends on clangFrontend and it was previously getting it transitively through ValueObject -> C++/ObjC Language -> clangFrontend. This makes the dependency more explicit.
|
This breaks a build with BUILD_SHARED_LIBS=ON: /usr/bin/ld: lib/liblldbCommands.a(CommandObjectTarget.cpp.o): undefined reference to symbol '_ZN5clang22PCHContainerOperationsC1Ev I tried adding a dependency on clangSerialization to lldb/source/Command, but it triggered a new series of linker errors with a different symbol (clang::getClangRevisionabi:cxx11). Adding a dependency on clangBasic to lldb/source/Version replaced that with another set of errors. At this point I gave up. |
|
Why does |
…N_DEPENDENCIES" (#167886) Reverts llvm/llvm-project#167794 This breaks a build with BUILD_SHARED_LIBS=ON: /usr/bin/ld: lib/liblldbCommands.a(CommandObjectTarget.cpp.o): undefined reference to symbol '_ZN5clang22PCHContainerOperationsC1Ev Fixing that issue leads to similar failures due to different symbols.
Yes, that's the only reason. |
That seems like it should be a |
The ValueObject library doesn't actually depend on any plugins currently, but it links against the C++ and ObjC language plugins. I removed those and added NO_PLUGIN_DEPENDENCIES.
However, the build failed initally because the Commands library depends on clangFrontend and it was previously getting it transitively through ValueObject -> C++/ObjC Language -> clangFrontend. This makes the dependency more explicit.