Skip to content

Commit

Permalink
dev-cpp/tbb: fix underlinking on musl
Browse files Browse the repository at this point in the history
Avoid *context APIs.

In theory, may not be needed (shouldn't be) given we've fixed our packaging
of libucontext, but let's do this anyway as the fix is upstream, and it
avoids possible otehr issues.

Bug: rui314/mold#281
Closes: https://bugs.gentoo.org/832700
Signed-off-by: Sam James <[email protected]>
  • Loading branch information
thesamesam committed Feb 7, 2022
1 parent 1d87183 commit d4d7c55
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 0 deletions.
30 changes: 30 additions & 0 deletions dev-cpp/tbb/files/tbb-2021.5.0-musl-setcontext.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
https://bugs.gentoo.org/832700
https://github.com/oneapi-src/oneTBB/commit/6a15b64093c51ddc00bdf4a6b49d4bbec1574a12

From: Rui Ueyama <[email protected]>
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 <[email protected]>
--- 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.

Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-2021.4.0-missing-TBB_machine_fetchadd4.patch
# need to verify this is in master
"${FILESDIR}"/${PN}-2021.5.0-musl-mallinfo.patch
# musl again, should be in.. 2022?
"${FILESDIR}"/${PN}-2021.5.0-musl-setcontext.patch
)

src_configure() {
Expand Down

0 comments on commit d4d7c55

Please sign in to comment.