summaryrefslogtreecommitdiff
path: root/lldb/tools
diff options
context:
space:
mode:
authorAlex Langford <alangford@apple.com>2023-03-22 16:17:49 -0700
committerAlex Langford <alangford@apple.com>2023-03-23 12:59:25 -0700
commit0c5cee779929f840f4f286c5894a01f583ee7b4a (patch)
tree769216407e1ebe01d15bd586a8b7b3b07a8a0875 /lldb/tools
parentd10110a8a60137d430f7a75051d0794293982ef6 (diff)
downloadllvm-0c5cee779929f840f4f286c5894a01f583ee7b4a.tar.gz
[lldb-server] Use Platform plugin corresponding to the host
In ee232506b870ce5282cc4da5ca493d41d361feb3 I moved UnixSignal initialization from lldbTarget to the various platform plugins. This inadvertently broke lldb-server because lldb-server doesn't use Platform plugins. lldb-server still needs to be able to create a UnixSignals object for the host platform so we can add the relevant platform plugin to lldb-server to make sure we always have a HostPlatform. Differential Revision: https://reviews.llvm.org/D146668
Diffstat (limited to 'lldb/tools')
-rw-r--r--lldb/tools/lldb-server/CMakeLists.txt9
-rw-r--r--lldb/tools/lldb-server/SystemInitializerLLGS.cpp19
2 files changed, 28 insertions, 0 deletions
diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/lldb/tools/lldb-server/CMakeLists.txt
index 67103e87a1d4..56da4c8b5680 100644
--- a/lldb/tools/lldb-server/CMakeLists.txt
+++ b/lldb/tools/lldb-server/CMakeLists.txt
@@ -7,20 +7,29 @@ set(LLDB_PLUGINS)
if(CMAKE_SYSTEM_NAME MATCHES "Linux|Android")
list(APPEND LLDB_PLUGINS lldbPluginProcessLinux)
+ if (CMAKE_SYSTEM_NAME MATCHES "Linux")
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformLinux)
+ else()
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformAndroid)
+ endif()
endif()
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
list(APPEND LLDB_PLUGINS lldbPluginProcessFreeBSD)
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformFreeBSD)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
list(APPEND LLDB_PLUGINS lldbPluginProcessNetBSD)
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformNetBSD)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
list(APPEND LLDB_PLUGINS lldbPluginObjectFileMachO)
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformMacOSX)
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
list(APPEND LLDB_PLUGINS lldbPluginObjectFilePECOFF)
+ list(APPEND LLDB_PLUGINS lldbPluginPlatformWindows)
else()
list(APPEND LLDB_PLUGINS lldbPluginObjectFileELF)
endif()
diff --git a/lldb/tools/lldb-server/SystemInitializerLLGS.cpp b/lldb/tools/lldb-server/SystemInitializerLLGS.cpp
index 4233252a84df..1909ea4dc798 100644
--- a/lldb/tools/lldb-server/SystemInitializerLLGS.cpp
+++ b/lldb/tools/lldb-server/SystemInitializerLLGS.cpp
@@ -11,12 +11,29 @@
#if defined(__APPLE__)
#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h"
using HostObjectFile = ObjectFileMachO;
+#include "Plugins/Platform/MacOSX/PlatformMacOSX.h"
+using HostPlatform = lldb_private::PlatformMacOSX;
#elif defined(_WIN32)
#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h"
using HostObjectFile = ObjectFilePECOFF;
+#include "Plugins/Platform/Windows/PlatformWindows.h"
+using HostPlatform = lldb_private::PlatformWindows;
#else
#include "Plugins/ObjectFile/ELF/ObjectFileELF.h"
using HostObjectFile = ObjectFileELF;
+#if defined(__ANDROID__)
+#include "Plugins/Platform/Android/PlatformAndroid.h"
+using HostPlatform = lldb_private::platform_android::PlatformAndroid;
+#elif defined(__FreeBSD__)
+#include "Plugins/Platform/FreeBSD/PlatformFreeBSD.h"
+using HostPlatform = lldb_private::platform_freebsd::PlatformFreeBSD;
+#elif defined(__linux__)
+#include "Plugins/Platform/Linux/PlatformLinux.h"
+using HostPlatform = lldb_private::platform_linux::PlatformLinux;
+#elif defined(__NetBSD__)
+#include "Plugins/Platform/NetBSD/PlatformNetBSD.h"
+using HostPlatform = lldb_private::platform_netbsd::PlatformNetBSD;
+#endif
#endif
#if defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64)
@@ -58,6 +75,7 @@ llvm::Error SystemInitializerLLGS::Initialize() {
return e;
HostObjectFile::Initialize();
+ HostPlatform::Initialize();
#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
EmulateInstructionARM::Initialize();
@@ -80,6 +98,7 @@ llvm::Error SystemInitializerLLGS::Initialize() {
void SystemInitializerLLGS::Terminate() {
HostObjectFile::Terminate();
+ HostPlatform::Terminate();
#if defined(LLDB_TARGET_ARM) || defined(LLDB_TARGET_ARM64)
EmulateInstructionARM::Terminate();