diff options
Diffstat (limited to 'development/oneTBB')
-rw-r--r-- | development/oneTBB/README | 13 | ||||
-rw-r--r-- | development/oneTBB/includes.patch | 10 | ||||
-rw-r--r-- | development/oneTBB/oneTBB.SlackBuild | 128 | ||||
-rw-r--r-- | development/oneTBB/oneTBB.info | 10 | ||||
-rw-r--r-- | development/oneTBB/slack-desc | 19 | ||||
-rw-r--r-- | development/oneTBB/unused.patch | 39 |
6 files changed, 219 insertions, 0 deletions
diff --git a/development/oneTBB/README b/development/oneTBB/README new file mode 100644 index 0000000000..7e515c581b --- /dev/null +++ b/development/oneTBB/README @@ -0,0 +1,13 @@ + oneTBB is a flexible C++ library that simplifies the work of adding +parallelism to complex applications, even if you are not a threading +expert. + + The library lets you easily write parallel programs that take full +advantage of the multi-core performance. Such programs are portable, +composable and have a future-proof scalability. oneTBB provides you +with functions, interfaces, and classes to parallelize and scale the +code. All you have to do is to use the templates. + + For enabling Python build set the variable PYTHON=yes + + Optional: hwloc (auto-detect) diff --git a/development/oneTBB/includes.patch b/development/oneTBB/includes.patch new file mode 100644 index 0000000000..4e83198618 --- /dev/null +++ b/development/oneTBB/includes.patch @@ -0,0 +1,10 @@ +--- oneTBB-2021.6.0.orig/test/common/utils_assert.h 2023-07-24 20:21:49.362670251 +0900 ++++ oneTBB-2021.6.0/test/common/utils_assert.h 2023-07-24 20:22:27.350547548 +0900 +@@ -19,6 +19,7 @@ + + #include "config.h" + #include "utils_report.h" ++#include <cstdlib> + + #define REPORT_FATAL_ERROR REPORT + diff --git a/development/oneTBB/oneTBB.SlackBuild b/development/oneTBB/oneTBB.SlackBuild new file mode 100644 index 0000000000..6288ed11c3 --- /dev/null +++ b/development/oneTBB/oneTBB.SlackBuild @@ -0,0 +1,128 @@ +#!/bin/bash + +# Slackware build script for oneTBB + +# Copyright 2022 William PC - Seattle, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=oneTBB +VERSION=${VERSION:-2021.6.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# Missing include +patch -p1 < $CWD/includes.patch +# Remove unused variables (upstream 17b7834, 274f68e) +patch -p1 < $CWD/unused.patch + +# enable Python +if [ "${PYTHON:-no}" == "yes" ];then + OPTS="-DTBB4PY_BUILD=ON" +fi + +mkdir -p build +cd build +CC=/usr/bin/clang \ +CXX=/usr/bin/clang++ \ + cmake \ + -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \ + -DCMAKE_INSTALL_MANDIR=/usr/man \ + -DCMAKE_INSTALL_DOCDIR=/usr/doc/$PRGNAM-$VERSION \ + $OPTS \ + -DCMAKE_BUILD_TYPE=Release .. + make + make install/strip DESTDIR=$PKG +cd .. + +# install examples +mkdir -p $PKG/usr/share/$PRGNAM-$VERSION +cp -a examples $PKG/usr/share/$PRGNAM-$VERSION + + +# Don't ship .la files: +rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + CONTRIBUTING.md LICENSE.txt README.md RELEASE_NOTES.md doc \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/development/oneTBB/oneTBB.info b/development/oneTBB/oneTBB.info new file mode 100644 index 0000000000..87d7361d77 --- /dev/null +++ b/development/oneTBB/oneTBB.info @@ -0,0 +1,10 @@ +PRGNAM="oneTBB" +VERSION="2021.6.0" +HOMEPAGE="https://www.oneapi.io" +DOWNLOAD="https://github.com/oneapi-src/oneTBB/archive/v2021.6.0/oneTBB-2021.6.0.tar.gz" +MD5SUM="f0fc961e3c3851b52db61c2d262e6b95" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="William PC" +EMAIL="w_calandrini[at]hotmail[dot]com" diff --git a/development/oneTBB/slack-desc b/development/oneTBB/slack-desc new file mode 100644 index 0000000000..cd2e6beda1 --- /dev/null +++ b/development/oneTBB/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +oneTBB: oneTBB (oneAPI Threading Building Blocks) +oneTBB: +oneTBB: +oneTBB: oneTBB is a flexible C++ library that simplifies the work of adding +oneTBB: parallelism to complex applications, even if you are not a threading +oneTBB: expert. +oneTBB: +oneTBB: +oneTBB: +oneTBB: +oneTBB: diff --git a/development/oneTBB/unused.patch b/development/oneTBB/unused.patch new file mode 100644 index 0000000000..92ab7dd1be --- /dev/null +++ b/development/oneTBB/unused.patch @@ -0,0 +1,39 @@ +--- oneTBB-2021.6.0.orig/test/conformance/conformance_flowgraph.h 2023-12-17 14:34:12.234366082 +0900 ++++ oneTBB-2021.6.0/test/conformance/conformance_flowgraph.h 2023-12-17 15:27:02.512416476 +0900 +@@ -79,8 +79,9 @@ + template<typename V> + typename std::enable_if<!std::is_default_constructible<V>::value, std::vector<V>>::type get_values( test_push_receiver<V>& rr ) { + std::vector<V> messages; +- int val = 0; +- for(V tmp(0); rr.try_get(tmp); ++val) { ++ V tmp(0); ++ ++ while (rr.try_get(tmp)) { + messages.push_back(tmp); + } + return messages; +@@ -89,8 +90,9 @@ + template<typename V> + typename std::enable_if<std::is_default_constructible<V>::value, std::vector<V>>::type get_values( test_push_receiver<V>& rr ) { + std::vector<V> messages; +- int val = 0; +- for(V tmp; rr.try_get(tmp); ++val) { ++ V tmp; ++ ++ while (rr.try_get(tmp)) { + messages.push_back(tmp); + } + return messages; +--- oneTBB-2021.6.0.orig/test/conformance/conformance_join_node.cpp 2023-12-17 14:34:12.235366077 +0900 ++++ oneTBB-2021.6.0/test/conformance/conformance_join_node.cpp 2023-12-17 15:45:20.864114506 +0900 +@@ -28,8 +28,8 @@ + + std::vector<my_input_tuple> get_values( conformance::test_push_receiver<my_input_tuple>& rr ) { + std::vector<my_input_tuple> messages; +- int val = 0; +- for(my_input_tuple tmp(0, 0.f, input_msg(0)); rr.try_get(tmp); ++val) { ++ my_input_tuple tmp(0, 0.f, input_msg(0)); ++ while(rr.try_get(tmp)) { + messages.push_back(tmp); + } + return messages; |