* [PATCH] boost: Limit PARALLEL_MAKE by -j 64
@ 2013-06-26 17:19 Martin Jansa
2013-06-26 17:19 ` Martin Jansa
0 siblings, 1 reply; 2+ messages in thread
From: Martin Jansa @ 2013-06-26 17:19 UTC (permalink / raw)
To: openembedded-core
* greater paralelism isn't supported by bjam and causes segfault or ignoring -j
* PARALLEL_MAKE was enabled for boost in
http://git.openembedded.org/openembedded-core/commit/?id=9b9cfc1dfe5e3b8f89b7a8508537166d0f23935e
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
meta/recipes-support/boost/boost.inc | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index a1c35c7..87bac23 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -102,8 +102,22 @@ BJAM_TOOLS = "-sTOOLS=gcc \
'--layout=system' \
"
-#use PARALLEL_MAKE to speed up the build
-BJAM_OPTS = '${PARALLEL_MAKE} \
+# use PARALLEL_MAKE to speed up the build, but limit it by -j 64, greater paralelism causes bjam to segfault or to ignore -j
+# https://svn.boost.org/trac/boost/ticket/7634
+def get_boost_parallel_make(bb, d):
+ pm = d.getVar('PARALLEL_MAKE', True)
+ if pm:
+ # people are usually using "-jN" or "-j N", but let it work with something else appended to it
+ import re
+ pm_prefix = re.search("\D+", pm)
+ pm_val = re.search("\d+", pm)
+ if pm_prefix is None or pm_val is None:
+ bb.error("Unable to analyse format of PARALLEL_MAKE variable: %s" % pm)
+ pm_nval = min(64, int(pm_val.group(0)))
+ return pm_prefix.group(0) + str(pm_nval) + pm[pm_val.end():]
+
+BOOST_PARALLEL_MAKE = "${@get_boost_parallel_make(bb, d)}"
+BJAM_OPTS = '${BOOST_PARALLEL_MAKE} \
${BJAM_TOOLS} \
-sBOOST_BUILD_USER_CONFIG=${S}/tools/build/v2/user-config.jam \
--builddir=${S}/${TARGET_SYS} \
--
1.8.2.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH] boost: Limit PARALLEL_MAKE by -j 64
2013-06-26 17:19 [PATCH] boost: Limit PARALLEL_MAKE by -j 64 Martin Jansa
@ 2013-06-26 17:19 ` Martin Jansa
0 siblings, 0 replies; 2+ messages in thread
From: Martin Jansa @ 2013-06-26 17:19 UTC (permalink / raw)
To: openembedded-core
* greater paralelism isn't supported by bjam and causes segfault or ignoring -j
* PARALLEL_MAKE was enabled for boost in
http://git.openembedded.org/openembedded-core/commit/?id=9b9cfc1dfe5e3b8f89b7a8508537166d0f23935e
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
meta/recipes-support/boost/boost.inc | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index a1c35c7..87bac23 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -102,8 +102,22 @@ BJAM_TOOLS = "-sTOOLS=gcc \
'--layout=system' \
"
-#use PARALLEL_MAKE to speed up the build
-BJAM_OPTS = '${PARALLEL_MAKE} \
+# use PARALLEL_MAKE to speed up the build, but limit it by -j 64, greater paralelism causes bjam to segfault or to ignore -j
+# https://svn.boost.org/trac/boost/ticket/7634
+def get_boost_parallel_make(bb, d):
+ pm = d.getVar('PARALLEL_MAKE', True)
+ if pm:
+ # people are usually using "-jN" or "-j N", but let it work with something else appended to it
+ import re
+ pm_prefix = re.search("\D+", pm)
+ pm_val = re.search("\d+", pm)
+ if pm_prefix is None or pm_val is None:
+ bb.error("Unable to analyse format of PARALLEL_MAKE variable: %s" % pm)
+ pm_nval = min(64, int(pm_val.group(0)))
+ return pm_prefix.group(0) + str(pm_nval) + pm[pm_val.end():]
+
+BOOST_PARALLEL_MAKE = "${@get_boost_parallel_make(bb, d)}"
+BJAM_OPTS = '${BOOST_PARALLEL_MAKE} \
${BJAM_TOOLS} \
-sBOOST_BUILD_USER_CONFIG=${S}/tools/build/v2/user-config.jam \
--builddir=${S}/${TARGET_SYS} \
--
1.8.2.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-06-26 17:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-26 17:19 [PATCH] boost: Limit PARALLEL_MAKE by -j 64 Martin Jansa
2013-06-26 17:19 ` 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.