From 7f98a8b9726354a25f9aa66f243ab2671cd6bcee Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sun, 6 Nov 2022 18:48:02 +0800 Subject: [PATCH] Fix definitions for Darwin PPC; do not use pthread_setname_np on unsupported OS versions (#1797) * Correct define for Darwin PPC is __POWERPC__ * util.cpp: do not use pthread_setname_np on unsupported macOS versions --- build/cmake_modules/TargetArch.cmake | 2 +- libi2pd/util.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/build/cmake_modules/TargetArch.cmake b/build/cmake_modules/TargetArch.cmake index d9ebe7c9..ac7275b1 100644 --- a/build/cmake_modules/TargetArch.cmake +++ b/build/cmake_modules/TargetArch.cmake @@ -61,7 +61,7 @@ set(archdetect_c_code " #else #error cmake_ARCH mips #endif -#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) \\ +#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) || defined(__POWERPC__) \\ || defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) \\ || defined(_M_MPPC) || defined(_M_PPC) #if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__) diff --git a/libi2pd/util.cpp b/libi2pd/util.cpp index 10de346f..b8234b39 100644 --- a/libi2pd/util.cpp +++ b/libi2pd/util.cpp @@ -22,6 +22,9 @@ #include #endif +#if defined(__APPLE__) +# include +#endif #ifdef _WIN32 #include @@ -143,8 +146,15 @@ namespace util } void SetThreadName (const char *name) { -#if defined(__APPLE__) && !defined(__powerpc__) +#if defined(__APPLE__) +# if (!defined(MAC_OS_X_VERSION_10_6) || \ + (MAC_OS_X_VERSION_MAX_ALLOWED < 1060) || \ + defined(__POWERPC__)) + /* pthread_setname_np is not there on <10.6 and all PPC. + So do nothing. */ +# else pthread_setname_np((char*)name); +# endif #elif defined(__FreeBSD__) || defined(__OpenBSD__) pthread_set_name_np(pthread_self(), name); #elif defined(__NetBSD__)