[Lldb-commits] [lldb] 35cec80 - [lldb][test] Workaround older systems that lack gettid (#104831)
via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 20 21:09:11 PDT 2024
Author: Will Hawkins
Date: 2024-08-20T21:09:08-07:00
New Revision: 35cec805bfa91fd9b83c29c45f3a5877e484bd85
URL: https://github.com/llvm/llvm-project/commit/35cec805bfa91fd9b83c29c45f3a5877e484bd85
DIFF: https://github.com/llvm/llvm-project/commit/35cec805bfa91fd9b83c29c45f3a5877e484bd85.diff
LOG: [lldb][test] Workaround older systems that lack gettid (#104831)
Older glibc versions do not provide `gettid`. Provide our own `gettid`
in these cases.
Fixes a build failure caused by #104109.
Added:
Modified:
lldb/unittests/Process/elf-core/CMakeLists.txt
lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp
Removed:
################################################################################
diff --git a/lldb/unittests/Process/elf-core/CMakeLists.txt b/lldb/unittests/Process/elf-core/CMakeLists.txt
index b852a3ffb863c1..68ab6e0683c182 100644
--- a/lldb/unittests/Process/elf-core/CMakeLists.txt
+++ b/lldb/unittests/Process/elf-core/CMakeLists.txt
@@ -1,3 +1,6 @@
+include(CheckSymbolExists)
+include(CMakePushCheckState)
+
add_lldb_unittest(ProcessElfCoreTests
ThreadElfCoreTest.cpp
@@ -13,3 +16,11 @@ add_lldb_unittest(ProcessElfCoreTests
LINK_COMPONENTS
Support
)
+
+cmake_push_check_state()
+set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
+check_symbol_exists(gettid "unistd.h" HAVE_GETTID)
+if(HAVE_GETTID)
+ target_compile_definitions(ProcessElfCoreTests PRIVATE HAVE_GETTID)
+endif()
+cmake_pop_check_state()
diff --git a/lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp b/lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp
index 3bc8b9053d2009..288729b4470607 100644
--- a/lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp
+++ b/lldb/unittests/Process/elf-core/ThreadElfCoreTest.cpp
@@ -24,6 +24,11 @@
#include <sys/resource.h>
#include <unistd.h>
+#ifndef HAVE_GETTID
+#include <sys/syscall.h>
+pid_t gettid() { return ((pid_t)syscall(SYS_gettid)); }
+#endif
+
using namespace lldb_private;
namespace {
More information about the lldb-commits
mailing list