[Lldb-commits] [lldb] [lldb] Additional pieces towards OpenBSD support (PR #74198)
Brad Smith via lldb-commits
lldb-commits at lists.llvm.org
Mon Dec 4 12:02:53 PST 2023
https://github.com/brad0 updated https://github.com/llvm/llvm-project/pull/74198
>From 312bd79cfbe847a7553534714649ff2a4b7979b5 Mon Sep 17 00:00:00 2001
From: Brad Smith <brad at comstyle.com>
Date: Sat, 2 Dec 2023 10:20:48 -0500
Subject: [PATCH] [lldb] Additional pieces towards OpenBSD support
---
lldb/source/Core/FormatEntity.cpp | 7 ++++---
lldb/source/Host/common/SocketAddress.cpp | 6 ++++--
lldb/source/Host/posix/DomainSocket.cpp | 3 ++-
lldb/source/Initialization/SystemInitializerCommon.cpp | 6 ++++--
.../Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp | 1 +
.../DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp | 3 ++-
lldb/test/API/api/multithreaded/common.h | 3 ++-
lldb/test/API/tools/lldb-server/thread-name/main.cpp | 5 +++++
8 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp
index d8047b4242065..94986457552d9 100644
--- a/lldb/source/Core/FormatEntity.cpp
+++ b/lldb/source/Core/FormatEntity.cpp
@@ -1245,9 +1245,10 @@ bool FormatEntity::Format(const Entry &entry, Stream &s,
llvm::Triple::OSType ostype = arch.IsValid()
? arch.GetTriple().getOS()
: llvm::Triple::UnknownOS;
- if ((ostype == llvm::Triple::FreeBSD) ||
- (ostype == llvm::Triple::Linux) ||
- (ostype == llvm::Triple::NetBSD)) {
+ if (ostype == llvm::Triple::FreeBSD ||
+ ostype == llvm::Triple::Linux ||
+ ostype == llvm::Triple::NetBSD ||
+ ostype == llvm::Triple::OpenBSD) {
format = "%" PRIu64;
}
} else {
diff --git a/lldb/source/Host/common/SocketAddress.cpp b/lldb/source/Host/common/SocketAddress.cpp
index 3f47d32d4652d..6a23c633e54bf 100644
--- a/lldb/source/Host/common/SocketAddress.cpp
+++ b/lldb/source/Host/common/SocketAddress.cpp
@@ -113,7 +113,8 @@ static socklen_t GetFamilyLength(sa_family_t family) {
}
socklen_t SocketAddress::GetLength() const {
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
return m_socket_addr.sa.sa_len;
#else
return GetFamilyLength(GetFamily());
@@ -128,7 +129,8 @@ sa_family_t SocketAddress::GetFamily() const {
void SocketAddress::SetFamily(sa_family_t family) {
m_socket_addr.sa.sa_family = family;
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
m_socket_addr.sa.sa_len = GetFamilyLength(family);
#endif
}
diff --git a/lldb/source/Host/posix/DomainSocket.cpp b/lldb/source/Host/posix/DomainSocket.cpp
index ddbd983abb81d..9b44c2a8368ed 100644
--- a/lldb/source/Host/posix/DomainSocket.cpp
+++ b/lldb/source/Host/posix/DomainSocket.cpp
@@ -48,7 +48,8 @@ static bool SetSockAddr(llvm::StringRef name, const size_t name_offset,
saddr_un_len =
offsetof(struct sockaddr_un, sun_path) + name_offset + name.size();
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
saddr_un->sun_len = saddr_un_len;
#endif
diff --git a/lldb/source/Initialization/SystemInitializerCommon.cpp b/lldb/source/Initialization/SystemInitializerCommon.cpp
index 40e54cd7f0e09..1a172a95aa147 100644
--- a/lldb/source/Initialization/SystemInitializerCommon.cpp
+++ b/lldb/source/Initialization/SystemInitializerCommon.cpp
@@ -18,7 +18,8 @@
#include "lldb/Utility/Timer.h"
#include "lldb/Version/Version.h"
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
#include "Plugins/Process/POSIX/ProcessPOSIXLog.h"
#endif
@@ -77,7 +78,8 @@ llvm::Error SystemInitializerCommon::Initialize() {
process_gdb_remote::ProcessGDBRemoteLog::Initialize();
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
ProcessPOSIXLog::Initialize();
#endif
#if defined(_WIN32)
diff --git a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
index a0b6f44bed0e7..1a9c4593b1b4f 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp
@@ -549,6 +549,7 @@ bool DYLDRendezvous::SOEntryIsMainExecutable(const SOEntry &entry) {
switch (triple.getOS()) {
case llvm::Triple::FreeBSD:
case llvm::Triple::NetBSD:
+ case llvm::Triple::OpenBSD:
return entry.file_spec == m_exe_file_spec;
case llvm::Triple::Linux:
if (triple.isAndroid())
diff --git a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
index 3d65f49674209..9baf86da4dc79 100644
--- a/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
+++ b/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
@@ -53,7 +53,8 @@ DynamicLoader *DynamicLoaderPOSIXDYLD::CreateInstance(Process *process,
process->GetTarget().GetArchitecture().GetTriple();
if (triple_ref.getOS() == llvm::Triple::FreeBSD ||
triple_ref.getOS() == llvm::Triple::Linux ||
- triple_ref.getOS() == llvm::Triple::NetBSD)
+ triple_ref.getOS() == llvm::Triple::NetBSD ||
+ triple_ref.getOS() == llvm::Triple::OpenBSD)
create = true;
}
diff --git a/lldb/test/API/api/multithreaded/common.h b/lldb/test/API/api/multithreaded/common.h
index dad8bba07a3f3..2ef1cb7c5664d 100644
--- a/lldb/test/API/api/multithreaded/common.h
+++ b/lldb/test/API/api/multithreaded/common.h
@@ -58,7 +58,8 @@ class multithreaded_queue {
/// Allocates a char buffer with the current working directory
inline char* get_working_dir() {
-#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
+ defined(__OpenBSD__)
return getwd(0);
#else
return get_current_dir_name();
diff --git a/lldb/test/API/tools/lldb-server/thread-name/main.cpp b/lldb/test/API/tools/lldb-server/thread-name/main.cpp
index 02eea12ca98a0..17756ed7943b7 100644
--- a/lldb/test/API/tools/lldb-server/thread-name/main.cpp
+++ b/lldb/test/API/tools/lldb-server/thread-name/main.cpp
@@ -1,4 +1,7 @@
#include <pthread.h>
+#if defined(__OpenBSD__)
+#include <pthread_np.h>
+#endif
#include <signal.h>
void set_thread_name(const char *name) {
@@ -8,6 +11,8 @@ void set_thread_name(const char *name) {
::pthread_setname_np(::pthread_self(), name);
#elif defined(__NetBSD__)
::pthread_setname_np(::pthread_self(), "%s", const_cast<char *>(name));
+#elif defined(__OpenBSD__)
+ ::pthread_set_name_np(::pthread_self(), name);
#endif
}
More information about the lldb-commits
mailing list