added onetbb

This commit is contained in:
Ella-0 2021-06-29 23:30:28 +01:00
parent dac0e1a5e5
commit c08e70d5c1
3 changed files with 88 additions and 0 deletions

36
pkgs/tbb/build.sh Normal file
View file

@ -0,0 +1,36 @@
pkgname=tbb
pkgver=master
fetch() {
curl -L "https://github.com/oneapi-src/oneTBB/archive/refs/heads/master.tar.gz" -o $pkgname-$pkgver.tar.xz
tar -xf $pkgname-$pkgver.tar.xz
mv oneTBB-$pkgver $pkgname-$pkgver
mkdir $pkgname-$pkgver/build
cd $pkgname-$pkgver
patch -p1 < ../../musl-malloc-proxy.patch
patch -p1 < ../../musl-rtld.patch
}
build() {
cd $pkgname-$pkgver
cd build
cmake -G Ninja ../ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DTBB_TEST=OFF \
-DCMAKE_CXX_FLAGS=-Wno-unused-command-line-argument
samu
}
package() {
cd $pkgname-$pkgver
cd build
DESTDIR=$pkgdir samu install
}
license() {
cd $pkgname-$pkgver
cat LICENSE.txt
# cat COPYING
}

View file

@ -0,0 +1,38 @@
--- a/src/tbbmalloc_proxy/proxy.cpp
+++ b/src/tbbmalloc_proxy/proxy.cpp
@@ -24,7 +24,8 @@
// of aligned_alloc as required by new C++ standard, this makes it hard to
// redefine aligned_alloc here. However, running on systems with new libc
// version, it still needs it to be redefined, thus tricking system headers
-#if defined(__GLIBC_PREREQ) && !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
+#if defined(__GLIBC_PREREQ)
+#if !__GLIBC_PREREQ(2, 16) && _GLIBCXX_HAVE_ALIGNED_ALLOC
// tell <cstdlib> that there is no aligned_alloc
#undef _GLIBCXX_HAVE_ALIGNED_ALLOC
// trick <stdlib.h> to define another symbol instead
@@ -32,7 +33,8 @@
// Fix the state and undefine the trick
#include <cstdlib>
#undef aligned_alloc
-#endif // defined(__GLIBC_PREREQ)&&!__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
+#endif // !__GLIBC_PREREQ(2, 16)&&_GLIBCXX_HAVE_ALIGNED_ALLOC
+#endif // defined(__GLIBC_PREREQ)
#endif // __linux__ && !__ANDROID__
#include "proxy.h"
@@ -253,6 +255,7 @@
return 1;
}
+#ifdef __GLIBC__
struct mallinfo mallinfo() __THROW
{
struct mallinfo m;
@@ -260,6 +263,7 @@
return m;
}
+#endif
#if __ANDROID__
// Android doesn't have malloc_usable_size, provide it to be compatible

14
pkgs/tbb/musl-rtld.patch Normal file
View file

@ -0,0 +1,14 @@
--- a/src/tbb/dynamic_link.cpp
+++ b/src/tbb/dynamic_link.cpp
@@ -413,9 +413,9 @@
int flags = RTLD_NOW;
if (local_binding) {
flags = flags | RTLD_LOCAL;
-#if __linux__ && !__ANDROID__ && !__TBB_USE_ADDRESS_SANITIZER
+#if __linux__ && defined(__GLIBC__) && !__TBB_USE_ADDRESS_SANITIZER
flags = flags | RTLD_DEEPBIND;
-#endif /*__linux__ && !__ANDROID__ && !__TBB_USE_ADDRESS_SANITIZER*/
+#endif /*__linux__ && defined(__GLIBC__) && !__TBB_USE_ADDRESS_SANITIZER*/
} else {
flags = flags | RTLD_GLOBAL;
}