All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tbb: add 4.1 20130116 version (4.1 update 2)
@ 2013-03-25  9:20 Marcin Juszkiewicz
  2013-03-26  5:59 ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Marcin Juszkiewicz @ 2013-03-25  9:20 UTC (permalink / raw)
  To: openembedded-devel

Intel® Threading Building Blocks (Intel® 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.

Natively supports only x86(-64) targets with fallbacks for non-supported
architectures. There is a work at Linaro to add AArch64 and ARMv7a
support.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
 .../recipes-support/tbb/tbb/cross-compile.patch    | 25 +++++++++++++++++
 meta-oe/recipes-support/tbb/tbb/tbb.pc             | 11 ++++++++
 meta-oe/recipes-support/tbb/tbb_4.1.bb             | 31 ++++++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 meta-oe/recipes-support/tbb/tbb/cross-compile.patch
 create mode 100644 meta-oe/recipes-support/tbb/tbb/tbb.pc
 create mode 100644 meta-oe/recipes-support/tbb/tbb_4.1.bb

diff --git a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
new file mode 100644
index 0000000..930a861
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -0,0 +1,25 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ build/linux.gcc.inc |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- tbb41_20121003oss.orig/build/linux.gcc.inc
++++ tbb41_20121003oss/build/linux.gcc.inc
+@@ -40,12 +40,13 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+ 
+ TBB_NOSTRICT = 1
+ 
+-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=.
+ C_FLAGS = $(CPLUS_FLAGS)
+ # gcc 4.4 and higher support -std=c++0x
diff --git a/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-oe/recipes-support/tbb/tbb/tbb.pc
new file mode 100644
index 0000000..644b64f
--- /dev/null
+++ b/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} 
diff --git a/meta-oe/recipes-support/tbb/tbb_4.1.bb b/meta-oe/recipes-support/tbb/tbb_4.1.bb
new file mode 100644
index 0000000..5f7c8a5
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb_4.1.bb
@@ -0,0 +1,31 @@
+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 = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2c7f2caf277a3933e3acdf7f89d54cc1"
+PRDATE = "20130116"
+PR = "r${PRDATE}"
+
+SRC_URI = "http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_${PRDATE}oss_src.tgz \
+           file://cross-compile.patch \
+           file://tbb.pc"
+
+S = "${WORKDIR}/tbb41_${PRDATE}oss/"
+
+SRC_URI[md5sum] = "3809790e1001a1b32d59c9fee590ee85"
+SRC_URI[sha256sum] = "4ae2c10899e3b6ef2f686013ec5901fc658444ca90178efaca6014b0665c34b6"
+
+do_compile() {
+    oe_runmake compiler=gcc arch=${HOST_ARCH} runtime=cc4.7_libc2.17_kernel3.8 tbb tbbmalloc
+}
+
+do_install() {
+    install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+    rm ${S}/include/tbb/index.html -f
+    cp -a ${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
+}
-- 
1.8.1.2




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] tbb: add 4.1 20130116 version (4.1 update 2)
  2013-03-25  9:20 [PATCH] tbb: add 4.1 20130116 version (4.1 update 2) Marcin Juszkiewicz
@ 2013-03-26  5:59 ` Khem Raj
  2013-03-26  7:11   ` [meta-oe][PATCH] " Marcin Juszkiewicz
  2013-03-26  7:11   ` [PATCH] " Marcin Juszkiewicz
  0 siblings, 2 replies; 5+ messages in thread
From: Khem Raj @ 2013-03-26  5:59 UTC (permalink / raw)
  To: openembedded-devel


On Mar 25, 2013, at 2:20 AM, Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> wrote:

> +do_compile() {
> +    oe_runmake compiler=gcc arch=${HOST_ARCH} runtime=cc4.7_libc2.17_kernel3.8 tbb tbbmalloc
> +}


hmmm do you have to encode the tools versions like that, say in future we move to gcc 4.8 or kernel 3.9
will this need adjusting too ?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [meta-oe][PATCH] tbb: add 4.1 20130116 version (4.1 update 2)
  2013-03-26  5:59 ` Khem Raj
@ 2013-03-26  7:11   ` Marcin Juszkiewicz
  2013-03-26  7:11   ` [PATCH] " Marcin Juszkiewicz
  1 sibling, 0 replies; 5+ messages in thread
From: Marcin Juszkiewicz @ 2013-03-26  7:11 UTC (permalink / raw)
  To: openembedded-devel

