[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]

Reply via email to