[email protected] wrote, on 05/06/09 04:51:
I wonder if you had run MAKEFLAGS="CC=gcc-4.4" make menuconfig?
From what I can tell, thatou ought to work with make-kpkg as well. In
any case, this might be worth documenting.
manoj
Running:
MAKEFLAGS="CC=gcc-4.4" make menuconfig
does not cause gcc-4.4 to appear anywhere in the source/build tree.
menuconfig is not a valid make-kpkg target, one has to use:
MAKEFLAGS="CC=gcc-4.4" make-kpkg --config menuconfig
That creates ./arch/x86/kernel/.asm-offsets.s.cmd and
./kernel/.bounds.s.cmd:cmd_kernel/bounds.s with references to the
gcc-4.4 compiler. These files get re-written when running:
make-kpkg --initrd linux-image modules-image
I then tried MAKEFLAGS="CC=gcc-bogus" make-kpkg --initrd linux-image
modules-image and the build failed quickly:
CC kernel/bounds.s
/bin/sh: gcc-bogus: command not found
I then set the compiler in the toplevel Makefile to gcc-bogus and ran:
MAKEFLAGS="CC=gcc-4.4";export MAKEFLAGS; CONCURRENCY_LEVEL=32 make-kpkg
--config menuconfig --initrd linux-image modules-image
and found the error:
HOSTCC scripts/basic/fixdep
/bin/sh: gcc-bogus: command not found
so it appears that the compilation of the scripts uses the gcc specified
in the toplevel Makefile unless reset by setting HOSTCC in MAKEFLAGS.
The compilation of the kernel itself depends on the setting of CC in
MAKEFLAGS in the command
MAKEFLAGS="CC=gcc-4.4" make-kpkg --initrd linux-image modules-image
So I would suggest that the make-kpkg manual page make clear that the
kernel compilation scripts use HOSTCC specified in
MAKEFLAGS="HOSTCC=gcc-W.X CC=gcc-Y.Z" line, and the CC in MAKEFLAGS is
used to build the kernel itself, and if CC or HOSTCC is not defined in
MAKEFLAGS, then the CC in the toplevel Makefile is used.
Arthur.
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]