forked from mirrors/nixpkgs
6ffc0fd601
PyTorch 1.6.0 has updated the vendored pthreadpool library, which has recently added support for Grand Central Dispatch. Unfortunately, it uses functionality (DISPATCH_APPLY_AUTO) that is only available since macOS 10.13, whereas we are still using 10.12 libraries. We can't directly pass through option to vendored libraries, since the setup.py scripts creates/filters the options that are passed to CMake. So, instead, this adds a small patch that disables the GCD functionality in pthreadpool.
46 lines
2.2 KiB
Diff
46 lines
2.2 KiB
Diff
diff --git a/third_party/pthreadpool/CMakeLists.txt b/third_party/pthreadpool/CMakeLists.txt
|
|
index 0db3264..1ba91c4 100644
|
|
--- a/third_party/pthreadpool/CMakeLists.txt
|
|
+++ b/third_party/pthreadpool/CMakeLists.txt
|
|
@@ -74,9 +74,7 @@ IF(EMSCRIPTEN)
|
|
LIST(APPEND PTHREADPOOL_SRCS src/shim.c)
|
|
ELSE()
|
|
LIST(APPEND PTHREADPOOL_SRCS src/portable-api.c src/memory.c)
|
|
- IF(APPLE AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd"))
|
|
- LIST(APPEND PTHREADPOOL_SRCS src/gcd.c)
|
|
- ELSEIF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
|
|
+ IF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
|
|
LIST(APPEND PTHREADPOOL_SRCS src/windows.c)
|
|
ELSE()
|
|
LIST(APPEND PTHREADPOOL_SRCS src/pthreads.c)
|
|
@@ -111,10 +109,6 @@ ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "futex")
|
|
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=1)
|
|
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
|
|
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
|
|
-ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd")
|
|
- TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
|
|
- TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=1)
|
|
- TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
|
|
ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event")
|
|
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
|
|
TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
|
|
diff --git a/third_party/pthreadpool/src/threadpool-common.h b/third_party/pthreadpool/src/threadpool-common.h
|
|
index ca84744..244d0ca 100644
|
|
--- a/third_party/pthreadpool/src/threadpool-common.h
|
|
+++ b/third_party/pthreadpool/src/threadpool-common.h
|
|
@@ -14,14 +14,6 @@
|
|
#endif
|
|
#endif
|
|
|
|
-#ifndef PTHREADPOOL_USE_GCD
|
|
- #if defined(__APPLE__)
|
|
- #define PTHREADPOOL_USE_GCD 1
|
|
- #else
|
|
- #define PTHREADPOOL_USE_GCD 0
|
|
- #endif
|
|
-#endif
|
|
-
|
|
#ifndef PTHREADPOOL_USE_EVENT
|
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
#define PTHREADPOOL_USE_EVENT 1
|