From 1a35bb6d71b6301287e21aaabd112997ea0f0a7f Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 9 Nov 2023 20:32:47 +0100 Subject: Build: add Solaris compilation support (#282) --- CMakeLists.txt | 1 + cmake/config.hpp.cmake | 1 + src/vmime/platforms/posix/posixHandler.cpp | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e8092eef..8f903e9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -845,6 +845,7 @@ CHECK_FUNCTION_EXISTS(gettid VMIME_HAVE_GETTID) CHECK_FUNCTION_EXISTS(syscall VMIME_HAVE_SYSCALL) CHECK_SYMBOL_EXISTS(SYS_gettid sys/syscall.h VMIME_HAVE_SYSCALL_GETTID) CHECK_SYMBOL_EXISTS(getthrid unistd.h VMIME_HAVE_GETTHRID) +CHECK_SYMBOL_EXISTS(_lwp_self sys/lwp.h VMIME_HAVE_LWP_SELF) CHECK_SYMBOL_EXISTS(SO_KEEPALIVE sys/socket.h VMIME_HAVE_SO_KEEPALIVE) CHECK_SYMBOL_EXISTS(SO_NOSIGPIPE sys/socket.h VMIME_HAVE_SO_NOSIGPIPE) diff --git a/cmake/config.hpp.cmake b/cmake/config.hpp.cmake index c5e9fdef..6cf49b8c 100644 --- a/cmake/config.hpp.cmake +++ b/cmake/config.hpp.cmake @@ -77,6 +77,7 @@ typedef unsigned @VMIME_64BIT_TYPE@ vmime_uint64; #cmakedefine01 VMIME_HAVE_SYSCALL #cmakedefine01 VMIME_HAVE_SYSCALL_GETTID #cmakedefine01 VMIME_HAVE_GETTHRID +#cmakedefine01 VMIME_HAVE_LWP_SELF #cmakedefine01 VMIME_HAVE_GMTIME_S #cmakedefine01 VMIME_HAVE_GMTIME_R #cmakedefine01 VMIME_HAVE_LOCALTIME_S diff --git a/src/vmime/platforms/posix/posixHandler.cpp b/src/vmime/platforms/posix/posixHandler.cpp index eecdbea9..148d2169 100644 --- a/src/vmime/platforms/posix/posixHandler.cpp +++ b/src/vmime/platforms/posix/posixHandler.cpp @@ -48,6 +48,9 @@ #if VMIME_HAVE_SYSCALL # include #endif +#if VMIME_HAVE_LWP_SELF +# include +#endif #include @@ -227,6 +230,8 @@ unsigned int posixHandler::getThreadId() const { return static_cast (::syscall(SYS_gettid)); #elif VMIME_HAVE_GETTHRID // OpenBSD return static_cast (::getthrid()); +#elif VMIME_HAVE_LWP_SELF // Solaris + return static_cast (::_lwp_self()); #else #error We have no implementation of getThreadId() for this platform! #endif -- cgit v1.2.3