Submitted By: Bruce Dubbs Date: 2017-10-14 Initial Package Version: 1.9.2 Upstream Status: Not submitted Origin: Self Description: Ninja normally uses all cores+2 when building a package. This patch allows useers to limit the cores used by setting an environment variable: NINJAJOBS to an integer. The patch also fixes a few warnings. diff -Naur ninja-1.8.2.orig/src/build_log.cc ninja-1.8.2/src/build_log.cc --- ninja-1.8.2.orig/src/build_log.cc 2017-09-10 20:20:10.000000000 -0500 +++ ninja-1.8.2/src/build_log.cc 2017-10-12 14:38:00.988957823 -0500 @@ -75,12 +75,12 @@ } switch (len & 7) { - case 7: h ^= uint64_t(data[6]) << 48; - case 6: h ^= uint64_t(data[5]) << 40; - case 5: h ^= uint64_t(data[4]) << 32; - case 4: h ^= uint64_t(data[3]) << 24; - case 3: h ^= uint64_t(data[2]) << 16; - case 2: h ^= uint64_t(data[1]) << 8; + case 7: h ^= uint64_t(data[6]) << 48; __attribute__ ((fallthrough)); + case 6: h ^= uint64_t(data[5]) << 40; __attribute__ ((fallthrough)); + case 5: h ^= uint64_t(data[4]) << 32; __attribute__ ((fallthrough)); + case 4: h ^= uint64_t(data[3]) << 24; __attribute__ ((fallthrough)); + case 3: h ^= uint64_t(data[2]) << 16; __attribute__ ((fallthrough)); + case 2: h ^= uint64_t(data[1]) << 8; __attribute__ ((fallthrough)); case 1: h ^= uint64_t(data[0]); h *= m; }; diff -Naur ninja-1.8.2.orig/src/hash_map.h ninja-1.8.2/src/hash_map.h --- ninja-1.8.2.orig/src/hash_map.h 2017-09-10 20:20:10.000000000 -0500 +++ ninja-1.8.2/src/hash_map.h 2017-10-12 14:30:29.563974429 -0500 @@ -39,8 +39,8 @@ len -= 4; } switch (len) { - case 3: h ^= data[2] << 16; - case 2: h ^= data[1] << 8; + case 3: h ^= data[2] << 16; __attribute__ ((fallthrough)); + case 2: h ^= data[1] << 8; __attribute__ ((fallthrough)); case 1: h ^= data[0]; h *= m; }; diff -Naur ninja-1.8.2.orig/src/ninja.cc ninja-1.8.2/src/ninja.cc --- ninja-1.8.2.orig/src/ninja.cc 2017-09-10 20:20:10.000000000 -0500 +++ ninja-1.8.2/src/ninja.cc 2017-10-12 14:47:34.143936739 -0500 @@ -221,6 +221,12 @@ /// Choose a default value for the -j (parallelism) flag. int GuessParallelism() { + + int j = 0; + char* jobs = getenv( "NINJAJOBS" ); + if ( jobs != NULL ) j = atoi( jobs ); + if ( j > 0 ) return j; + switch (int processors = GetProcessorCount()) { case 0: case 1: