[Buildroot] [PATCH v2 1/2] tbb: new package

Yegor Yefremov yegorslists at googlemail.com
Fri Oct 6 16:27:56 UTC 2017


Hi Bradford,

On Fri, Sep 29, 2017 at 1:50 AM, Bradford Barr <bradford at density.io> wrote:
> 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-cross-compile.patch | 41 +++++++++++++++++++++++++++++
>  package/tbb/Config.in                | 16 ++++++++++++
>  package/tbb/tbb.hash                 |  2 ++
>  package/tbb/tbb.mk                   | 50 ++++++++++++++++++++++++++++++++++++

DEVELOPERS file entry missing.

Yegor

>  5 files changed, 110 insertions(+)
>  create mode 100644 package/tbb/0001-cross-compile.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 1580a9e..7ea362e 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1504,6 +1504,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-cross-compile.patch b/package/tbb/0001-cross-compile.patch
> new file mode 100644
> index 0000000..7c57603
> --- /dev/null
> +++ b/package/tbb/0001-cross-compile.patch
> @@ -0,0 +1,41 @@
> +Author: Marcin Juszkiewicz <marcin.juszkiewicz at linaro.org>
> +
> +Upstream-Status: unsuitable
> +
> +Signed-off-by: bradford barr <bradford at density.io>
> +---
> + 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/package/tbb/Config.in b/package/tbb/Config.in
> new file mode 100644
> index 0000000..eda1f09
> --- /dev/null
> +++ b/package/tbb/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_TBB
> +       bool "tbb"
> +       depends on !BR2_STATIC_LIBS
> +       depends on BR2_INSTALL_LIBSTDCPP
> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       depends on BR2_TOOLCHAIN_USES_GLIBC
> +       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..2a3cd6e
> --- /dev/null
> +++ b/package/tbb/tbb.hash
> @@ -0,0 +1,2 @@
> +# Locally calculated
> +sha256  c6462217d4ecef2b44fce63cfdf31f9db4f6ff493869899d497a5aef68b05fc5  tbb-2018_U1.tar.gz
> diff --git a/package/tbb/tbb.mk b/package/tbb/tbb.mk
> new file mode 100644
> index 0000000..ad94a27
> --- /dev/null
> +++ b/package/tbb/tbb.mk
> @@ -0,0 +1,50 @@
> +################################################################################
> +#
> +# tbb
> +#
> +################################################################################
> +
> +TBB_VERSION = 2018_U1
> +TBB_SITE = $(call github,01org,tbb,$(TBB_VERSION))
> +TBB_INSTALL_STAGING = YES
> +TBB_LICENSE = Apache-2.0
> +TBB_LICENSE_FILES = LICENSE
> +
> +TBB_SO_VERSION = 2
> +TBB_LIBS = libtbb libtbbmalloc libtbbmalloc_proxy
> +
> +ifeq ($(BR2_ENABLE_DEBUG),y)
> +TBB_BIN_PATH = $(@D)/build/linux_*_debug
> +else
> +TBB_BIN_PATH = $(@D)/build/linux_*_release
> +endif
> +
> +define TBB_BUILD_CMDS
> +       $(MAKE) $(TARGET_CONFIGURE_OPTS) arch=$(BR2_ARCH) -C $(@D)
> +endef
> +
> +define TBB_INSTALL_LIBS
> +       $(foreach lib,$(TBB_LIBS),
> +               $(if $(BR2_ENABLE_DEBUG),
> +                       $(INSTALL) -D -m 0755 $(TBB_BIN_PATH)/$(lib)_debug.so.$(TBB_SO_VERSION) \
> +                               $(1)/usr/lib/$(lib)_debug.so.$(TBB_SO_VERSION) ;
> +                       ln -sf $(lib)_debug.so.$(TBB_SO_VERSION) $(1)/usr/lib/$(lib)_debug.so
> +               ,
> +                       $(INSTALL) -D -m 0755 $(TBB_BIN_PATH)/$(lib).so.$(TBB_SO_VERSION) \
> +                               $(1)/usr/lib/$(lib).so.$(TBB_SO_VERSION) ;
> +                       ln -sf $(lib).so.$(TBB_SO_VERSION) $(1)/usr/lib/$(lib).so
> +               )
> +       )
> +endef
> +
> +define TBB_INSTALL_STAGING_CMDS
> +       mkdir -p $(STAGING_DIR)/usr/include/tbb
> +       cp -a $(@D)/include/* $(STAGING_DIR)/usr/include/tbb
> +       $(call TBB_INSTALL_LIBS,$(STAGING_DIR))
> +endef
> +
> +define TBB_INSTALL_TARGET_CMDS
> +       $(call TBB_INSTALL_LIBS,$(TARGET_DIR))
> +endef
> +
> +$(eval $(generic-package))
> --
> 2.9.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot



More information about the buildroot mailing list