Commit 1a6f31704f for aom
commit 1a6f31704f699840c7347f50d18193c68a8bf68d
Author: Darryl Pogue <darryl@dpogue.ca>
Date: Mon Jan 5 19:00:30 2026 -0800
CMake check for pthread_setname_np
This API is not available on older Mac OS X versions (<10.6).
Change-Id: I7bf2eb257054a0ee180f09e6ddf9350b99f0cb34
diff --git a/aom_util/aom_thread.c b/aom_util/aom_thread.c
index 5a60617e79..c4b3bf7d2e 100644
--- a/aom_util/aom_thread.c
+++ b/aom_util/aom_thread.c
@@ -44,6 +44,7 @@ static void execute(AVxWorker *const worker); // Forward declaration.
static THREADFN thread_loop(void *ptr) {
AVxWorker *const worker = (AVxWorker *)ptr;
+#ifdef HAVE_PTHREAD_SETNAME_NP
#ifdef __APPLE__
if (worker->thread_name != NULL) {
// Apple's version of pthread_setname_np takes one argument and operates on
@@ -65,6 +66,7 @@ static THREADFN thread_loop(void *ptr) {
thread_name[sizeof(thread_name) - 1] = '\0';
pthread_setname_np(pthread_self(), thread_name);
}
+#endif
#endif
pthread_mutex_lock(&worker->impl_->mutex_);
for (;;) {
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
index a8efb4a86d..1ca631017f 100644
--- a/build/cmake/aom_config_defaults.cmake
+++ b/build/cmake/aom_config_defaults.cmake
@@ -60,6 +60,8 @@ set_aom_detect_var(HAVE_RVV 0 "Enables RVV optimizations.")
set_aom_detect_var(HAVE_FEXCEPT 0
"Internal flag, GNU fenv.h present for target.")
set_aom_detect_var(HAVE_PTHREAD_H 0 "Internal flag, target pthread support.")
+set_aom_detect_var(HAVE_PTHREAD_SETNAME_NP 0
+ "Internal flag, target has pthread_setname_np API support.")
set_aom_detect_var(HAVE_UNISTD_H 0
"Internal flag, unistd.h present for target.")
set_aom_detect_var(HAVE_WXWIDGETS 0 "WxWidgets present.")
diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake
index 07e354a6ba..966ea926cc 100644
--- a/build/cmake/aom_configure.cmake
+++ b/build/cmake/aom_configure.cmake
@@ -14,6 +14,7 @@ endif() # AOM_BUILD_CMAKE_AOM_CONFIGURE_CMAKE_
set(AOM_BUILD_CMAKE_AOM_CONFIGURE_CMAKE_ 1)
include(FindThreads)
+include(CheckSymbolExists)
include("${AOM_ROOT}/build/cmake/aom_config_defaults.cmake")
include("${AOM_ROOT}/build/cmake/aom_experiment_deps.cmake")
@@ -258,6 +259,15 @@ fix_experiment_configs()
set(HAVE_PTHREAD_H ${CMAKE_USE_PTHREADS_INIT})
aom_check_source_compiles("unistd_check" "#include <unistd.h>" HAVE_UNISTD_H)
+if(HAVE_PTHREAD_H)
+ # Check for pthread setname_np API
+ aom_push_var(CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
+ check_symbol_exists(pthread_setname_np pthread.h _HAS_PTHREAD_SETNAME_NP)
+ aom_pop_var(CMAKE_REQUIRED_DEFINITIONS)
+
+ set(HAVE_PTHREAD_SETNAME_NP ${_HAS_PTHREAD_SETNAME_NP})
+endif()
+
if(NOT WIN32)
aom_push_var(CMAKE_REQUIRED_LIBRARIES "m")
aom_check_c_compiles("fenv_check" "#define _GNU_SOURCE