threadingbuildingblocks: Update to 2020.3.

See package CHANGES for long list of changes.

Tested as an indirect dependency of graphics/blender on netbsd-9 x86-64.
This commit is contained in:
Paul Ripke 2020-08-04 16:29:31 +10:00
parent af8d468451
commit 2e0e3b1427
9 changed files with 70 additions and 319 deletions

View File

@ -1,3 +1,7 @@
Threading Building Blocks (TBB) lets you easily write parallel C++ programs
that take full advantage of multicore performance, that are portable and
composable, and that have future-proof scalability.
Intel Threading Building Blocks (TBB) offers a rich and complete
approach to expressing parallelism in a C++ program. It is a library
that helps you take advantage of multi-core processor performance
without having to be a threading expert. Threading Building Blocks
is not just a threads-replacement library. It represents a higher-level,
task-based parallelism that abstracts platform details and threading
mechanism for performance and scalability.

View File

@ -1,49 +1,50 @@
# $NetBSD$
TBB_VERSION= 2017_20160916
DISTNAME= oneTBB-${PKGVERSION}
PKGNAME= threadingbuildingblocks-${PKGVERSION}
PKGVERSION= 2020.3
CATEGORIES= parallel
MASTER_SITES= ${MASTER_SITE_GITHUB:=oneapi-src/}
GITHUB_PROJECT= oneTBB
GITHUB_TAG= ${PKGVERSION:S/./_U/}
DISTNAME= tbb${TBB_VERSION}oss_src
PKGNAME= threadingbuildingblocks-${TBB_VERSION:S/_/./}
CATEGORIES= devel
MASTER_SITES= https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/
EXTRACT_SUFX= .tgz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/
COMMENT= Intel Threading Building Block
MAINTAINER= stix@stix.id.au
HOMEPAGE= http://threadingbuildingblocks.org/
COMMENT= Library that provides thread building blocks
LICENSE= apache-2.0
WRKSRC= ${WRKDIR}/tbb${TBB_VERSION}oss
ONLY_FOR_PLATFORM= *-*-aarch64 *-*-x86_64 *-*-earmv6 *-*-earmv7 *-*-i386
USE_LANGUAGES= c c++
USE_TOOLS+= gmake pax bash
GCC_REQD+= 5.3 # c++11
BUILD_TARGET= # empty, all runs tests and it take a lot of time
MAKE_FLAGS+= stdver=c++11
INSTALLATION_DIRS+= include/tbb lib
USE_TOOLS+= gmake pax
BUILD_TARGET= default
TEST_TARGET= test
SUBST_CLASSES+= bash
SUBST_STAGE.bash= pre-build
SUBST_FILES.bash= build/FreeBSD.inc
SUBST_FILES.bash+= build/AIX.inc
SUBST_FILES.bash+= build/mic.offload.inc
SUBST_FILES.bash+= build/SunOS.inc
SUBST_FILES.bash+= build/macos.inc
SUBST_FILES.bash+= build/linux.inc
SUBST_FILES.bash+= build/netbsd.inc
SUBST_MESSAGE.bash= Run bash script with bash.
SUBST_SED.bash= -e "s|TEST_LAUNCHER=sh|TEST_LAUNCHER=${BASH}|1"
.include "../../mk/bsd.prefs.mk"
.if ${OPSYS} == Linux
BUILD_OPSYS= linux
.else
BUILD_OPSYS= ${OPSYS}
.endif
INSTALLATION_DIRS= include/tbb lib
# Docs are doxygen, but the detailed documentation appears to have moved online.
#
#BUILD_DEPENDS+= doxygen-[0-9]*:../../devel/doxygen
post-extract:
${CP} ${WRKSRC}/build/FreeBSD.inc ${WRKSRC}/build/NetBSD.inc; \
${CP} ${WRKSRC}/build/FreeBSD.clang.inc ${WRKSRC}/build/NetBSD.clang.inc; \
${CP} ${WRKSRC}/build/FreeBSD.gcc.inc ${WRKSRC}/build/NetBSD.gcc.inc;
do-install:
.for file in libtbb.so.2 libtbbmalloc.so.2 libtbbmalloc_proxy.so.2
cd ${WRKSRC}/build/netbsd*release/ && \
${INSTALL_LIB} ${file} ${DESTDIR}${PREFIX}/lib
.endfor
cd ${WRKSRC}/include && ${PAX} -rw . ${DESTDIR}${PREFIX}/include
cd ${WRKSRC}; \
${INSTALL_LIB} build/${BUILD_OPSYS}*release/libtbb.so \
${DESTDIR}${PREFIX}/lib; \
${INSTALL_LIB} build/${BUILD_OPSYS}*release/libtbbmalloc.so \
${DESTDIR}${PREFIX}/lib; \
cd ${WRKSRC}/include/tbb/ && pax -rw . ${DESTDIR}${PREFIX}/include/tbb/;
.include "../../mk/bsd.pkg.mk"

