llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Jonas Devlieghere (JDevlieghere) <details> <summary>Changes</summary> Use C linkage for plugin initialization & termination. I'm working on adding support for using the existing plugin infrastructure but with dynamic libraries. Using C linkage makes it easier to dlsym the initialize and terminate methods. For example, with this patch, `__ZN12lldb_private39lldb_initialize_ScriptInterpreterPythonEv` becomes `_lldb_initialize_ScriptInterpreterPython`. --- Full diff: https://github.com/llvm/llvm-project/pull/182406.diff 7 Files Affected: - (modified) lldb/include/lldb/Core/PluginManager.h (+3-4) - (modified) lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp (+2-2) - (modified) lldb/source/Plugins/Highlighter/Default/DefaultHighlighter.cpp (+2-2) - (modified) lldb/source/Plugins/Highlighter/TreeSitter/Rust/RustTreeSitterHighlighter.cpp (+2-2) - (modified) lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp (+2-2) - (modified) lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp (+2-2) - (modified) lldb/source/Plugins/SyntheticFrameProvider/ScriptedFrameProvider/ScriptedFrameProvider.cpp (+2-10) ``````````diff diff --git a/lldb/include/lldb/Core/PluginManager.h b/lldb/include/lldb/Core/PluginManager.h index 4d116f52460ff..2d9ddd03e6807 100644 --- a/lldb/include/lldb/Core/PluginManager.h +++ b/lldb/include/lldb/Core/PluginManager.h @@ -29,7 +29,7 @@ #include <vector> #define LLDB_PLUGIN_DEFINE_ADV(ClassName, PluginName) \ - namespace lldb_private { \ + extern "C" { \ void lldb_initialize_##PluginName() { ClassName::Initialize(); } \ void lldb_terminate_##PluginName() { ClassName::Terminate(); } \ } @@ -39,7 +39,7 @@ // FIXME: Generate me with CMake #define LLDB_PLUGIN_DECLARE(PluginName) \ - namespace lldb_private { \ + extern "C" { \ extern void lldb_initialize_##PluginName(); \ extern void lldb_terminate_##PluginName(); \ } @@ -487,8 +487,7 @@ class PluginManager { llvm::StringRef schema, DebuggerInitializeCallback debugger_init_callback); - static bool - UnregisterPlugin(TraceCreateInstanceFromBundle create_callback); + static bool UnregisterPlugin(TraceCreateInstanceFromBundle create_callback); static TraceCreateInstanceFromBundle GetTraceCreateCallback(llvm::StringRef plugin_name); diff --git a/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp b/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp index 7480d9d78866b..3889a0483d85a 100644 --- a/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp +++ b/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp @@ -21,10 +21,10 @@ #include "llvm/Support/MemoryBuffer.h" #include <optional> -LLDB_PLUGIN_DEFINE_ADV(ClangHighlighter, HighlighterClang) - using namespace lldb_private; +LLDB_PLUGIN_DEFINE_ADV(ClangHighlighter, HighlighterClang) + bool ClangHighlighter::isKeyword(llvm::StringRef token) const { return keywords.contains(token); } diff --git a/lldb/source/Plugins/Highlighter/Default/DefaultHighlighter.cpp b/lldb/source/Plugins/Highlighter/Default/DefaultHighlighter.cpp index baef8f6938e94..e0942be573879 100644 --- a/lldb/source/Plugins/Highlighter/Default/DefaultHighlighter.cpp +++ b/lldb/source/Plugins/Highlighter/Default/DefaultHighlighter.cpp @@ -8,10 +8,10 @@ #include "DefaultHighlighter.h" -LLDB_PLUGIN_DEFINE_ADV(DefaultHighlighter, HighlighterDefault) - using namespace lldb_private; +LLDB_PLUGIN_DEFINE_ADV(DefaultHighlighter, HighlighterDefault) + void DefaultHighlighter::Highlight(const HighlightStyle &options, llvm::StringRef line, std::optional<size_t> cursor_pos, diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/Rust/RustTreeSitterHighlighter.cpp b/lldb/source/Plugins/Highlighter/TreeSitter/Rust/RustTreeSitterHighlighter.cpp index 02e7601a926d2..7468be4f7deeb 100644 --- a/lldb/source/Plugins/Highlighter/TreeSitter/Rust/RustTreeSitterHighlighter.cpp +++ b/lldb/source/Plugins/Highlighter/TreeSitter/Rust/RustTreeSitterHighlighter.cpp @@ -10,13 +10,13 @@ #include "HighlightQuery.h" #include "lldb/Target/Language.h" -LLDB_PLUGIN_DEFINE_ADV(RustTreeSitterHighlighter, HighlighterTreeSitterRust) +using namespace lldb_private; extern "C" { const TSLanguage *tree_sitter_rust(); } -using namespace lldb_private; +LLDB_PLUGIN_DEFINE_ADV(RustTreeSitterHighlighter, HighlighterTreeSitterRust) const TSLanguage *RustTreeSitterHighlighter::GetLanguage() const { return tree_sitter_rust(); diff --git a/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp index 8fd7fffff2da5..5c239574cab19 100644 --- a/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp +++ b/lldb/source/Plugins/Highlighter/TreeSitter/Swift/SwiftTreeSitterHighlighter.cpp @@ -10,14 +10,14 @@ #include "HighlightQuery.h" #include "lldb/Target/Language.h" +using namespace lldb_private; + LLDB_PLUGIN_DEFINE_ADV(SwiftTreeSitterHighlighter, HighlighterTreeSitterSwift) extern "C" { const TSLanguage *tree_sitter_swift(); } -using namespace lldb_private; - const TSLanguage *SwiftTreeSitterHighlighter::GetLanguage() const { return tree_sitter_swift(); } diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp index b359aad199161..f9b3f012a3c43 100644 --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp @@ -29,11 +29,11 @@ #include <mutex> -LLDB_PLUGIN_DEFINE(ScriptedProcess) - using namespace lldb; using namespace lldb_private; +LLDB_PLUGIN_DEFINE(ScriptedProcess) + llvm::StringRef ScriptedProcess::GetPluginDescriptionStatic() { return "Scripted Process plug-in."; } diff --git a/lldb/source/Plugins/SyntheticFrameProvider/ScriptedFrameProvider/ScriptedFrameProvider.cpp b/lldb/source/Plugins/SyntheticFrameProvider/ScriptedFrameProvider/ScriptedFrameProvider.cpp index 4aad8f2cb628f..5c49aaea4e5cc 100644 --- a/lldb/source/Plugins/SyntheticFrameProvider/ScriptedFrameProvider/ScriptedFrameProvider.cpp +++ b/lldb/source/Plugins/SyntheticFrameProvider/ScriptedFrameProvider/ScriptedFrameProvider.cpp @@ -24,6 +24,8 @@ using namespace lldb; using namespace lldb_private; +LLDB_PLUGIN_DEFINE(ScriptedFrameProvider) + void ScriptedFrameProvider::Initialize() { PluginManager::RegisterPlugin(GetPluginNameStatic(), "Provides synthetic frames via scripting", @@ -216,13 +218,3 @@ ScriptedFrameProvider::GetFrameAtIndex(uint32_t idx) { return synth_frame_sp; } - -namespace lldb_private { -void lldb_initialize_ScriptedFrameProvider() { - ScriptedFrameProvider::Initialize(); -} - -void lldb_terminate_ScriptedFrameProvider() { - ScriptedFrameProvider::Terminate(); -} -} // namespace lldb_private `````````` </details> https://github.com/llvm/llvm-project/pull/182406 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
