67 lines
2.3 KiB
Diff
67 lines
2.3 KiB
Diff
From dfec50b899c449bc964514f16e94869de7a68896 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
Date: Mon, 31 Dec 2018 16:22:07 +0100
|
|
Subject: [PATCH] Properly detect the availability of pthread_setname_np()
|
|
|
|
This commit adds a CMake check for the availability of
|
|
pthread_setname_np(), and only uses it on Linux when available.
|
|
|
|
Indeed, some C libraries, such as uClibc, do not provide this
|
|
non-POSIX function in all cases.
|
|
|
|
Upstream: https://github.com/grpc/grpc/pull/17610
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
|
|
[buildroot@heine.tech:
|
|
1.42.0 added new logic to handle older glibc without pthread_setname_np()
|
|
but is still not sufficient for all cases. So alter the patch to wrap all
|
|
this with our cmake based workaround.
|
|
See: https://github.com/grpc/grpc/pull/27540
|
|
]
|
|
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
|
|
---
|
|
CMakeLists.txt | 6 ++++++
|
|
include/grpc/support/port_platform.h | 2 ++
|
|
2 files changed, 8 insertions(+)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 053b9e3784..2565dc5c84 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -291,6 +291,12 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
|
|
endif()
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
|
|
|
|
+include(CheckSymbolExists)
|
|
+check_symbol_exists(pthread_setname_np pthread.h HAVE_PTHREAD_SETNAME_NP)
|
|
+if (HAVE_PTHREAD_SETNAME_NP)
|
|
+ add_definitions(-DHAVE_PTHREAD_SETNAME_NP)
|
|
+endif ()
|
|
+
|
|
if(MSVC)
|
|
include(cmake/msvc_static_runtime.cmake)
|
|
add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
|
|
diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
|
|
index 5fb7426af2..24d438d702 100644
|
|
--- a/include/grpc/support/port_platform.h
|
|
+++ b/include/grpc/support/port_platform.h
|
|
@@ -228,6 +228,7 @@
|
|
#endif /* _LP64 */
|
|
#ifdef __GLIBC__
|
|
#define GPR_POSIX_CRASH_HANDLER 1
|
|
+#if defined(HAVE_PTHREAD_SETNAME_NP)
|
|
#ifdef __GLIBC_PREREQ
|
|
#if __GLIBC_PREREQ(2, 12)
|
|
#define GPR_LINUX_PTHREAD_NAME 1
|
|
@@ -236,6 +237,7 @@
|
|
// musl libc & others
|
|
#define GPR_LINUX_PTHREAD_NAME 1
|
|
#endif
|
|
+#endif /* HAVE_PTHREAD_SETNAME_NP */
|
|
#include <linux/version.h>
|
|
#else /* musl libc */
|
|
#define GPR_MUSL_LIBC_COMPAT 1
|
|
--
|
|
2.34.1
|
|
|