View File

@ -1,13 +1,11 @@
@comment $NetBSD$
include/index.html
include/serial/tbb/parallel_for.h
include/serial/tbb/tbb_annotate.h
include/tbb/aggregator.h
include/tbb/aligned_space.h
include/tbb/atomic.h
include/tbb/blocked_range.h
include/tbb/blocked_range2d.h
include/tbb/blocked_range3d.h
include/tbb/blocked_rangeNd.h
include/tbb/cache_aligned_allocator.h
include/tbb/combinable.h
include/tbb/compat/condition_variable
@ -16,8 +14,10 @@ include/tbb/compat/thread
include/tbb/compat/tuple
include/tbb/concurrent_hash_map.h
include/tbb/concurrent_lru_cache.h
include/tbb/concurrent_map.h
include/tbb/concurrent_priority_queue.h
include/tbb/concurrent_queue.h
include/tbb/concurrent_set.h
include/tbb/concurrent_unordered_map.h
include/tbb/concurrent_unordered_set.h
include/tbb/concurrent_vector.h
@ -28,28 +28,41 @@ include/tbb/flow_graph_abstractions.h
include/tbb/flow_graph_opencl_node.h
include/tbb/global_control.h
include/tbb/index.html
include/tbb/info.h
include/tbb/internal/_aggregator_impl.h
include/tbb/internal/_allocator_traits.h
include/tbb/internal/_concurrent_queue_impl.h
include/tbb/internal/_concurrent_skip_list_impl.h
include/tbb/internal/_concurrent_unordered_impl.h
include/tbb/internal/_deprecated_header_message_guard.h
include/tbb/internal/_flow_graph_async_msg_impl.h
include/tbb/internal/_flow_graph_body_impl.h
include/tbb/internal/_flow_graph_cache_impl.h
include/tbb/internal/_flow_graph_impl.h
include/tbb/internal/_flow_graph_indexer_impl.h
include/tbb/internal/_flow_graph_item_buffer_impl.h
include/tbb/internal/_flow_graph_join_impl.h
include/tbb/internal/_flow_graph_node_impl.h
include/tbb/internal/_flow_graph_node_set_impl.h
include/tbb/internal/_flow_graph_nodes_deduction.h
include/tbb/internal/_flow_graph_streaming_node.h
include/tbb/internal/_flow_graph_tagged_buffer_impl.h
include/tbb/internal/_flow_graph_trace_impl.h
include/tbb/internal/_flow_graph_types_impl.h
include/tbb/internal/_mutex_padding.h
include/tbb/internal/_node_handle_impl.h
include/tbb/internal/_range_iterator.h
include/tbb/internal/_tbb_hash_compare_impl.h
include/tbb/internal/_tbb_strings.h
include/tbb/internal/_tbb_trace_impl.h
include/tbb/internal/_tbb_windef.h
include/tbb/internal/_template_helpers.h
include/tbb/internal/_warning_suppress_disable_notice.h
include/tbb/internal/_warning_suppress_enable_notice.h
include/tbb/internal/_x86_eliding_mutex_impl.h
include/tbb/internal/_x86_rtm_rw_mutex_impl.h
include/tbb/machine/gcc_armv7.h
include/tbb/iterators.h
include/tbb/machine/gcc_arm.h
include/tbb/machine/gcc_generic.h
include/tbb/machine/gcc_ia32_common.h
include/tbb/machine/gcc_itsx.h
@ -68,7 +81,6 @@ include/tbb/machine/sunos_sparc.h
include/tbb/machine/windows_api.h
include/tbb/machine/windows_ia32.h
include/tbb/machine/windows_intel64.h
include/tbb/machine/xbox360_ppc.h
include/tbb/memory_pool.h
include/tbb/mutex.h
include/tbb/null_mutex.h
@ -99,6 +111,7 @@ include/tbb/task_scheduler_observer.h
include/tbb/tbb.h
include/tbb/tbb_allocator.h
include/tbb/tbb_config.h
include/tbb/tbb_disable_exceptions.h
include/tbb/tbb_exception.h
include/tbb/tbb_machine.h
include/tbb/tbb_profiling.h
@ -106,6 +119,5 @@ include/tbb/tbb_stddef.h
include/tbb/tbb_thread.h
include/tbb/tbbmalloc_proxy.h
include/tbb/tick_count.h
lib/libtbb.so.2
lib/libtbbmalloc.so.2
lib/libtbbmalloc_proxy.so.2
lib/libtbb.so
lib/libtbbmalloc.so

