Skip to contentSkip to conversation

kbuild: fix reading CROSS_COMPILE from .config

PATCH Superseded Wu Fengguang 2 participants 3 messages Aug 21, 2010 – Aug 23, 2010 Kbuild

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 kbuild: fix reading CROSS_COMPILE from .config

Fix compile error

        $ ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- make
        ...
        cc1: error: unrecognized command line option "-m64"
        cc1: error: unrecognized command line option "-mno-red-zone"
        cc1: error: unrecognized command line option "-mcmodel=kernel"
        cc1: error: unrecognized command line option "-maccumulate-outgoing-args"

The error was introduced by patch kbuild-fix-config_cross_compile-issue-in-config.patch:

  -CROSS_COMPILE  ?= $(CONFIG_CROSS_COMPILE:"%"=%)
  +CROSS_COMPILE  := $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)

That patch does two things:
1) It grep for CONFIG_CROSS_COMPILE because we may not have incldued .config
2) It no longer pick up CROSS_COMPILE from the environment.

Traditionally we have picked up ARCH and CROSS_COMPILE from the environment, hence the use of "?=".
"?=" says - perform this assignment unless lhs is already defined. And lhs may be already defined is we have the symbol defined in the environment.

I think the original submitter changed from ?= to := without realizing this. So the patch should be adjusted to use ?= again before it is applied.

---

Andrew: it's an -mm tree only bug for now
Sam: I copied so many of your nice comments to the changelog, so that I added your Signed-off-by :)

Makefile +1 -1
index d646d69..af8864e 100644
@@ -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	:= $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)
+CROSS_COMPILE	?= $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)
 
 # Architecture as present in compile.h
 UTS_MACHINE 	:= $(ARCH)
Acked-by on v3 1/1
#1 lore raw
Quoted 25 lines · Wu Fengguang

Fix compile error

       $ ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- make
       ...
       cc1: error: unrecognized command line option "-m64"
       cc1: error: unrecognized command line option "-mno-red-zone"
       cc1: error: unrecognized command line option "-mcmodel=kernel"
       cc1: error: unrecognized command line option "-maccumulate-outgoing-args"

The error was introduced by patch kbuild-fix-config_cross_compile-issue-in-config.patch:

-CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
+CROSS_COMPILE := $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)

That patch does two things:
1) It grep for CONFIG_CROSS_COMPILE because we may not have incldued .config
2) It no longer pick up CROSS_COMPILE from the environment.

Traditionally we have picked up ARCH and CROSS_COMPILE from the environment, hence the use of "?=".
"?=" says - perform this assignment unless lhs is already defined. And lhs may be already defined is we have the symbol defined in the environment.

Quoted 7 lines

I think the original submitter changed from ?= to := without realizing this. So the patch should be adjusted to use ?= again before it is applied.

I think the line right above the chunk can be removed too, anyway,

Thanks.

Quoted 24 lines

---

Andrew: it's an -mm tree only bug for now
Sam: I copied so many of your nice comments to the changelog, so that I added your Signed-off-by :)

Makefile +0 -0
index d646d69..af8864e 100644
@@ -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 ?=

Makefile +1 -1
-CROSS_COMPILE	:= $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)
+CROSS_COMPILE	?= $(shell grep CONFIG_CROSS_COMPILE .config | cut -d'"' -f2)

# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/