[Lldb-commits] [lldb] [llvm] [lldb] Move OS signal definitions into Target (PR #221579)
Minsoo Choo via lldb-commits
lldb-commits at lists.llvm.org
Sun Sep 6 08:05:34 PDT 2026
https://github.com/mchoo7 created https://github.com/llvm/llvm-project/pull/221579
Currently, code that makes use of `<OS>Signals` classes have to depend on lldbPluginProcessUtility library although its base class `UnixSignals` is in `lldbTarget`. This creates unnecessary dependency between the two libraries and since lldbPluginProcessUtility already has dependency issues, move `<OS>Signals` to lldbTarget along with `UnixSignals` class.
Assisted-by: GPT
>From 7b3fa7753828d283ff196f6c3f266bdaab621e89 Mon Sep 17 00:00:00 2001
From: Minsoo Choo <minsoo at minsoo.io>
Date: Sun, 6 Sep 2026 00:34:29 -0400
Subject: [PATCH] [lldb] Move OS signal definitions into Target
---
.../lldb/Target}/FreeBSDSignals.h | 6 ++---
.../lldb/Target}/LinuxSignals.h | 6 ++---
.../lldb/Target}/NetBSDSignals.h | 6 ++---
.../lldb/Target}/OpenBSDSignals.h | 6 ++---
.../Plugins/Platform/Linux/PlatformLinux.cpp | 2 +-
.../Plugins/Process/Utility/CMakeLists.txt | 4 ----
lldb/source/Target/CMakeLists.txt | 5 +++-
.../Utility => Target}/FreeBSDSignals.cpp | 2 +-
.../Utility => Target}/LinuxSignals.cpp | 2 +-
.../Utility => Target}/NetBSDSignals.cpp | 2 +-
.../Utility => Target}/OpenBSDSignals.cpp | 2 +-
lldb/source/Target/UnixSignals.cpp | 8 +++----
.../gdb-remote/GDBRemoteClientBaseTest.cpp | 2 +-
lldb/unittests/Signals/UnixSignalsTest.cpp | 23 +++++++++++++++++++
.../source/Plugins/Process/Utility/BUILD.gn | 4 ----
.../gn/secondary/lldb/source/Target/BUILD.gn | 5 +++-
16 files changed, 53 insertions(+), 32 deletions(-)
rename lldb/{source/Plugins/Process/Utility => include/lldb/Target}/FreeBSDSignals.h (76%)
rename lldb/{source/Plugins/Process/Utility => include/lldb/Target}/LinuxSignals.h (77%)
rename lldb/{source/Plugins/Process/Utility => include/lldb/Target}/NetBSDSignals.h (77%)
rename lldb/{source/Plugins/Process/Utility => include/lldb/Target}/OpenBSDSignals.h (76%)
rename lldb/source/{Plugins/Process/Utility => Target}/FreeBSDSignals.cpp (99%)
rename lldb/source/{Plugins/Process/Utility => Target}/LinuxSignals.cpp (99%)
rename lldb/source/{Plugins/Process/Utility => Target}/NetBSDSignals.cpp (99%)
rename lldb/source/{Plugins/Process/Utility => Target}/OpenBSDSignals.cpp (98%)
diff --git a/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h b/lldb/include/lldb/Target/FreeBSDSignals.h
similarity index 76%
rename from lldb/source/Plugins/Process/Utility/FreeBSDSignals.h
rename to lldb/include/lldb/Target/FreeBSDSignals.h
index c4c810e549854..d97a65ddca7ed 100644
--- a/lldb/source/Plugins/Process/Utility/FreeBSDSignals.h
+++ b/lldb/include/lldb/Target/FreeBSDSignals.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
+#ifndef LLDB_TARGET_FREEBSDSIGNALS_H
+#define LLDB_TARGET_FREEBSDSIGNALS_H
#include "lldb/Target/UnixSignals.h"
@@ -24,4 +24,4 @@ class FreeBSDSignals : public UnixSignals {
} // namespace lldb_private
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_FREEBSDSIGNALS_H
+#endif // LLDB_TARGET_FREEBSDSIGNALS_H
diff --git a/lldb/source/Plugins/Process/Utility/LinuxSignals.h b/lldb/include/lldb/Target/LinuxSignals.h
similarity index 77%
rename from lldb/source/Plugins/Process/Utility/LinuxSignals.h
rename to lldb/include/lldb/Target/LinuxSignals.h
index 32c4744a96d04..02edad97a8adf 100644
--- a/lldb/source/Plugins/Process/Utility/LinuxSignals.h
+++ b/lldb/include/lldb/Target/LinuxSignals.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
+#ifndef LLDB_TARGET_LINUXSIGNALS_H
+#define LLDB_TARGET_LINUXSIGNALS_H
#include "lldb/Target/UnixSignals.h"
@@ -24,4 +24,4 @@ class LinuxSignals : public UnixSignals {
} // namespace lldb_private
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXSIGNALS_H
+#endif // LLDB_TARGET_LINUXSIGNALS_H
diff --git a/lldb/source/Plugins/Process/Utility/NetBSDSignals.h b/lldb/include/lldb/Target/NetBSDSignals.h
similarity index 77%
rename from lldb/source/Plugins/Process/Utility/NetBSDSignals.h
rename to lldb/include/lldb/Target/NetBSDSignals.h
index 94bad7c19a499..28ae90e1f3d4b 100644
--- a/lldb/source/Plugins/Process/Utility/NetBSDSignals.h
+++ b/lldb/include/lldb/Target/NetBSDSignals.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
+#ifndef LLDB_TARGET_NETBSDSIGNALS_H
+#define LLDB_TARGET_NETBSDSIGNALS_H
#include "lldb/Target/UnixSignals.h"
@@ -24,4 +24,4 @@ class NetBSDSignals : public UnixSignals {
} // namespace lldb_private
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NETBSDSIGNALS_H
+#endif // LLDB_TARGET_NETBSDSIGNALS_H
diff --git a/lldb/source/Plugins/Process/Utility/OpenBSDSignals.h b/lldb/include/lldb/Target/OpenBSDSignals.h
similarity index 76%
rename from lldb/source/Plugins/Process/Utility/OpenBSDSignals.h
rename to lldb/include/lldb/Target/OpenBSDSignals.h
index 1e2b1fa9d26db..f1ef3c6c4803d 100644
--- a/lldb/source/Plugins/Process/Utility/OpenBSDSignals.h
+++ b/lldb/include/lldb/Target/OpenBSDSignals.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_OPENBSDSIGNALS_H
-#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_OPENBSDSIGNALS_H
+#ifndef LLDB_TARGET_OPENBSDSIGNALS_H
+#define LLDB_TARGET_OPENBSDSIGNALS_H
#include "lldb/Target/UnixSignals.h"
@@ -24,4 +24,4 @@ class OpenBSDSignals : public UnixSignals {
} // namespace lldb_private
-#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_OPENBSDSIGNALS_H
+#endif // LLDB_TARGET_OPENBSDSIGNALS_H
diff --git a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
index 799fe5eec29bc..66d2f2db37aa7 100644
--- a/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
+++ b/lldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
@@ -14,13 +14,13 @@
#include <sys/utsname.h>
#endif
-#include "Plugins/Process/Utility/LinuxSignals.h"
#include "Plugins/Process/Utility/lldb-riscv-register-enums.h"
#include "Utility/ARM64_DWARF_Registers.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Host/HostInfo.h"
#include "lldb/Symbol/UnwindPlan.h"
+#include "lldb/Target/LinuxSignals.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/ArchSpec.h"
diff --git a/lldb/source/Plugins/Process/Utility/CMakeLists.txt b/lldb/source/Plugins/Process/Utility/CMakeLists.txt
index 90cf4d20bbc07..666aeb3bb343d 100644
--- a/lldb/source/Plugins/Process/Utility/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/Utility/CMakeLists.txt
@@ -3,13 +3,11 @@ set_property(DIRECTORY PROPERTY LLDB_PLUGIN_KIND ProcessUtility)
add_lldb_library(lldbPluginProcessUtility
AuxVector.cpp
- FreeBSDSignals.cpp
GDBRemoteSignals.cpp
HistoryThread.cpp
HistoryUnwind.cpp
InferiorCallPOSIX.cpp
LinuxProcMaps.cpp
- LinuxSignals.cpp
MemoryTagManagerAArch64MTE.cpp
NativeProcessSoftwareSingleStep.cpp
NativeRegisterContextDBReg.cpp
@@ -18,8 +16,6 @@ add_lldb_library(lldbPluginProcessUtility
NativeRegisterContextDBReg_loongarch.cpp
NativeRegisterContextDBReg_x86.cpp
NativeRegisterContextRegisterInfo.cpp
- NetBSDSignals.cpp
- OpenBSDSignals.cpp
RegisterContext_x86.cpp
RegisterContextDarwin_arm.cpp
RegisterContextDarwin_arm64.cpp
diff --git a/lldb/source/Target/CMakeLists.txt b/lldb/source/Target/CMakeLists.txt
index 2874394c400aa..7cefdd8081888 100644
--- a/lldb/source/Target/CMakeLists.txt
+++ b/lldb/source/Target/CMakeLists.txt
@@ -17,19 +17,23 @@ add_lldb_library(lldbTarget
DynamicRegisterInfo.cpp
CoreFileMemoryRanges.cpp
ExecutionContext.cpp
+ FreeBSDSignals.cpp
InstrumentationRuntime.cpp
InstrumentationRuntimeStopInfo.cpp
JITLoader.cpp
JITLoaderList.cpp
Language.cpp
LanguageRuntime.cpp
+ LinuxSignals.cpp
Memory.cpp
MemoryHistory.cpp
MemoryRegionInfo.cpp
MemoryRegionInfoCache.cpp
MemoryTagMap.cpp
ModuleCache.cpp
+ NetBSDSignals.cpp
OperatingSystem.cpp
+ OpenBSDSignals.cpp
PathMappingList.cpp
Platform.cpp
Process.cpp
@@ -103,7 +107,6 @@ add_lldb_library(lldbTarget
lldbSymbol
lldbUtility
lldbValueObject
- lldbPluginProcessUtility
)
add_dependencies(lldbTarget
diff --git a/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp b/lldb/source/Target/FreeBSDSignals.cpp
similarity index 99%
rename from lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp
rename to lldb/source/Target/FreeBSDSignals.cpp
index ebf197339446d..dfba59c45fc64 100644
--- a/lldb/source/Plugins/Process/Utility/FreeBSDSignals.cpp
+++ b/lldb/source/Target/FreeBSDSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "FreeBSDSignals.h"
+#include "lldb/Target/FreeBSDSignals.h"
#ifdef __FreeBSD__
#include <csignal>
diff --git a/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp b/lldb/source/Target/LinuxSignals.cpp
similarity index 99%
rename from lldb/source/Plugins/Process/Utility/LinuxSignals.cpp
rename to lldb/source/Target/LinuxSignals.cpp
index a71bde9532915..2034fdfdeefae 100644
--- a/lldb/source/Plugins/Process/Utility/LinuxSignals.cpp
+++ b/lldb/source/Target/LinuxSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "LinuxSignals.h"
+#include "lldb/Target/LinuxSignals.h"
// mips-linux debugging is not supported and mips uses different numbers for
// some signals (e.g. SIGBUS) on linux, so we skip the static checks below. The
diff --git a/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp b/lldb/source/Target/NetBSDSignals.cpp
similarity index 99%
rename from lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp
rename to lldb/source/Target/NetBSDSignals.cpp
index 6e4e5038566b3..7df78ef46c4ff 100644
--- a/lldb/source/Plugins/Process/Utility/NetBSDSignals.cpp
+++ b/lldb/source/Target/NetBSDSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "NetBSDSignals.h"
+#include "lldb/Target/NetBSDSignals.h"
#ifdef __NetBSD__
#include <csignal>
diff --git a/lldb/source/Plugins/Process/Utility/OpenBSDSignals.cpp b/lldb/source/Target/OpenBSDSignals.cpp
similarity index 98%
rename from lldb/source/Plugins/Process/Utility/OpenBSDSignals.cpp
rename to lldb/source/Target/OpenBSDSignals.cpp
index 48263235126c0..fbc86f46e59e4 100644
--- a/lldb/source/Plugins/Process/Utility/OpenBSDSignals.cpp
+++ b/lldb/source/Target/OpenBSDSignals.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "OpenBSDSignals.h"
+#include "lldb/Target/OpenBSDSignals.h"
#ifdef __OpenBSD__
#include <csignal>
diff --git a/lldb/source/Target/UnixSignals.cpp b/lldb/source/Target/UnixSignals.cpp
index 881431f4631e5..63e2d98001bbc 100644
--- a/lldb/source/Target/UnixSignals.cpp
+++ b/lldb/source/Target/UnixSignals.cpp
@@ -7,11 +7,11 @@
//===----------------------------------------------------------------------===//
#include "lldb/Target/UnixSignals.h"
-#include "Plugins/Process/Utility/FreeBSDSignals.h"
-#include "Plugins/Process/Utility/LinuxSignals.h"
-#include "Plugins/Process/Utility/NetBSDSignals.h"
-#include "Plugins/Process/Utility/OpenBSDSignals.h"
#include "lldb/Host/HostInfo.h"
+#include "lldb/Target/FreeBSDSignals.h"
+#include "lldb/Target/LinuxSignals.h"
+#include "lldb/Target/NetBSDSignals.h"
+#include "lldb/Target/OpenBSDSignals.h"
#include "lldb/Utility/ArchSpec.h"
#include <optional>
#include <sstream>
diff --git a/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp b/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
index b28b8013bcdc7..7bf9eca0efcaf 100644
--- a/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
+++ b/lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp
@@ -8,9 +8,9 @@
#include "Plugins/Process/gdb-remote/GDBRemoteClientBase.h"
#include "GDBRemoteTestUtils.h"
-#include "Plugins/Process/Utility/LinuxSignals.h"
#include "Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h"
#include "lldb/Host/ConnectionFileDescriptor.h"
+#include "lldb/Target/LinuxSignals.h"
#include "lldb/Utility/GDBRemote.h"
#include "lldb/Utility/Listener.h"
#include "llvm/ADT/StringRef.h"
diff --git a/lldb/unittests/Signals/UnixSignalsTest.cpp b/lldb/unittests/Signals/UnixSignalsTest.cpp
index 3bd4aedd600a3..caedf5635638f 100644
--- a/lldb/unittests/Signals/UnixSignalsTest.cpp
+++ b/lldb/unittests/Signals/UnixSignalsTest.cpp
@@ -10,11 +10,34 @@
#include "gtest/gtest.h"
#include "lldb/Target/UnixSignals.h"
+#include "lldb/Utility/ArchSpec.h"
#include "llvm/Support/FormatVariadic.h"
using namespace lldb;
using namespace lldb_private;
+TEST(UnixSignalsTest, FactoryUsesTargetOS) {
+ struct TestCase {
+ const char *triple;
+ int signo;
+ const char *name;
+ };
+ const TestCase test_cases[] = {
+ {"x86_64-unknown-linux", 34, "SIGRTMIN"},
+ {"x86_64-unknown-freebsd", 33, "SIGLIBRT"},
+ {"x86_64-unknown-netbsd", 32, "SIGPWR"},
+ {"x86_64-unknown-openbsd", 32, "SIGTHR"},
+ };
+
+ for (const TestCase &test : test_cases) {
+ ArchSpec arch(test.triple);
+ lldb::UnixSignalsSP signals = UnixSignals::Create(arch);
+ ASSERT_TRUE(signals) << test.triple;
+ EXPECT_EQ(test.name, signals->GetSignalAsStringRef(test.signo))
+ << test.triple;
+ }
+}
+
class TestSignals : public UnixSignals {
public:
TestSignals() {
diff --git a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
index 09c0b85686053..c3f9f64c6a463 100644
--- a/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
+++ b/llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
@@ -20,13 +20,11 @@ static_library("Utility") {
include_dirs = [ "//lldb/source" ]
sources = [
"AuxVector.cpp",
- "FreeBSDSignals.cpp",
"GDBRemoteSignals.cpp",
"HistoryThread.cpp",
"HistoryUnwind.cpp",
"InferiorCallPOSIX.cpp",
"LinuxProcMaps.cpp",
- "LinuxSignals.cpp",
"MemoryTagManagerAArch64MTE.cpp",
"NativeProcessSoftwareSingleStep.cpp",
"NativeRegisterContextDBReg.cpp",
@@ -35,8 +33,6 @@ static_library("Utility") {
"NativeRegisterContextDBReg_loongarch.cpp",
"NativeRegisterContextDBReg_x86.cpp",
"NativeRegisterContextRegisterInfo.cpp",
- "NetBSDSignals.cpp",
- "OpenBSDSignals.cpp",
"RegisterContextDarwin_arm.cpp",
"RegisterContextDarwin_arm64.cpp",
"RegisterContextDarwin_riscv32.cpp",
diff --git a/llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn b/llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
index 999879f574b0f..2eee670292172 100644
--- a/llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
+++ b/llvm/utils/gn/secondary/lldb/source/Target/BUILD.gn
@@ -24,7 +24,6 @@ static_library("Target") {
"//lldb/source/Expression",
"//lldb/source/Host",
"//lldb/source/Interpreter",
- "//lldb/source/Plugins/Process/Utility",
"//lldb/source/Symbol",
"//lldb/source/Utility",
"//lldb/source/ValueObject",
@@ -39,18 +38,22 @@ static_library("Target") {
"CoreFileMemoryRanges.cpp",
"DynamicRegisterInfo.cpp",
"ExecutionContext.cpp",
+ "FreeBSDSignals.cpp",
"InstrumentationRuntime.cpp",
"InstrumentationRuntimeStopInfo.cpp",
"JITLoader.cpp",
"JITLoaderList.cpp",
"Language.cpp",
"LanguageRuntime.cpp",
+ "LinuxSignals.cpp",
"Memory.cpp",
"MemoryHistory.cpp",
"MemoryRegionInfo.cpp",
"MemoryRegionInfoCache.cpp",
"MemoryTagMap.cpp",
"ModuleCache.cpp",
+ "NetBSDSignals.cpp",
+ "OpenBSDSignals.cpp",
"OperatingSystem.cpp",
"PathMappingList.cpp",
"Platform.cpp",
More information about the lldb-commits
mailing list