View File

@ -5,7 +5,7 @@ BUILDLINK_TREE+= threadingbuildingblocks
.if !defined(THREADINGBUILDINGBLOCKS_BUILDLINK3_MK)
THREADINGBUILDINGBLOCKS_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.threadingbuildingblocks+= threadingbuildingblocks>=2017.20160916
BUILDLINK_API_DEPENDS.threadingbuildingblocks+= threadingbuildingblocks>=2018.5
BUILDLINK_PKGSRCDIR.threadingbuildingblocks?= ../../wip/threadingbuildingblocks
.endif # THREADINGBUILDINGBLOCKS_BUILDLINK3_MK

View File

@ -1,10 +1,6 @@
$NetBSD$
SHA1 (tbb2017_20160916oss_src.tgz) = 7341672991af0675f22c1c3292fcc70d2e3cb837
RMD160 (tbb2017_20160916oss_src.tgz) = 78b0e35215ad225fa2e9ca2595ddef1683355e4a
SHA512 (tbb2017_20160916oss_src.tgz) = c2d2f36946f86d599a5d827008e0c6388ee17c51a60e08a15b809f0e2bb6b4137d485f6cc32f05cd7bbf0edbbf2c80bae185454f0bca9d00151df0ea79dfcbac
Size (tbb2017_20160916oss_src.tgz) = 2938546 bytes
SHA1 (patch-build_common.inc) = 78bfc2d2b1857b4fcee35cbbfd2febb67bbb0aaa
SHA1 (patch-build_netbsd.gcc.inc) = d7cd7501b528b582f9dcc6bc13fd864dbdb324ad
SHA1 (patch-build_netbsd.inc) = afe3016f90ab4d0738c575a45f9cb2bfe6c5849c
SHA1 (patch-build_version__info__netbsd.sh) = f760f259ca5cf484e4f03e234eb9ee6e1afdfbae
SHA1 (oneTBB-2020.3.tar.gz) = 82dd122b9a47dccb5aa8c3c2ab598bbf6e9cef3b
RMD160 (oneTBB-2020.3.tar.gz) = 535dd90287f1f752f299e7f222cacfaedd9a08f5
SHA512 (oneTBB-2020.3.tar.gz) = 04c4b5501418792827190691d03d20d4dc1fd3cbbcf459a4d40c5c2281d964e658f31f133ad3907b78e17ed04f4ff16728ed89487ed0ce2cb239f23feb34bd87
Size (oneTBB-2020.3.tar.gz) = 2639788 bytes

View File

@ -1,14 +0,0 @@
$NetBSD$
--- build/common.inc.orig 2016-09-22 10:28:03.000000000 +0000
+++ build/common.inc
@@ -36,6 +36,9 @@ ifndef tbb_os
ifeq ($(OS), Darwin)
export tbb_os=macos
endif
+ ifeq ($(OS), NetBSD)
+ export tbb_os=netbsd
+ endif
endif # !tbb_os

View File

