On 21.6.2010 21:06, Andrew Morton wrote: > On Thu, 17 Jun 2010 12:50:52 +0000 > Tiago Maluta <tiago.maluta@xxxxxxxxx> wrote: > >> Linux has an recent option to define CROSS_COMPILE in menuconfig. >> >> Typically, one of the options when building for another target is >> ('arm' is just an example): >> >> # make ARCH=arm CROSS_COMPILE=arm-cc O=../build >> >> If I omit CROSS_COMPILE and use the new way in .config: >> CONFIG_CROSS_COMPILE="arm-cc" >> >> I got: >> >> cc1: error: unrecognized command line option "-mlittle-endian" >> cc1: error: unrecognized command line option "-mabi=aapcs-linux" >> cc1: error: unrecognized command line option "-mno-thumb-interwork" >> /usr/src/linux/kernel/bounds.c:1: error: bad value (armv5t) for >> -march= switch >> /usr/src/linux/kernel/bounds.c:1: error: bad value (armv5t) for >> -mtune= switch >> make[2]: *** [kernel/bounds.s] Error 1 >> make[1]: *** [prepare0] Error 2 >> make: *** [sub-make] Error 2 >> >> Verbose output clearly says that I'm using the host compiler instead >> cross compiler. >> This patch fixed my problem: >> >> --- >> __Makefile |______ 2 +- >> __1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/Makefile b/Makefile >> index d49d96c..5a6c7d5 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -190,7 +190,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ >> -e s/sun4u/sparc64/ \ >> __export KBUILD_BUILDHOST := $(SUBARCH) >> __ARCH____________________ ?= $(SUBARCH) >> __CROSS_COMPILE__ ?= >> -CROSS_COMPILE__ ?= $(CONFIG_CROSS_COMPILE:"%"=%) >> +CROSS_COMPILE__ := $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2) >> >> __# Architecture as present in compile.h >> __UTS_MACHINE______ := $(ARCH) >> -- > > Perhaps the "%"=% thing isn't supported with your version of make(1). > Which version are you using? My guess is that something expands $(CROSS_COMPILE) before make silentoldconfig generates include/config/auto.conf (which is where the makefile reads the CONFIG_* variables from). Tiago, can you try changing the $(shell ...) line to CROSS_COMPILE := $(shell ls include/config/auto.conf >&2; \ echo "CONFIG_CROSS_COMPILE $(CONFIG_CROSS_COMPILE) >&2; \ grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2) and tell us what it prints? Thanks, Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html