All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yegor Yefremov <yegorslists@googlemail.com>
To: Tiago Maluta <tiago.maluta@gmail.com>
Cc: Michal Marek <mmarek@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, Roland McGrath <roland@redhat.com>,
	linux-kbuild@vger.kernel.org
Subject: Re: [PATCH] Fix CONFIG_CROSS_COMPILE issue in .config
Date: Wed, 4 Aug 2010 14:16:15 +0200	[thread overview]
Message-ID: <AANLkTinC6Sqs7W--=14nmJFDcTS4HQn0=ysn7VhYDDX6@mail.gmail.com> (raw)
In-Reply-To: <AANLkTil2-YNAa-jyOYD4cNtbJQ1XQJ6-v3iJ6wxpz7br@mail.gmail.com>

On Wed, Jun 23, 2010 at 5:44 AM, Tiago Maluta <tiago.maluta@gmail.com> wrote:
> On Mon, Jun 21, 2010 at 4:54 PM, Michal Marek <mmarek@suse.cz> wrote:
>> On 21.6.2010 21:06, Andrew Morton wrote:
>>> On Thu, 17 Jun 2010 12:50:52 +0000
>>> Tiago Maluta <tiago.maluta@gmail.com> 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?
>
> I'm using GNU Make 3.81.
>
> I think you missed a quote in echo..., I using:
>
> 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 the output:
> $ make ARCH=arm O=../build
>
> include/config/auto.conf
> CONFIG_CROSS_COMPILE
>  Using /usr/src/linux as source for kernel
>  GEN     /usr/src/build/Makefile
>  CHK     include/linux/version.h
>  CHK     include/generated/utsrelease.h
> make[2]: `include/generated/mach-types.h' is up to date.
>  CALL    /usr/src/linux/scripts/checksyscalls.sh
>  CHK     include/generated/compile.h
>  CC      arch/arm/mm/init.o
>
> ^C
>
> Means that is nothing CONFIG_CROSS_COMPILE.
>
> I agree with Andrew, directly grepping .config isn't the right thing to do.
> I'd like to discuss a better solution.

What about such a solution:

just remove empty  CROSS_COMPILE  ?=

Regards,
Yegor

Fix CONFIG_CROSS_COMPILE issue in .config

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>

Index: b/Makefile
===================================================================
--- a/Makefile	2010-08-02 00:11:14.000000000 +0200
+++ b/Makefile	2010-08-04 14:08:51.000000000 +0200
@@ -189,7 +189,6 @@
 # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
 export KBUILD_BUILDHOST := $(SUBARCH)
 ARCH		?= $(SUBARCH)
-CROSS_COMPILE	?=
 CROSS_COMPILE	?= $(CONFIG_CROSS_COMPILE:"%"=%)

 # Architecture as present in compile.h

  reply	other threads:[~2010-08-04 12:16 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-17 12:50 [PATCH] Fix CONFIG_CROSS_COMPILE issue in .config Tiago Maluta
2010-06-21 19:06 ` Andrew Morton
2010-06-21 19:09   ` Roland McGrath
2010-06-21 19:54   ` Michal Marek
2010-06-23  3:44     ` Tiago Maluta
2010-08-04 12:16       ` Yegor Yefremov [this message]
2010-08-05 21:37         ` Roland Dreier
2010-08-05 22:26           ` Roland McGrath
2010-08-10  6:43             ` Yegor Yefremov
2010-08-10  7:33               ` Roland McGrath
2010-08-10 11:21               ` Michal Marek
2010-08-16 12:35                 ` Andrew Hendry
2010-08-16 12:40                   ` Michal Marek
2010-08-16 12:51                     ` Andrew Hendry
2012-02-16  6:03 ` ramana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTinC6Sqs7W--=14nmJFDcTS4HQn0=ysn7VhYDDX6@mail.gmail.com' \
    --to=yegorslists@googlemail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmarek@suse.cz \
    --cc=roland@redhat.com \
    --cc=tiago.maluta@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.