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
This commit is contained in:
Sergey Fedorov 2022-11-06 18:48:02 +08:00 committed by GitHub
parent e1e4924592
commit 7f98a8b972
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -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__)

View File

@ -22,6 +22,9 @@
#include <pthread_np.h>
#endif
#if defined(__APPLE__)
# include <AvailabilityMacros.h>
#endif
#ifdef _WIN32
#include <stdlib.h>
@ -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__)