summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2017-01-18 14:38:20 -0800
committer Colin Cross <ccross@android.com> 2017-01-18 14:50:50 -0800
commitba55c623cbc8e4a1ea9b191b223e0d9c4de4dfea (patch)
tree88d31b4deb8a9cc412b17618ce4c0aec1bab8776
parentce0bae2f470373131f2d5f9d79838c2340f0ba0e (diff)
Convert -j to a reasonable parallelism for kati
When running makeparallel in non-ninja mode, which is used when running kati with USE_GOMA=true, convert -j to a reasonable parallelism value the same way ninja does. Bug: 34392351 Test: make -C build/make/tools/makeparallel makeparallel_test Change-Id: I9aee4dd2a3b0f2b1c2c10087be83f7b2b06f4368
-rw-r--r--tools/makeparallel/Makefile9
-rw-r--r--tools/makeparallel/makeparallel.cpp18
2 files changed, 20 insertions, 7 deletions
diff --git a/tools/makeparallel/Makefile b/tools/makeparallel/Makefile
index 4e12b10f2a..82a4abfac2 100644
--- a/tools/makeparallel/Makefile
+++ b/tools/makeparallel/Makefile
@@ -65,8 +65,9 @@ MAKEPARALLEL_NINJA_TEST := MAKEFLAGS= MAKELEVEL= MAKEPARALLEL="$(MAKEPARALLEL) -
makeparallel_test: $(MAKEPARALLEL)
@EXPECTED="-j1234" $(MAKEPARALLEL_TEST) -j1234
@EXPECTED="-j123" $(MAKEPARALLEL_TEST) -j123
- @EXPECTED="-j1" $(MAKEPARALLEL_TEST) -j1
- @EXPECTED="-j1" $(MAKEPARALLEL_TEST)
+ @EXPECTED="" $(MAKEPARALLEL_TEST) -j1
+ @EXPECTED="-j$$(($$(nproc) + 2))" $(MAKEPARALLEL_TEST) -j
+ @EXPECTED="" $(MAKEPARALLEL_TEST)
@EXPECTED="-j1234" $(MAKEPARALLEL_NINJA_TEST) -j1234
@EXPECTED="-j123" $(MAKEPARALLEL_NINJA_TEST) -j123
@@ -87,8 +88,6 @@ makeparallel_test: $(MAKEPARALLEL)
@EXPECTED="-j1234 -k0" $(MAKEPARALLEL_NINJA_TEST) -j1234 -k
@EXPECTED="-j1234 -k0" $(MAKEPARALLEL_NINJA_TEST) -kt -j1234
- @EXPECTED="-j1" $(MAKEPARALLEL_TEST) A=-j1234
- @EXPECTED="-j1" $(MAKEPARALLEL_TEST) A\ -j1234=-j1234
- @EXPECTED="-j1234" $(MAKEPARALLEL_TEST) A\ -j1234=-j1234 -j1234
+ @EXPECTED="" $(MAKEPARALLEL_TEST) A=-j1234
@EXPECTED="-j1234 args" ARGS="args" $(MAKEPARALLEL_TEST) -j1234
diff --git a/tools/makeparallel/makeparallel.cpp b/tools/makeparallel/makeparallel.cpp
index 4ae8f61d9d..b90668186e 100644
--- a/tools/makeparallel/makeparallel.cpp
+++ b/tools/makeparallel/makeparallel.cpp
@@ -317,13 +317,27 @@ int main(int argc, char* argv[]) {
}
}
- std::string jarg = "-j" + std::to_string(tokens + 1);
+ std::string jarg;
+ if (parallel) {
+ if (tokens == 0) {
+ if (ninja) {
+ // ninja is parallel by default
+ jarg = "";
+ } else {
+ // make -j with no argument, guess a reasonable parallelism like ninja does
+ jarg = "-j" + std::to_string(sysconf(_SC_NPROCESSORS_ONLN) + 2);
+ }
+ } else {
+ jarg = "-j" + std::to_string(tokens + 1);
+ }
+ }
+
if (ninja) {
if (!parallel) {
// ninja is parallel by default, pass -j1 to disable parallelism if make wasn't parallel
args.push_back(strdup("-j1"));
- } else if (tokens > 0) {
+ } else {
args.push_back(strdup(jarg.c_str()));
}
if (keep_going) {