added onetbb
This commit is contained in:
parent
dac0e1a5e5
commit
c08e70d5c1
3 changed files with 88 additions and 0 deletions
36
pkgs/tbb/build.sh
Normal file
36
pkgs/tbb/build.sh
Normal 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
|
||||||
|
}
|
38
pkgs/tbb/musl-malloc-proxy.patch
Normal file
38
pkgs/tbb/musl-malloc-proxy.patch
Normal 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
14
pkgs/tbb/musl-rtld.patch
Normal 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;
|
||||||
|
}
|
Loading…
Reference in a new issue