aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/tbb-fix-test-on-aarch64.patch35
-rw-r--r--gnu/packages/tbb.scm4
3 files changed, 40 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 146b2a116a..5c4d35fc36 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1855,6 +1855,7 @@ dist_patch_DATA = \
%D%/packages/patches/tao-fix-parser-types.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \
+ %D%/packages/patches/tbb-fix-test-on-aarch64.patch \
%D%/packages/patches/tcc-boot-0.9.27.patch \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
diff --git a/gnu/packages/patches/tbb-fix-test-on-aarch64.patch b/gnu/packages/patches/tbb-fix-test-on-aarch64.patch
new file mode 100644
index 0000000000..3a6003591e
--- /dev/null
+++ b/gnu/packages/patches/tbb-fix-test-on-aarch64.patch
@@ -0,0 +1,35 @@
+From 013035b4e9af39f506e87ae6b755c3363e768d4d Mon Sep 17 00:00:00 2001
+From: Vladislav Shchapov <phprus@gmail.com>
+Date: Thu, 23 Dec 2021 19:17:24 +0500
+Subject: [PATCH] Fix issue #687 (test_eh_thread) (#697)
+
+Signed-off-by: Vladislav Shchapov <phprus@gmail.com>
+---
+ test/tbb/test_eh_thread.cpp | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/test/tbb/test_eh_thread.cpp b/test/tbb/test_eh_thread.cpp
+index aa6d764d..af291f48 100644
+--- a/test/tbb/test_eh_thread.cpp
++++ b/test/tbb/test_eh_thread.cpp
+@@ -36,6 +36,7 @@
+ // TODO: enable limitThreads with sanitizer under docker
+ #if TBB_USE_EXCEPTIONS && !_WIN32 && !__ANDROID__
+
++#include <limits.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/resource.h>
+@@ -73,7 +74,8 @@ public:
+ mValid = false;
+ pthread_attr_t attr;
+ // Limit the stack size not to consume all virtual memory on 32 bit platforms.
+- if (pthread_attr_init(&attr) == 0 && pthread_attr_setstacksize(&attr, 100*1024) == 0) {
++ std::size_t stacksize = utils::max(128*1024, PTHREAD_STACK_MIN);
++ if (pthread_attr_init(&attr) == 0 && pthread_attr_setstacksize(&attr, stacksize) == 0) {
+ mValid = pthread_create(&mHandle, &attr, thread_routine, /* arg = */ nullptr) == 0;
+ }
+ }
+--
+2.34.0
+
diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm
index e5d8394f5f..ef92e6db69 100644
--- a/gnu/packages/tbb.scm
+++ b/gnu/packages/tbb.scm
@@ -41,6 +41,10 @@
(sha256
(base32
"0ih727g802j9lvwkqhw021bk1wb7xlvfgd0vl1i6jng4am1wv7vq"))))
+ (patches (list
+ ;; Backport an upstream commit that prevents the
+ ;; "test_eh_thread" test failing on AArch64.
+ (search-patch "tbb-fix-test-on-aarch64.patch")))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DTBB_STRICT=OFF"))) ;; Don't fail on warnings