From 088ee4134b7e912ec79d927c6cf157b2bccedf98 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Thu, 28 Jul 2005 19:38:52 +0000 Subject: [PATCH] From Rich Paul: MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit I've noticed that when I compile busybox on my laptop, it compiles more slowly than one would expect, and although it's a (more-or-less) multiprocessor system and I use -j5, make never seems to run more than one job at a time. I believe I have found the culprit:  each time a file is compiled, gcc runs about 5 times.  This is because the $(check_gcc) macros and the TARGET_ARCH macros are late binding. The attached patch cuts the compilation time by 66%, from 1.5 minutes to 30 seconds.  Your mileage may very.  These statements have not been evaluated by the FDA. --- Rules.mak | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Rules.mak b/Rules.mak index 6a2e17a..ec03ce0 100644 --- a/Rules.mak +++ b/Rules.mak @@ -86,7 +86,7 @@ ARFLAGS=cru #-------------------------------------------------------- export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP ifeq ($(strip $(TARGET_ARCH)),) -TARGET_ARCH=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ +TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ -e 's/i.86/i386/' \ -e 's/sparc.*/sparc/' \ -e 's/arm.*/arm/g' \ @@ -115,8 +115,7 @@ check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; # for OPTIMIZATION... # use '-Os' optimization if available, else use -O2 -OPTIMIZATION= -OPTIMIZATION=${call check_gcc,-Os,-O2} +OPTIMIZATION:=${call check_gcc,-Os,-O2} # Some nice architecture specific optimizations ifeq ($(strip $(TARGET_ARCH)),arm) -- 2.7.4