[Buildroot] [PATCH 1/2] tbb: new package
Bradford Barr
bradford at density.io
Tue Sep 26 20:35:03 UTC 2017
From: bradford barr <bradford at density.io>
Intel Threading Building Blocks (TBB), is a C++ library to help developers
write highly parallelized applications. OpenCV uses it to accelerate some of
it's more heavy weight procedures.
Signed-off-by: bradford barr <bradford at density.io>
---
package/Config.in | 1 +
package/tbb/0001-prevent-thumb.patch | 15 +++++++++++++++
package/tbb/0002-cross-compiler.patch | 14 ++++++++++++++
package/tbb/Config.in | 13 +++++++++++++
package/tbb/tbb.hash | 3 +++
package/tbb/tbb.mk | 35 +++++++++++++++++++++++++++++++++++
6 files changed, 81 insertions(+)
create mode 100644 package/tbb/0001-prevent-thumb.patch
create mode 100644 package/tbb/0002-cross-compiler.patch
create mode 100644 package/tbb/Config.in
create mode 100644 package/tbb/tbb.hash
create mode 100644 package/tbb/tbb.mk
diff --git a/package/Config.in b/package/Config.in
index 6acd0c4..f71e781 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1503,6 +1503,7 @@ endif
source "package/skalibs/Config.in"
source "package/sphinxbase/Config.in"
source "package/startup-notification/Config.in"
+ source "package/tbb/Config.in"
source "package/tinycbor/Config.in"
source "package/tz/Config.in"
source "package/tzdata/Config.in"
diff --git a/package/tbb/0001-prevent-thumb.patch b/package/tbb/0001-prevent-thumb.patch
new file mode 100644
index 0000000..942f7f4
--- /dev/null
+++ b/package/tbb/0001-prevent-thumb.patch
@@ -0,0 +1,15 @@
+diff -Naur tbb-2017_U8/build/linux.gcc.inc b/build/linux.gcc.inc
+--- tbb-2017_U8/build/linux.gcc.inc 2017-09-22 15:57:33.000000000 -0400
++++ b/build/linux.gcc.inc 2017-09-25 14:46:39.584066690 -0400
+@@ -115,11 +115,6 @@
+ LIB_LINK_FLAGS += -mcpu=v9 -m64
+ endif
+
+-# automatically generate "IT" instructions when compiling for Thumb ISA
+-ifeq (armv7,$(arch))
+- CPLUS_FLAGS += -Wa,-mimplicit-it=thumb
+-endif
+-
+ #------------------------------------------------------------------------------
+ # Setting assembler data.
+ #------------------------------------------------------------------------------
diff --git a/package/tbb/0002-cross-compiler.patch b/package/tbb/0002-cross-compiler.patch
new file mode 100644
index 0000000..60a4eb3
--- /dev/null
+++ b/package/tbb/0002-cross-compiler.patch
@@ -0,0 +1,14 @@
+diff -Naur tbb-2017_U8/build/linux.gcc.inc b/build/linux.gcc.inc
+--- tbb-2017_U8/build/linux.gcc.inc 2017-09-25 14:58:24.593148831 -0400
++++ b/build/linux.gcc.inc 2017-09-25 15:08:17.032422555 -0400
+@@ -32,8 +32,8 @@
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+
+-CPLUS = g++
+-CONLY = gcc
++CPLUS = arm-linux-gnueabihf-g++
++CONLY = arm-linux-gnueabihf-gcc
+ LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+ LIBS += -lpthread -lrt
+ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
diff --git a/package/tbb/Config.in b/package/tbb/Config.in
new file mode 100644
index 0000000..d2c8c04
--- /dev/null
+++ b/package/tbb/Config.in
@@ -0,0 +1,13 @@
+config BR2_PACKAGE_TBB
+ bool "tbb"
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ help
+ Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily
+ write parallel C++ programs that take full advantage of multicore
+ performance, that are portable, composable and have future-proof
+ scalability.
+
+ https://www.threadingbuildingblocks.org/
+
+comment "tbb needs a toolchain w/ threads"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/tbb/tbb.hash b/package/tbb/tbb.hash
new file mode 100644
index 0000000..7e73cb4
--- /dev/null
+++ b/package/tbb/tbb.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 c6462217d4ecef2b44fce63cfdf31f9db4f6ff493869899d497a5aef68b05fc5 tbb-2018_U1.tar.gz
+sha256 1b1357f280e750d42506212adad02f85ac07c9d3e3c0813104f9122ef350497f tbb-2017_U8.tar.gz
diff --git a/package/tbb/tbb.mk b/package/tbb/tbb.mk
new file mode 100644
index 0000000..d9ac4c8
--- /dev/null
+++ b/package/tbb/tbb.mk
@@ -0,0 +1,35 @@
+################################################################################
+#
+# tbb
+#
+################################################################################
+
+TBB_VERSION = 2017_U8
+TBB_SITE = $(call github,01org,tbb,$(TBB_VERSION))
+TBB_INSTALL_STAGING = YES
+TBB_LICENSE = Apache-2.0
+TBB_LICENSE_FILES = LICENSE
+
+define TBB_BUILD_CMDS
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) CPLUS=$(HOSTCXX) CONLY=$(HOSTCC) arch=$(BR2_ARCH) -C $(@D) tbb
+endef
+
+define TBB_INSTALL_STAGING_CMDS
+ mkdir -p $(STAGING_DIR)/usr/include/tbb
+ cp -a $(@D)/include/* $(STAGING_DIR)/usr/include/tbb
+ for f in $$(find $(@D)/build/linux_*_release -type f -iname "libtbb.so*"); do \
+ if grep -q -v INPUT $$f; then \
+ $(INSTALL) -D -m 0755 $$f $(STAGING_DIR)/usr/lib ; \
+ fi \
+ done
+endef
+
+define TBB_INSTALL_TARGET_CMDS
+ for f in $$(find $(@D)/build/linux_*_release -type f -iname "libtbb.so*"); do \
+ if grep -q -v INPUT $$f; then \
+ $(INSTALL) -D -m 0755 $$f $(TARGET_DIR)/usr/lib ; \
+ fi \
+ done
+endef
+
+$(eval $(generic-package))
--
2.9.3
More information about the buildroot
mailing list