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 <[email protected]>
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",

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to