From Rich Paul:

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.
This commit is contained in:
Rob Landley 2005-07-28 19:38:52 +00:00
parent ef8f423e90
commit 088ee4134b

View File

@ -86,7 +86,7 @@ ARFLAGS=cru
#-------------------------------------------------------- #--------------------------------------------------------
export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP export VERSION BUILDTIME TOPDIR HOSTCC HOSTCFLAGS CROSS CC AR AS LD NM STRIP CPP
ifeq ($(strip $(TARGET_ARCH)),) 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/i.86/i386/' \
-e 's/sparc.*/sparc/' \ -e 's/sparc.*/sparc/' \
-e 's/arm.*/arm/g' \ -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... # for OPTIMIZATION...
# use '-Os' optimization if available, else use -O2 # 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 # Some nice architecture specific optimizations
ifeq ($(strip $(TARGET_ARCH)),arm) ifeq ($(strip $(TARGET_ARCH)),arm)