Intel® Threading Building Blocks (Intel® 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.

Natively supports only x86(-64) targets with fallbacks for non-supported
architectures. There is a work at Linaro to add AArch64 and ARMv7a
support.

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
 .../recipes-support/tbb/tbb/cross-compile.patch    | 25 +++++++++++++++++
 meta-oe/recipes-support/tbb/tbb/tbb.pc             | 11 ++++++++
 meta-oe/recipes-support/tbb/tbb_4.1.bb             | 31 ++++++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 meta-oe/recipes-support/tbb/tbb/cross-compile.patch
 create mode 100644 meta-oe/recipes-support/tbb/tbb/tbb.pc
 create mode 100644 meta-oe/recipes-support/tbb/tbb_4.1.bb

diff --git a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
new file mode 100644
index 0000000..b970a37
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
@@ -0,0 +1,25 @@
+Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+Upstream-Status: unsuitable
+---
+ build/linux.gcc.inc |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- tbb41_20121003oss.orig/build/linux.gcc.inc
++++ tbb41_20121003oss/build/linux.gcc.inc
+@@ -40,12 +40,13 @@ DYLIB_KEY = -shared
+ EXPORT_KEY = -Wl,--version-script,
+ LIBDL = -ldl
+ 
+ TBB_NOSTRICT = 1
+ 
+-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=.
+ C_FLAGS = $(CPLUS_FLAGS)
+ # gcc 4.4 and higher support -std=c++0x
diff --git a/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-oe/recipes-support/tbb/tbb/tbb.pc
new file mode 100644
index 0000000..644b64f
--- /dev/null
+++ b/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} 
diff --git a/meta-oe/recipes-support/tbb/tbb_4.1.bb b/meta-oe/recipes-support/tbb/tbb_4.1.bb
new file mode 100644
index 0000000..2337bdd
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb_4.1.bb
@@ -0,0 +1,31 @@
+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 = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2c7f2caf277a3933e3acdf7f89d54cc1"
+PRDATE = "20130116"
+PR = "r${PRDATE}"
+
+SRC_URI = "http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_${PRDATE}oss_src.tgz \
+           file://cross-compile.patch \
+           file://tbb.pc"
+
+S = "${WORKDIR}/tbb41_${PRDATE}oss/"
+
+SRC_URI[md5sum] = "3809790e1001a1b32d59c9fee590ee85"
+SRC_URI[sha256sum] = "4ae2c10899e3b6ef2f686013ec5901fc658444ca90178efaca6014b0665c34b6"
+
+do_compile() {
+    oe_runmake compiler=gcc arch=${HOST_ARCH} runtime=cc4
+}
+
+do_install() {
+    install -d ${D}${includedir} ${D}${libdir}/pkgconfig
+    rm ${S}/include/tbb/index.html -f
+    cp -a ${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
+}
-- 
1.8.1.2




^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] tbb: add 4.1 20130116 version (4.1 update 2)
  2013-03-26  5:59 ` Khem Raj
  2013-03-26  7:11   ` [meta-oe][PATCH] " Marcin Juszkiewicz
@ 2013-03-26  7:11   ` Marcin Juszkiewicz
  2013-03-29 12:21     ` Martin Jansa
  1 sibling, 1 reply; 5+ messages in thread
From: Marcin Juszkiewicz @ 2013-03-26  7:11 UTC (permalink / raw)
  To: openembedded-devel

W dniu 26.03.2013 06:59, Khem Raj pisze:
> On Mar 25, 2013, at 2:20 AM, Marcin Juszkiewicz

>> +do_compile() { +    oe_runmake compiler=gcc arch=${HOST_ARCH}
>> runtime=cc4.7_libc2.17_kernel3.8 tbb tbbmalloc +}

> hmmm do you have to encode the tools versions like that, say in
> future we move to gcc 4.8 or kernel 3.9 will this need adjusting too?

If runtime is not defined it is created based on host system so can be
totally wrong. From quick look at makefiles there is only compiler part
checked for "cc3" or "cc4" - to add some arguments to flags.

New version sent.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] tbb: add 4.1 20130116 version (4.1 update 2)
  2013-03-26  7:11   ` [PATCH] " Marcin Juszkiewicz
@ 2013-03-29 12:21     ` Martin Jansa
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Jansa @ 2013-03-29 12:21 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1188 bytes --]

On Tue, Mar 26, 2013 at 08:11:31AM +0100, Marcin Juszkiewicz wrote:
> W dniu 26.03.2013 06:59, Khem Raj pisze:
> > On Mar 25, 2013, at 2:20 AM, Marcin Juszkiewicz
> 
> >> +do_compile() { +    oe_runmake compiler=gcc arch=${HOST_ARCH}
> >> runtime=cc4.7_libc2.17_kernel3.8 tbb tbbmalloc +}
> 
> > hmmm do you have to encode the tools versions like that, say in
> > future we move to gcc 4.8 or kernel 3.9 will this need adjusting too?
> 
> If runtime is not defined it is created based on host system so can be
> totally wrong. From quick look at makefiles there is only compiler part
> checked for "cc3" or "cc4" - to add some arguments to flags.
> 
> New version sent.

Applied, thanks!

Hopefully in right (last) revision.

Would be great if you can update patchwork status and use PATCHvN for
next patches.

memcached/libmemcached are still pending (unresolved review comments 
afaik).

> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-29 12:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-25  9:20 [PATCH] tbb: add 4.1 20130116 version (4.1 update 2) Marcin Juszkiewicz
2013-03-26  5:59 ` Khem Raj
2013-03-26  7:11   ` [meta-oe][PATCH] " Marcin Juszkiewicz
2013-03-26  7:11   ` [PATCH] " Marcin Juszkiewicz
2013-03-29 12:21     ` Martin Jansa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.