...
 
Commits (137)
This diff is collapsed.
This diff is collapsed.
Source: tbb
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Uploaders: Steve Capper <steven.capper@gmail.com>,
Mo Zhou <cdluminate@gmail.com>
Section: libs
Priority: optional
Build-Depends: debhelper (>= 11~),
libjs-jquery,
dh-exec,
gdb
Build-Depends-Indep: doxygen,
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/science-team/tbb
Vcs-Git: https://salsa.debian.org/science-team/tbb.git
Homepage: https://www.threadingbuildingblocks.org/
Package: libtbb-dev
Architecture: linux-any
Multi-Arch: same
Section: libdevel
Depends: libtbb2 (= ${binary:Version}),
${misc:Depends}
Suggests: tbb-examples,
libtbb-doc
Description: parallelism library for C++ - development files
TBB is a library that helps you leverage multi-core processor
performance without having to be a threading expert. It represents a
higher-level, task-based parallelism that abstracts platform details
and threading mechanism for performance and scalability.
.
(Note: if you are a user of the i386 architecture, i.e., 32-bit Intel
or compatible hardware, this package only supports Pentium4-compatible
and higher processors.)
.
This package includes the TBB development files.
Package: libtbb2
Architecture: linux-any
Multi-Arch: same
Depends: ${shlibs:Depends},
${misc:Depends}
Pre-Depends: ${misc:Pre-Depends}
Description: parallelism library for C++ - runtime files
TBB is a library that helps you leverage multi-core processor
performance without having to be a threading expert. It represents a
higher-level, task-based parallelism that abstracts platform details
and threading mechanism for performance and scalability.
.
(Note: if you are a user of the i386 architecture, i.e., 32-bit Intel
or compatible hardware, this package only supports Pentium4-compatible
and higher processors.)
.
This package includes the TBB runtime files.
Package: libtbb-doc
Architecture: all
Section: doc
Depends: ${misc:Depends},
libjs-jquery
Recommends: libtbb-dev,
tbb-examples
Description: parallelism library for C++ - documentation
TBB is a library that helps you leverage multi-core processor
performance without having to be a threading expert. It represents a
higher-level, task-based parallelism that abstracts platform details
and threading mechanism for performance and scalability.
.
This package includes the TBB documentation files.
Package: tbb-examples
Architecture: linux-any
Section: doc
Depends: ${misc:Depends}
Recommends: libtbb-dev,
libtbb-doc
Description: parallelism library for C++ - example files
TBB is a library that helps you leverage multi-core processor
performance without having to be a threading expert. It represents a
higher-level, task-based parallelism that abstracts platform details
and threading mechanism for performance and scalability.
.
This package includes the TBB example files.
This package was debianized by Roberto C. Sanchez <roberto@connexer.com> on
Fri, 14 Dec 2007 23:10:58 -0500.
It was downloaded from http://threadingbuildingblocks.org
Upstream Author: Intel Corporation
Copyright: Copyright (c) 2005-2017 Intel Corporation
License:
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.
On Debian systems, the complete text of the Apache 2.0 License can be found at
`/usr/share/common-licenses/Apache-2.0'.
The Debian packaging is Copyright (c) 2007-2011, Athena Capital Research
<acr-debian@athenacr.com> and is licensed under the GPL version 2, the complete text
of the GNU General Public License can be fodun on Debian systems at
`/usr/share/common-licenses/GPL-2'.
tbb for Debian
--------------
This is the Intel Threading Building Blocks package. It comes from the
"Commercial Aligned Release" series of TBB releases.
This package ships a pkg-config file in /usr/lib/pkgconfig/tbb.pc. Here is
an example of how it is used:
gcc -o test test.c `pkg-config --libs --cflags tbb`
The examples are located in the tbb-examples package. In order to install
and use them, you want to install that package and run something like this:
cd ~
cp -r /usr/share/doc/tbb-examples/ .
cd tbb-examples
find . -name '*.gz'| xargs gunzip
cd examples
make
-- Roberto C. Sanchez <roberto@connexer.com> Fri, 14 Dec 2007 23:10:58 -0500
doc/Release_Notes.txt
#! /usr/bin/dh-exec
include/tbb usr/include
build/linux_*_release/lib*.so usr/lib/${DEB_HOST_MULTIARCH}
debian/tbb.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig
cmake/* usr/share/cmake/Modules
debian/cmake/* usr/share/cmake/Modules
#! /usr/bin/dh-exec
usr/lib/${DEB_HOST_MULTIARCH}/libtbb.so.2 usr/lib/${DEB_HOST_MULTIARCH}/libtbb.so
usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc.so.2 usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc.so
usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so.2 usr/lib/${DEB_HOST_MULTIARCH}/libtbbmalloc_proxy.so
Document: libtbb-doc
Title: Threading Building Blocks Library Documentation
Author: Intel Corporation
Abstract: Documentation for developing against libtbb
Section: Programming
Format: HTML
Index: /usr/share/doc/libtbb-dev/html/index.html
Files: /usr/share/doc/libtbb-dev/html/*.html
doc/Release_Notes.txt usr/share/doc/libtbb-doc/
/usr/share/javascript/jquery/jquery.js /usr/share/doc/libtbb-dev/html/jquery.js
doc/Release_Notes.txt
#! /usr/bin/dh-exec
build/linux_*_release/lib*.so.* usr/lib/${DEB_HOST_MULTIARCH}
This diff is collapsed.
Description: add debug info
Author: Mathieu Malaterre <malat@debian.org>
Index: tbb/build/linux.inc
===================================================================
--- tbb.orig/build/linux.inc
+++ tbb/build/linux.inc
@@ -34,9 +34,17 @@ endif
ifndef arch
uname_m:=$(shell uname -m)
+ uname_a:=$(shell uname -a)
+ deb_host_arch:=$(shell dpkg-architecture -qDEB_HOST_ARCH)
+ $(warning "uname_m: " $(uname_m))
+ $(warning "uname_a: " $(uname_a))
+ $(warning "deb_host_arch: " $(deb_host_arch))
ifeq ($(uname_m),i686)
export arch:=ia32
endif
+ ifeq ($(uname_m),i686-AT386)
+ export arch:=ia32
+ endif
ifeq ($(uname_m),ia64)
export arch:=ia64
endif
@@ -44,13 +52,21 @@ ifndef arch
export arch:=intel64
endif
ifeq ($(uname_m),sparc64)
- export arch:=sparc
+ export arch:=sparc64
endif
ifeq ($(uname_m),armv7l)
export arch:=armv7
endif
+ ifeq ($(uname_m),ppc)
+ export arch:=ppc32
+ endif
+ ifeq ($(deb_host_arch),x32)
+ export arch:=x32
+ endif
ifndef arch
export arch:=$(uname_m)
+ $(warning "Unknown arch: " $(arch))
+ $(warning "Unknown uname_a: " $(uname_a))
endif
endif
Author: Steve Capper
Last-Update: 2017-07-23 18:23:31 +0100
Description: Reproducible build
Index: tbb/build/linux.inc
===================================================================
--- tbb.orig/build/linux.inc
+++ tbb/build/linux.inc
@@ -79,10 +79,9 @@ endif
ifndef runtime
export gcc_version:=$(shell gcc -dumpfullversion -dumpversion)
os_version:=$(shell uname -r)
- os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export os_glibc_version_full:=$(shell getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //')
os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
- export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
+ export runtime:=cc$(gcc_version)_libc$(os_glibc_version)
endif
native_compiler := gcc
Index: tbb/src/rml/server/rml_server.cpp
===================================================================
--- tbb.orig/src/rml/server/rml_server.cpp
+++ tbb/src/rml/server/rml_server.cpp
@@ -3287,10 +3287,10 @@ extern "C" void __KMP_call_with_my_serve
#endif
#if !RML_USE_WCRM
-#define RML_SERVER_BUILD_TIME "Intel(R) RML library built: " __TBB_DATETIME
+#define RML_SERVER_BUILD_TIME "Intel(R) RML library built: unknown"
#define RML_SERVER_VERSION_ST "Intel(R) RML library version: v" TOSTRING(SERVER_VERSION)
#else
-#define RML_SERVER_BUILD_TIME "Intel(R) RML library built: " __TBB_DATETIME
+#define RML_SERVER_BUILD_TIME "Intel(R) RML library built: unknown"
#define RML_SERVER_VERSION_ST "Intel(R) RML library version: v" TOSTRING(SERVER_VERSION) " on ConcRT RM with " RML_THREAD_KIND_STRING
#endif
Index: tbb/build/version_info_linux.sh
===================================================================
--- tbb.orig/build/version_info_linux.sh
+++ tbb/build/version_info_linux.sh
@@ -16,15 +16,15 @@
# 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_HOST'"\t\t"Debian-build-host" ("`uname -m`")"'" ENDL \'
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
-echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
-echo '#N": BUILD_GCC'"\t\t"`g++ --version </dev/null 2>&1 | grep 'g++'`'" ENDL \'
+echo '#N": BUILD_KERNEL'"\t"`uname -s`'" ENDL \'
+echo '#N": BUILD_GCC'"\t\t"g++'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
-echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
+echo '#N": BUILD_COMMAND'"\t"g++'" ENDL \'
echo ""
-echo "#define __TBB_DATETIME \""`date -u`"\""
+echo "#define __TBB_DATETIME \""unknown"\""
Description: __TBB_EXCEPTION_PTR_PRESENT fix for armel
exception_ptr in GCC >= 7 no longer requires atomic instructions.
Author: Adrian Bunk <bunk@debian.org>
Index: tbb/include/tbb/tbb_config.h
===================================================================
--- tbb.orig/include/tbb/tbb_config.h
+++ tbb/include/tbb/tbb_config.h
@@ -245,8 +245,9 @@
#define __TBB_IMPLICIT_MOVE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40600)
/** __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 here is a substitution for _GLIBCXX_ATOMIC_BUILTINS_4, which is a prerequisite
for exception_ptr but cannot be used in this file because it is defined in a header, not by the compiler.
- If the compiler has no atomic intrinsics, the C++ library should not expect those as well. **/
- #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+ GCC >= 7 has exception_ptr even without atomic instructions:
+ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64735#c11 **/
+ #define __TBB_EXCEPTION_PTR_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40404 && (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 || (__TBB_GCC_VERSION >= 70000)))
#define __TBB_STATIC_ASSERT_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300)
#define __TBB_CPP11_TUPLE_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40300)
#define __TBB_INITIALIZER_LISTS_PRESENT (__GXX_EXPERIMENTAL_CXX0X__ && __TBB_GCC_VERSION >= 40400)
Description: allow i386 builds on amd64 and set march to match gcc
Author: Steve Capper <steven.capper@gmail.com>
Index: tbb/build/linux.gcc.inc
===================================================================
--- tbb.orig/build/linux.gcc.inc
+++ tbb/build/linux.gcc.inc
@@ -87,7 +87,7 @@ endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
- CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
+ CPLUS_FLAGS += -m32 $(RTM_KEY)
LIB_LINK_FLAGS += -m32
endif
Index: tbb/build/linux.inc
===================================================================
--- tbb.orig/build/linux.inc
+++ tbb/build/linux.inc
@@ -63,6 +63,9 @@ ifndef arch
ifeq ($(deb_host_arch),x32)
export arch:=x32
endif
+ ifeq ($(deb_host_arch),i386)
+ export arch:=ia32
+ endif
ifndef arch
export arch:=$(uname_m)
$(warning "Unknown arch: " $(arch))
From: Helmut Grohne <helmut@subdivi.de>
Subject: have tbb honour $(CC) and $(CXX)
Index: tbb/build/FreeBSD.gcc.inc
===================================================================
--- tbb.orig/build/FreeBSD.gcc.inc
+++ tbb/build/FreeBSD.gcc.inc
@@ -24,8 +24,8 @@ WARNING_KEY = -Wall
DYLIB_KEY = -shared
WARNING_SUPPRESS = -Wno-parentheses
-CPLUS = g++
-CONLY = gcc
+CPLUS = $(CXX)
+CONLY = $(CC)
LIB_LINK_FLAGS = -shared
LIBS = -lpthread
C_FLAGS = $(CPLUS_FLAGS)
Index: tbb/build/linux.gcc.inc
===================================================================
--- tbb.orig/build/linux.gcc.inc
+++ tbb/build/linux.gcc.inc
@@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-CPLUS ?= g++
-CONLY ?= gcc
+CPLUS ?= $(CXX)
+CONLY ?= $(CC)
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
Author: Steve Capper
Last-Update: 2017-07-29 13:26:08 +0100
Description: Enhance debugging
Index: tbb/build/gdb_shell.sh
===================================================================
--- /dev/null
+++ tbb/build/gdb_shell.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# Run some tests through gdb, we rely on a hack to detect whether or
+# or not the run completed successfully. $_exitcode will be set if the
+# test finishes without breaking.
+#
+# If the test breaks, we dump a full backtrace. Then return with an
+# error to ensure that the build stops.
+
+programname=$1
+shift
+args=$@
+
+$programname $args
+rc=$?
+if [ "$rc" -eq "0" ]; then
+ exit 0
+fi
+
+echo "Unit test failed: rc=$rc, attempting to re-run with gdb and post-mortem."
+
+temp_file=$(mktemp)
+
+cat >$temp_file <<EOF
+set pagination off
+set \$_exitcode=3142
+r $args
+if \$_exitcode==3142
+ bt full
+ info proc mappings
+ quit -1
+end
+quit
+EOF
+
+gdb $programname -x $temp_file
+rc=$?
+rm $temp_file
+exit $rc
Index: tbb/build/Makefile.tbbmalloc
===================================================================
--- tbb.orig/build/Makefile.tbbmalloc
+++ tbb/build/Makefile.tbbmalloc
@@ -39,6 +39,8 @@ ORIG_CPLUS_FLAGS:=$(CPLUS_FLAGS)
ORIG_INCLUDES:=$(INCLUDES)
ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
+run_cmd = sh ../gdb_shell.sh
+
#------------------------------------------------------
# Define rules for making the TBBMalloc shared library.
#------------------------------------------------------
Description: Allow TBB to build on armel systems (__ARM_ARCH == 4)
Author: Steve Capper <steven.capper@gmail.com>
Index: tbb/src/tbbmalloc/frontend.cpp
===================================================================
--- tbb.orig/src/tbbmalloc/frontend.cpp
+++ tbb/src/tbbmalloc/frontend.cpp
@@ -773,7 +773,7 @@ static inline unsigned int highestBitPos
# else
# error highestBitPos() not implemented for this platform
# endif
-#elif __arm__
+#elif __ARM_ARCH_7A__
__asm__ __volatile__
(
"clz %0, %1\n"
Index: tbb/build/linux.inc
===================================================================
--- tbb.orig/build/linux.inc
+++ tbb/build/linux.inc
@@ -54,9 +54,12 @@ ifndef arch
ifeq ($(uname_m),sparc64)
export arch:=sparc64
endif
- ifeq ($(uname_m),armv7l)
+ ifeq ($(deb_host_arch),armhf)
export arch:=armv7
endif
+ ifeq ($(deb_host_arch),armel)
+ export arch:=armv4t
+ endif
ifeq ($(uname_m),ppc)
export arch:=ppc32
endif
Description: tweak system inspection to build on hurd/kFreeBSD/x32 systems
Author: Mathieu Malaterre <malat@debian.org>
Index: tbb/build/common.inc
===================================================================
--- tbb.orig/build/common.inc
+++ tbb/build/common.inc
@@ -29,6 +29,14 @@ ifndef tbb_os
ifeq ($(OS), Linux)
export tbb_os=linux
endif
+ # hurd-386
+ ifeq ($(OS), GNU)
+ export tbb_os=linux
+ endif
+ # kfreebsd-*
+ ifeq ($(OS), GNU/kFreeBSD)
+ export tbb_os=FreeBSD
+ endif
ifeq ($(OS), Darwin)
export tbb_os=macos
endif
Index: tbb/build/linux.gcc.inc
===================================================================
--- tbb.orig/build/linux.gcc.inc
+++ tbb/build/linux.gcc.inc
@@ -101,6 +101,11 @@ ifeq (ppc32,$(arch))
LIB_LINK_FLAGS += -m32
endif
+ifeq (x32,$(arch))
+ CPLUS_FLAGS += -mx32
+ LIB_LINK_FLAGS += -mx32
+endif
+
ifeq (bg,$(arch))
CPLUS = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-g++ 2>/dev/null)))
CONLY = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-gcc 2>/dev/null)))
Index: tbb/build/BSD.inc
===================================================================
--- tbb.orig/build/BSD.inc
+++ tbb/build/BSD.inc
@@ -13,15 +13,22 @@
# limitations under the License.
ifndef arch
- ifeq ($(shell uname -m),i386)
+ uname_m:=$(shell uname -m)
+ uname_a:=$(shell uname -a)
+ ifeq ($(uname_m),i386)
export arch:=ia32
endif
- ifeq ($(shell uname -m),ia64)
+ ifeq ($(uname_m),ia64)
export arch:=ia64
endif
- ifeq ($(shell uname -m),amd64)
+ ifeq ($(uname_m),amd64)
export arch:=intel64
endif
+ ifndef arch
+ export arch:=$(uname_m)
+ $(warning "FreeBSD Unknown arch: " $(arch))
+ $(warning "FreeBSD Unknown uname_a: " $(uname_a))
+ endif
endif
ifndef runtime
Description: Use 1MB stack on 32-bit MIPS, fix out of memory error on thread creation
Author: Steve Capper <steven.capper@gmail.com>
Index: tbb/src/test/harness.h
===================================================================
--- tbb.orig/src/test/harness.h
+++ tbb/src/test/harness.h
@@ -537,7 +537,7 @@ public:
// calls to pthread_create fail with out-of-memory error.
// Therefore we set the stack size explicitly (as for TBB worker threads).
#if !defined(HARNESS_THREAD_STACK_SIZE)
-#if __i386__||__i386||__arm__
+#if __i386__||__i386||__arm__||(_MIPS_ISA == _MIPS_ISA_MIPS32)
const size_t stack_size = 1*MByte;
#elif __x86_64__
const size_t stack_size = 2*MByte;
Description: Always define TBB_USE_GCC_BUILTINS on GCC.
Author: Adam Conrad <adconrad@ubuntu.com>
Index: tbb/include/tbb/tbb_machine.h
===================================================================
--- tbb.orig/include/tbb/tbb_machine.h
+++ tbb/include/tbb/tbb_machine.h
@@ -225,6 +225,9 @@ template<> struct atomic_selector<8> {
#elif __linux__ || __FreeBSD__ || __NetBSD__ || __OpenBSD__
+ #ifndef TBB_USE_GCC_BUILTINS
+ #define TBB_USE_GCC_BUILTINS 1
+ #endif
#if (TBB_USE_GCC_BUILTINS && __TBB_GCC_BUILTIN_ATOMICS_PRESENT)
#include "machine/gcc_generic.h"
#elif (TBB_USE_ICC_BUILTINS && __TBB_ICC_BUILTIN_ATOMICS_PRESENT)
Description: Fix the gcc atomic detection to work for
gcc-5.x and up, as well as adding -latomic to LIBS
Author: Adam Conrad <adconrad@ubuntu.com>
Bug-Debian: https://bugs.debian.org/787084
Last-Update: 2017-07-08
[ Steve Capper: rebase patch against new upstream version of TBB ]
--- a/build/linux.gcc.inc
+++ b/build/linux.gcc.inc
@@ -41,8 +41,10 @@
endif
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
+# furthemore, on gcc 4.8 and later, some arches require -latomic to use atomic intrinsics
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9]|1[0-9])"))
- RTM_KEY = -mrtm
+ RTM_KEY = -mrtm
+ LIBS += -latomic
endif
# gcc 4.0 and later have -Wextra that is used by some our customers.
Description: detect linux x.y versions where x.y.z not found
Author: Steve Capper <steven.capper@gmail.com>
Index: tbb/src/test/harness.h
===================================================================
--- tbb.orig/src/test/harness.h
+++ tbb/src/test/harness.h
@@ -684,9 +684,13 @@ inline unsigned LinuxKernelVersion()
REPORT_FATAL_ERROR("Can't call uname: errno %d\n", errno);
exit(1);
}
+
if (3 != sscanf(utsnameBuf.release, "%u.%u.%u", &digit1, &digit2, &digit3)) {
- REPORT_FATAL_ERROR("Unable to parse OS release '%s'\n", utsnameBuf.release);
- exit(1);
+ digit3 = 0;
+ if (2 != sscanf(utsnameBuf.release, "%u.%u", &digit1, &digit2)) {
+ REPORT_FATAL_ERROR("Unable to parse OS release '%s'\n", utsnameBuf.release);
+ exit(1);
+ }
}
return 1000000*digit1+1000*digit2+digit3;
}
Description: Remove unaligned mem-accesses from test_malloc_pools.cpp
Index: tbb/src/test/test_malloc_pools.cpp
===================================================================
--- tbb.orig/src/test/test_malloc_pools.cpp
+++ tbb/src/test/test_malloc_pools.cpp
@@ -58,11 +58,10 @@ static tbb::atomic<int> liveRegions;
static void *getMallocMem(intptr_t /*pool_id*/, size_t &bytes)
{
- void *rawPtr = malloc(bytes+sizeof(MallocPoolHeader)+1);
+ void *rawPtr = malloc(bytes+sizeof(MallocPoolHeader));
if (!rawPtr)
return NULL;
- // +1 to check working with unaligned space
- void *ret = (void *)((uintptr_t)rawPtr+sizeof(MallocPoolHeader)+1);
+ void *ret = (void *)((uintptr_t)rawPtr+sizeof(MallocPoolHeader));
MallocPoolHeader *hdr = (MallocPoolHeader*)ret-1;
hdr->rawPtr = rawPtr;
adddebug.patch
fixnonlinux.patch
buildi386.patch
linuxreleasedetect.patch
tally-unit-test-fails.patch
gcc-atomic-detection.patch
gcc-atomic-always.patch
tweak-64bits-hppa-alpha.patch
cross.patch
fix-armel.patch
allow-reproducible-builds.patch
fixup-mips-harness.patch
enhanced-debugging.patch
remove-unaligned-test.patch
armel-exception-ptr.patch
Description: tally up passes/fails rather than stop on fail
Author: Steve Capper <steven.capper@gmail.com>
Index: tbb/build/Makefile.test
===================================================================
--- tbb.orig/build/Makefile.test
+++ tbb/build/Makefile.test
@@ -19,6 +19,7 @@
default: test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old
+run_cmd = sh ../test_summary.sh
tbb_root ?= $(TBBROOT)
BUILDING_PHASE=1
TEST_RESOURCE = $(TBB.RES)
Index: tbb/build/test_summary.sh
===================================================================
--- /dev/null
+++ tbb/build/test_summary.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# Rather than fail on first test, we keep a tally of tests that
+# pass/fail; as some are running unpredictably on some systems.
+# Also, if a test takes > 10 minutes to run, we fail and log the
+# timeout.
+
+# We do fail if we can't compile a test.
+
+if [ "$1" = "--dump" ]; then
+ if [ -e "$3/tests.passed" ]; then
+ count=$(wc -l "$3/tests.passed" | awk '{print $1}')
+ echo $count $2 tests passed.
+ fi
+
+ if [ -e "$3/tests.failed" ]; then
+ echo The following $2 tests FAILED!
+ cat "$3/tests.failed"
+ fi
+
+ exit 0
+fi
+
+eval timeout 10.0m $@
+rc=$?
+
+if [ "$rc" -eq "124" ]; then
+ echo "TIMEOUT: $@"
+ echo "$@ - TIMEOUT" >> tests.failed
+elif [ "$rc" -eq "0" ]; then
+ echo "$@" >> tests.passed
+else
+ echo "$@" >> tests.failed
+fi
+
+exit 0 # always succeed
Index: tbb/Makefile
===================================================================
--- tbb.orig/Makefile
+++ tbb/Makefile
@@ -37,10 +37,12 @@ tbbproxy: mkdir
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy
test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
+ sh ./build/test_summary.sh --dump DEBUG "$(work_dir)_debug"
+ sh ./build/test_summary.sh --dump RELEASE "$(work_dir)_release"
rml: mkdir
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug
Description: Tweak 64 bits detection
Author: Mathieu Malaterre <malat@debian.org>
[Steve Capper: rebase to 2017~U7, rename hppa to parisc and add alpha]
Index: tbb/build/linux.inc
===================================================================
--- tbb.orig/build/linux.inc
+++ tbb/build/linux.inc
@@ -114,7 +114,7 @@ SONAME_SUFFIX =$(shell grep TBB_COMPATIB
ifeq ($(arch),ia64)
def_prefix = lin64ipf
endif
-ifneq (,$(findstring $(arch),sparc s390x))
+ifneq (,$(findstring $(arch),sparc s390x parisc64 alpha))
def_prefix = lin64
endif
ifeq ($(arch),armv7)
#!/usr/bin/make -f
# export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/architecture.mk
CFLAGS+=$(CPPFLAGS)
CXXFLAGS+=$(CPPFLAGS)
ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
# Provide OS=
OS_MAP_linux = Linux
OS_MAP_kfreebsd = GNU/kFreeBSD
OS_MAP_hurd = GNU
ifneq ($(OS_MAP_$(DEB_HOST_ARCH_OS)),)
BUILD_FLAGS += OS=$(OS_MAP_$(DEB_HOST_ARCH_OS))
endif
# Provide compiler information
BUILD_FLAGS += compiler=gcc
BUILD_FLAGS += CC=$(DEB_HOST_GNU_TYPE)-gcc
BUILD_FLAGS += CXX=$(DEB_HOST_GNU_TYPE)-g++
# Provide arch=
arch_MAP_amd64 = intel64
arch_MAP_i386 = ia32
arch_MAP_mips64el = mips64
arch_MAP_powerpc = ppc32
arch_MAP_ppc64 = ppc64
arch_MAP_ppc64el = ppc64le
ifneq ($(arch_MAP_$(DEB_HOST_ARCH_CPU)),)
BUILD_FLAGS += arch=$(arch_MAP_$(DEB_HOST_ARCH_CPU))
else
ifeq ($(DEB_HOST_ARCH),armhf)
BUILD_FLAGS += arch=armv7
else
# covers arm64, ia64, mips, sparc64, etc.
BUILD_FLAGS += arch=$(DEB_HOST_GNU_CPU)
endif
endif
endif
%:
dh $@
override_dh_auto_build-arch:
# dump out diagnostics
cat /proc/cpuinfo
gcc -dM -E - < /dev/null
echo Build system page size is $$(($$(getconf PAGESIZE) >> 10)) KiB
sed -e "s/@VERSION@/$(DEB_VERSION)/g" \
-e "s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g" \
debian/tbb.pc.in > debian/tbb.pc
dh_auto_build -- $(BUILD_FLAGS)
override_dh_auto_build-indep:
$(MAKE) doxygen
override_dh_auto_test-indep:
:
# Makefiles should not be compressed (tbb-examples)
override_dh_compress-indep:
dh_compress -X*/examples/*
override_dh_auto_clean:
dh_auto_clean
-$(RM) debian/tbb.pc
tbb for Debian
--------------
This is the Intel Threading Building Blocks package. It comes from the
"Commercial Aligned Release" series of TBB releases.
This package ships a pkg-config file in /usr/lib/*/pkgconfig/tbb.pc. Here is
an example of how it is used:
gcc -o test test.c `pkg-config --libs --cflags tbb`
The examples are located in the tbb-examples package. In order to install
and use them, you want to install that package and run something like this:
cd ~
cp -r /usr/share/doc/tbb-examples/ .
cd tbb-examples
find . -name '*.gz'| xargs gunzip
cd examples
make
Please note that the Debian tbb package does not ship the various *_debug*
libraries that are built as part of the upstream build process. There a
numerous reasons for this. If you need debugging symbols, then please install
the -dbg package. If you require some of the specific functionality of the
those other libraries, than that is unfortunately not available at this time.
-- Roberto C. Sanchez <roberto@connexer.com> Fri, 31 Dec 2010 17:13:49 -0500
doc/Release_Notes.txt
examples/*
build/common.inc
build/linux.*
usr/share/doc/tbb-examples/examples usr/share/doc/tbb-examples/build
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib/@DEB_HOST_MULTIARCH@
includedir=${prefix}/include
Name: Threading Building Blocks
Description: Intel's parallelism library for C++
URL: http://www.threadingbuildingblocks.org/
Version: @VERSION@
Libs: -ltbb -latomic
Cflags:
version=4
opts="compression=xz,repack,uversionmangle=s/\./~U/,filenamemangle=s%.*/(\d{4})_U(\d+)\.tar\.gz%@PACKAGE@_$1~U$2.tar.gz%" \
https://github.com/01org/@PACKAGE@/tags \
.*/(\d{4})_U(\d+)\.tar\.gz