Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/onetbb
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2023-03-17 09:33:08 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2023-03-17 09:33:08 +0100
commit860055a5f5938523312847a9fbb9fc0377060435 (patch)
treefb437eac16dc985f327761ea1cfd77da8afd13bb /extra/onetbb
parentae361398ea855fc6cb4e8c5622f7c335e4c62727 (diff)
extra/onetbb: renamed upstream from tbb
Diffstat (limited to 'extra/onetbb')
-rw-r--r--extra/onetbb/PKGBUILD44
-rw-r--r--extra/onetbb/oneTBB-2021.5.0-no-waitpkg.patch12
2 files changed, 56 insertions, 0 deletions
diff --git a/extra/onetbb/PKGBUILD b/extra/onetbb/PKGBUILD
new file mode 100644
index 00000000..ea8c3d64
--- /dev/null
+++ b/extra/onetbb/PKGBUILD
@@ -0,0 +1,44 @@
+# disable waitpkg extensions (error is inline failing in _tpause)
+# (see https://github.com/oneapi-src/oneTBB/issues/370 and
+# https://github.com/oneapi-src/oneTBB/pull/609/commits/542a27fa1cfafaf76772e793549d9f4d288d03a9)
+source+=('oneTBB-2021.5.0-no-waitpkg.patch')
+sha512sums+=('918cb0418118de415eb9a7872a4938d15aec8b1ea096bc2996bc7390cd9c73cdc551f15a590b518ec1decfb458d8a488338625a81c26287cba184352fb950f16')
+eval "$(
+ {
+ declare -f prepare || \
+ printf 'prepare() { cd ${srcdir}/oneTBB-${pkgver}\n}\n'
+ } \
+ | sed '
+ $i patch -d "${srcdir}/oneTBB-${pkgver}" -p1 -i "$srcdir/oneTBB-2021.5.0-no-waitpkg.patch"
+ '
+)"
+
+# -latomic on i486
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s/cmake /cmake -DCMAKE_CXX_STANDARD_LIBRARIES=-latomic /
+ '
+ )"
+fi
+
+# just for now we don't test on i486, we have to do real tests on a
+# real old CPU, in chroots the tests are running, on the real thing
+# they hang (presumably some opcodes are missing or not doing exactly
+# what they do in emulation)..
+# for now it's more important to unstuck the package and build the
+# rest on top
+if [ "$CARCH" == 'i486' ]; then
+ unset check
+fi
+
+# ignore some errors in test
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ /CXXFLAGS/ a export CXXFLAGS="$CXXFLAGS -Wno-error=array-bounds -Wno-error=use-after-free"
+ '
+ )"
+fi
diff --git a/extra/onetbb/oneTBB-2021.5.0-no-waitpkg.patch b/extra/onetbb/oneTBB-2021.5.0-no-waitpkg.patch
new file mode 100644
index 00000000..ab65e99f
--- /dev/null
+++ b/extra/onetbb/oneTBB-2021.5.0-no-waitpkg.patch
@@ -0,0 +1,12 @@
+diff -rauN oneTBB-2021.5.0/cmake/compilers/GNU.cmake oneTBB-2021.5.0-no-waitpkg/cmake/compilers/GNU.cmake
+--- oneTBB-2021.5.0/cmake/compilers/GNU.cmake 2021-12-17 14:40:54.000000000 +0100
++++ oneTBB-2021.5.0-no-waitpkg/cmake/compilers/GNU.cmake 2022-06-29 07:45:39.996610962 +0200
+@@ -36,7 +36,7 @@
+ endif()
+
+ # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
+-if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)")
++if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)")
+ set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<AND:$<NOT:$<CXX_COMPILER_ID:Intel>>,$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},11.0>>>:-mwaitpkg>)
+ endif()
+