summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch')
-rw-r--r--dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch b/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch
new file mode 100644
index 000000000000..111bbf123d9a
--- /dev/null
+++ b/dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/832700
+https://github.com/oneapi-src/oneTBB/commit/6a15b64093c51ddc00bdf4a6b49d4bbec1574a12
+
+From: Rui Ueyama <rui314@gmail.com>
+Date: Fri, 4 Feb 2022 19:32:11 +0900
+Subject: [PATCH] Make tbb compile with musl libc (#748)
+
+TBB resumable tasks are implemented using getcontext() and setcontext()
+on Unix-like systems. These functions are deprecated in the recent
+versions of POSIX and may not exist. musl libc does not provide these
+functions.
+
+There's unfortunately no way to detect musl (musl intentionally do not
+define macros like `__MUSL__`), so __TBB_RESUMABLE_TASKS is defined if
+`__GLIBC__`. glibc-compatible libc's such as uClibc defines `__GLIBC__`,
+so it should work as a catch-all condition.
+
+Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>
+--- a/include/oneapi/tbb/detail/_config.h
++++ b/include/oneapi/tbb/detail/_config.h
+@@ -268,7 +268,7 @@
+ #define __TBB_CPP20_COMPARISONS_PRESENT __TBB_CPP20_PRESENT
+ #endif
+
+-#define __TBB_RESUMABLE_TASKS (!__TBB_WIN8UI_SUPPORT && !__ANDROID__ && !__QNXNTO__)
++#define __TBB_RESUMABLE_TASKS (!__TBB_WIN8UI_SUPPORT && !__ANDROID__ && !__QNXNTO__ && (!__linux__ || __GLIBC__))
+
+ /* This macro marks incomplete code or comments describing ideas which are considered for the future.
+ * See also for plain comment with TODO and FIXME marks for small improvement opportunities.
+