@ -1,94 +0,0 @@
$NetBSD$
--- build/netbsd.gcc.inc.orig 2016-10-20 01:46:08.872245327 +0000
+++ build/netbsd.gcc.inc
@@ -0,0 +1,89 @@
+# Copyright (c) 2005-2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+WARNING_SUPPRESS = -Wno-parentheses
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread
+LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+C_FLAGS = $(CPLUS_FLAGS)
+
+# gcc 6.0 and later have -flifetime-dse option that controls
+# elimination of stores done outside the object lifetime
+ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
+ # keep pre-contruction stores for zero initialization
+ DSE_KEY = -flifetime-dse=1
+endif
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (ia64,$(arch))
+ ASM=as
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+ MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------

View File

@ -1,117 +0,0 @@
$NetBSD$
--- build/netbsd.inc.orig 2016-10-20 01:46:08.876367387 +0000
+++ build/netbsd.inc
@@ -0,0 +1,112 @@
+# Copyright (c) 2005-2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+####### Detections and Commands ###############################################
+
+ifeq (icc,$(compiler))
+ export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&1 | grep 'Version')
+ ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
+ export arch:=ia32
+ else
+ ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
+ export arch:=intel64
+ else
+ ifneq (,$(findstring IA-64, $(COMPILER_VERSION)))
+ export arch:=ia64
+ endif
+ endif
+ endif
+ ifeq (,$(arch))
+ $(warning "Unknown Intel compiler")
+ endif
+endif
+
+ifndef arch
+ uname_m:=$(shell uname -m)
+ ifeq ($(uname_m),i386)
+ export arch:=ia32
+ endif
+ ifeq ($(uname_m),amd64)
+ export arch:=intel64
+ endif
+ ifndef arch
+ export arch:=$(uname_m)
+ endif
+endif
+
+ifndef runtime
+ export gcc_version:=$(shell gcc -dumpversion)
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r)
+ export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CMD=sh -c
+CWD=$(shell pwd)
+CP=cp
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_netbsd.sh $(VERSION_FLAGS) >version_string.ver
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+ export LD_LIBRARY_PATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+MALLOC_DLL?=$(DLL)
+LIBEXT = so
+SONAME_SUFFIX =$(shell grep TBB_COMPATIBLE_INTERFACE_VERSION $(tbb_root)/include/tbb/tbb_stddef.h | egrep -o [0-9.]+)
+
+TBB.LST =
+TBB.DEF =
+
+TBB.DLL = $(TBB_NO_VERSION.DLL).$(SONAME_SUFFIX)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+LINK_TBB.LIB = $(TBB_NO_VERSION.DLL)
+
+MALLOC_NO_VERSION.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(MALLOC_DLL)
+MALLOC.DLL = $(MALLOC_NO_VERSION.DLL).$(SONAME_SUFFIX)
+MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
+LINK_MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
+
+MALLOCPROXY_NO_VERSION.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY.DLL = $(MALLOCPROXY_NO_VERSION.DLL).$(SONAME_SUFFIX)
+MALLOCPROXY.LIB = $(MALLOCPROXY_NO_VERSION.DLL)
+LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
+
+RML_NO_VERSION.DLL = libirml$(DEBUG_SUFFIX).$(DLL)
+RML.DLL = $(RML_NO_VERSION.DLL).1
+RML.LIB = $(RML_NO_VERSION.DLL)
+
+TEST_LAUNCHER=/usr/pkg/bin/bash $(tbb_root)/build/test_launcher.sh $(largs)
+
+OPENCL.LIB = -lOpenCL

View File

@ -1,37 +0,0 @@
$NetBSD$
--- build/version_info_netbsd.sh.orig 2016-10-20 01:46:08.880514594 +0000
+++ build/version_info_netbsd.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# Copyright (c) 2005-2016 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+#
+#
+
+# Script used to generate version info string
+echo "#define __TBB_VERSION_STRINGS(N) \\"
+echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
+echo '#N": BUILD_OS'"\t\t"`uname -sr`'" ENDL \'
+echo '#N": BUILD_KERNEL'"\t"`uname -r`'" ENDL \'
+echo '#N": BUILD_GCC'"\t\t"`${CXX} -dumpversion`'" ENDL \'
+[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
+echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | head -n 1`'" ENDL \'
+echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
+echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
+echo ""
+echo "#define __TBB_DATETIME \""`date -u`"\""