diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/tbb')
4 files changed, 131 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb b/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb new file mode 100644 index 000000000..bad9481f7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb.bb @@ -0,0 +1,44 @@ +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." +HOMEPAGE = "http://threadingbuildingblocks.org/" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" +PRDATE = "20170412" +BRANCH = "tbb_2017" +SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3" +PV = "${PRDATE}+${SRCPV}" +SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \ + file://cross-compile.patch \ + file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \ + file://tbb.pc \ +" + +S = "${WORKDIR}/git" + +COMPILER ?= "gcc" +COMPILER_toolchain-clang = "clang" + +do_compile() { + oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4 +} + +do_install() { + install -d ${D}${includedir} ${D}${libdir}/pkgconfig + rm ${S}/include/tbb/index.html -f + cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir} + install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir} + install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig +} + +# fails with thumb enabled: +# | arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a9 -mcpu=cortex-a9 -D__ARM__ -D__LINUX_ARM_ARCH__=7 -funwind-tables -mvectorize-with-neon-quad -rdynamic --sysroot=/OE/sysroots/m14tv -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp +# | {standard input}: Assembler messages: +# | {standard input}:250: Error: thumb conditional instruction should be in IT block -- `strexeq r2,r3,[r4]' +# ... +# | make[1]: *** [concurrent_queue.o] Error 1 +ARM_INSTRUCTION_SET = "arm" +SECURITY_CFLAGS_append = " -fPIC" + diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch new file mode 100644 index 000000000..7e66945fa --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch @@ -0,0 +1,37 @@ +From 6b2b136caa68912d77ffe26143cd3da768b9ef80 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 3 Jun 2017 08:39:37 -0700 +Subject: [PATCH] mallinfo() is glibc specific API mark it so + +Helps compiling with musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + src/tbbmalloc/proxy.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp +index 5ef279d..06c4872 100644 +--- a/src/tbbmalloc/proxy.cpp ++++ b/src/tbbmalloc/proxy.cpp +@@ -185,6 +185,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW + return 1; + } + ++#ifdef __GLIBC__ + struct mallinfo mallinfo() __THROW + { + struct mallinfo m; +@@ -192,6 +193,7 @@ struct mallinfo mallinfo() __THROW + + return m; + } ++#endif + + #if __ANDROID__ + // Android doesn't have malloc_usable_size, provide it to be compatible +-- +2.13.0 + diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch new file mode 100644 index 000000000..d54b307ee --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/cross-compile.patch @@ -0,0 +1,39 @@ +Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> + +Upstream-Status: unsuitable +--- + build/linux.gcc.inc | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +Index: tbb2017_20170118oss/build/linux.gcc.inc +=================================================================== +--- tbb2017_20170118oss.orig/build/linux.gcc.inc ++++ tbb2017_20170118oss/build/linux.gcc.inc +@@ -32,8 +32,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = g++ +-CONLY = gcc ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +Index: tbb2017_20170118oss/build/linux.clang.inc +=================================================================== +--- tbb2017_20170118oss.orig/build/linux.clang.inc ++++ tbb2017_20170118oss/build/linux.clang.inc +@@ -31,8 +31,9 @@ DYLIB_KEY = -shared + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = clang++ +-CONLY = clang ++CPLUS = $(CXX) ++CONLY = $(CC) ++CPLUS_FLAGS = $(CXXFLAGS) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic diff --git a/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc new file mode 100644 index 000000000..644b64fbf --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/tbb/tbb/tbb.pc @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Threading Building Blocks +Description: Intel's parallelism library for C++ +URL: http://www.threadingbuildingblocks.org/ +Version: 3.0+r018 +Libs: -L${libdir} -ltbb +Cflags: -I${includedir} |