Hi everyone.
Solving other things, I have realized that all that problem on fast
CC detection (CCFOUND) is easily solved by doing:
CC := $(.................)
instead of
CC = $(.........)
The find of the suitable CC command is repeated many times along a
kernel build. And CC is not anything that can change along a kernel
build. So former syntax solves all the problems, CC detection can
be so complex as you want because is done only once.
Same is valid for other Makefile variables:
CPP = $(CC) -E ===> CPP := $(CC) -E
(If you want to test how many shells are spawned when using CC, try
CC = $(shell echo "===== CC EVAL ===============" >&2; if ........
vs
CC := $(shell echo "===== CC EVAL ===============" >&2; if .......
Is there something I am missing ?
--
J.A. Magallon $> cd pub
mailto:[email protected] $> more beer
Linux werewolf 2.2.19-pre3-aa2 #9 SMP Tue Dec 26 12:26:43 CET 2000 i686
On Tue, 26 Dec 2000 21:11:14 +0100,
"J . A . Magallon" <[email protected]> wrote:
>Solving other things, I have realized that all that problem on fast
>CC detection (CCFOUND) is easily solved by doing:
> CC := $(.................)
>instead of
> CC = $(.........)
>The find of the suitable CC command is repeated many times along a
>kernel build. And CC is not anything that can change along a kernel
>build. So former syntax solves all the problems, CC detection can
>be so complex as you want because is done only once.
>
>Is there something I am missing ?
Yes. Some arch files change CROSS_COMPILE after CC has been set and
expect the change to flow into the definition of CC. This "feature"
only works because '=' stores the value as text and reevaluates the
text each time, automatically picking up any changes to CROSS_COMPILE.
Using CC := might break m68k and mips. The makefile redesign for 2.5
will fix this problem once and for all.
On 2000.12.28 Keith Owens wrote:
>
> Yes. Some arch files change CROSS_COMPILE after CC has been set and
> expect the change to flow into the definition of CC. This "feature"
> only works because '=' stores the value as text and reevaluates the
> text each time, automatically picking up any changes to CROSS_COMPILE.
> Using CC := might break m68k and mips. The makefile redesign for 2.5
> will fix this problem once and for all.
>
OK, understrood. Anyway, I know there is not too much impact of this
issue, but you could always convert-to-fast-version the more
critical vars with something like:
CC = .........
CPP = $(CC) -E
..
include arch/$(ARCH)/Makefile
# Eval them once forever
CC:=$(CC)
CPP:=$(CPP)
--
J.A. Magallon $> cd pub
mailto:[email protected] $> more beer
Linux werewolf 2.2.19-pre3-aa3 #3 SMP Wed Dec 27 10:25:32 CET 2000 i686