summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hope <michael.hope@linaro.org>2011-09-29 12:40:42 +1300
committerMichael Hope <michael.hope@linaro.org>2011-09-29 12:40:42 +1300
commit1c0488792d245101ceb4efca2223574c44fd0e67 (patch)
tree1266a3164c02bc1c1fc9e6397b3cc459eb968a0f
parent89cf5bb67fdae093db25ecb6a50f25a835c8ca6c (diff)
downloadcrosstool-ng-1c0488792d245101ceb4efca2223574c44fd0e67.tar.gz
crosstool-ng-1c0488792d245101ceb4efca2223574c44fd0e67.tar.bz2
crosstool-ng-1c0488792d245101ceb4efca2223574c44fd0e67.zip
config: add a 'auto' value for the number of parallel jobs
When CT_PARALLEL_JOBS is -1, set the number of parallel jobs to the number of online CPUs + 1. Update documentation to match. I find this useful when building in the cloud. You can use the same .config file and have the build adapt to the number of processors available. Limited testing shows that NCPUS+1 is faster than NCPUS+0 or NCPUS+2. Signed-off-by: Michael Hope <michael.hope@linaro.org>
-rw-r--r--config/global/build-behave.in2
-rw-r--r--scripts/crosstool-NG.sh.in6
2 files changed, 7 insertions, 1 deletions
diff --git a/config/global/build-behave.in b/config/global/build-behave.in
index ebf08b2d..7092a7f1 100644
--- a/config/global/build-behave.in
+++ b/config/global/build-behave.in
@@ -16,6 +16,8 @@ config PARALLEL_JOBS
Enter 1 (or 0) to have only one job at a time.
+ Enter -1 to set automatically based on how many processors the host has.
+
config LOAD
int
prompt "Maximum allowed load" if ! BACKEND
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index c2f35f6b..6b6aa0e3 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -488,7 +488,11 @@ if [ -z "${CT_RESTART}" ]; then
# And help make go faster
JOBSFLAGS=
- [ ${CT_PARALLEL_JOBS} -ne 0 ] && JOBSFLAGS="${JOBSFLAGS} -j${CT_PARALLEL_JOBS}"
+ # Use the number of processors+1 when automatically setting the number of
+ # parallel jobs. Fall back to 1 if the host doesn't use GLIBC.
+ AUTO_JOBS=$((`getconf _NPROCESSORS_ONLN 2> /dev/null || echo 0` + 1))
+ [ ${CT_PARALLEL_JOBS} -eq -1 ] && JOBSFLAGS="${JOBSFLAGS} -j${AUTO_JOBS}"
+ [ ${CT_PARALLEL_JOBS} -gt 0 ] && JOBSFLAGS="${JOBSFLAGS} -j${CT_PARALLEL_JOBS}"
[ ${CT_LOAD} -ne 0 ] && JOBSFLAGS="${JOBSFLAGS} -l${CT_LOAD}"
# We need to save the real .config with kconfig's value,