changeset 1484:19435f12ec63 draft

Give library probe a progress indicator, and use 150% of detected CPUs to try to keep large SMP machines busy (each compiler invocation is short so they exit almost as fast as we launch them).
author Rob Landley <rob@landley.net>
date Sat, 20 Sep 2014 13:07:53 -0500
parents 434c4ae19f05
children 8700cbe1cb29
files scripts/make.sh
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/make.sh	Thu Sep 18 18:07:58 2014 -0500
+++ b/scripts/make.sh	Sat Sep 20 13:07:53 2014 -0500
@@ -9,7 +9,12 @@
 
 [ -z "$KCONFIG_CONFIG" ] && KCONFIG_CONFIG=".config"
 
-[ -z "$CPUS" ] && CPUS=$(($(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)+1))
+# Since each cc invocation is short, launch half again as many processes
+# as we have processors so they don't exit faster than we can start them.
+[ -z "$CPUS" ] &&
+  CPUS=$((($(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)*3)/2))
+
+echo CPUS=$CPUS
 
 # Respond to V= by echoing command lines as well as running them
 do_loudly()
@@ -138,7 +143,7 @@
   -o generated/config2help && \
 generated/config2help Config.in $KCONFIG_CONFIG > generated/help.h || exit 1
 
-echo "Library probe..."
+echo -n "Library probe"
 
 # We trust --as-needed to remove each library if we don't use any symbols
 # out of it, this loop is because the compiler has no way to ignore a library
@@ -151,7 +156,9 @@
   echo "int main(int argc, char *argv[]) {return 0;}" | \
   ${CROSS_COMPILE}${CC} $CFLAGS -xc - -o /dev/null -Wl,--as-needed -l$i > /dev/null 2>/dev/null &&
   echo -l$i >> generated/optlibs.dat
+  echo -n .
 done
+echo
 
 echo -n "Compile toybox"
 [ ! -z "$V" ] && echo