2009-09-28 17:56:09

by Pavel Machek

[permalink] [raw]
Subject: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

Hi!

After update to 2.6.32-rc1, I'm getting

"Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.

Note that the message has typo in it ("to to")... What is worse, the
message triggers even when I try to run make mrproper. Ouch.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


2009-09-28 18:03:09

by Pavel Machek

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Mon 2009-09-28 19:56:05, Pavel Machek wrote:
> Hi!
>
> After update to 2.6.32-rc1, I'm getting
>
> "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
>
> Note that the message has typo in it ("to to")... What is worse, the
> message triggers even when I try to run make mrproper. Ouch.

Ouch, the advice it tells me ("run mrproper") is quite evil -- it
kills .config which takes quite some effort to generate :-(.

Plus mrproper does not really fix it up. Even after removing all
traces of CCACHE, it now complains that ccachegcc is not found.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-09-28 18:09:01

by Pavel Machek

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Mon 2009-09-28 20:03:04, Pavel Machek wrote:
> On Mon 2009-09-28 19:56:05, Pavel Machek wrote:
> > Hi!
> >
> > After update to 2.6.32-rc1, I'm getting
> >
> > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> >
> > Note that the message has typo in it ("to to")... What is worse, the
> > message triggers even when I try to run make mrproper. Ouch.
>
> Ouch, the advice it tells me ("run mrproper") is quite evil -- it
> kills .config which takes quite some effort to generate :-(.
>
> Plus mrproper does not really fix it up. Even after removing all
> traces of CCACHE, it now complains that ccachegcc is not found.

No, it does not work as intended. I need "ccache " as a
cross-compiler, and system fails to understand that, even if I rm
include/generated/kernel.* (which seems like much better advice than
make mrproper!)
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-09-28 19:08:45

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Mon, Sep 28, 2009 at 07:56:05PM +0200, Pavel Machek wrote:
> Hi!
>
> After update to 2.6.32-rc1, I'm getting
>
> "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
>
> Note that the message has typo in it ("to to")... What is worse, the
> message triggers even when I try to run make mrproper. Ouch.

The massage is changed in kbuild-fixes.git - but it addresses only ARCH=

As a followup to your other mails:
The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
you have generally either decided to build for a new architecture or
you have changed the way you build the kernel (new toolchain or whatever).
So to clean up using "make mrproper" is perfectly justified.

The target group that uses CROSS_COMPILE to enable ccache are using
CROSS_COMPILE is a way it is not designed for so they should expect that it
is not a perfect match.

We cannot keep a lot of files around for the ccache folks when we for the
"build for a new arch" folks need to remove them all.

I will look into improving the message when CROSS_COMPILE changes.

Sam

2009-09-28 19:24:34

by Pavel Machek

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Mon 2009-09-28 21:08:41, Sam Ravnborg wrote:
> On Mon, Sep 28, 2009 at 07:56:05PM +0200, Pavel Machek wrote:
> > Hi!
> >
> > After update to 2.6.32-rc1, I'm getting
> >
> > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> >
> > Note that the message has typo in it ("to to")... What is worse, the
> > message triggers even when I try to run make mrproper. Ouch.
>
> The massage is changed in kbuild-fixes.git - but it addresses only ARCH=
>
> As a followup to your other mails:
> The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
> you have generally either decided to build for a new architecture or
> you have changed the way you build the kernel (new toolchain or whatever).
> So to clean up using "make mrproper" is perfectly justified.

Well, if I changed $CROSS_COMPILE, but not $ARCH, I probably do not
want my .config wiped, right? Maybe I'm updating to another toolchain
or something.

> I will look into improving the message when CROSS_COMPILE changes.

Thanks.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-09-28 19:25:40

by Pavel Machek

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

Hi!

> > After update to 2.6.32-rc1, I'm getting
> >
> > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> >
> > Note that the message has typo in it ("to to")... What is worse, the
> > message triggers even when I try to run make mrproper. Ouch.
>
> The massage is changed in kbuild-fixes.git - but it addresses only ARCH=
>
> As a followup to your other mails:
> The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
> you have generally either decided to build for a new architecture or
> you have changed the way you build the kernel (new toolchain or whatever).
> So to clean up using "make mrproper" is perfectly justified.
>
> The target group that uses CROSS_COMPILE to enable ccache are using
> CROSS_COMPILE is a way it is not designed for so they should expect that it
> is not a perfect match.

What is the recommended way to run ccache, then?
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-09-28 22:32:13

by Bernd Petrovitsch

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

Hi!

On Mon, 2009-09-28 at 21:25 +0200, Pavel Machek wrote:
[...]
> What is the recommended way to run ccache, then?
I don't know if it's the recommended way but
---- snip ----
make CC="ccache gcc"
---- snip ----
works for me.

Bernd
--
Firmix Software GmbH http://www.firmix.at/
mobil: +43 664 4416156 fax: +43 1 7890849-55
Embedded Linux Development and Services

2009-10-11 21:28:35

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Mon, Sep 28, 2009 at 09:25:36PM +0200, Pavel Machek wrote:
> Hi!
>
> > > After update to 2.6.32-rc1, I'm getting
> > >
> > > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> > >
> > > Note that the message has typo in it ("to to")... What is worse, the
> > > message triggers even when I try to run make mrproper. Ouch.
> >
> > The massage is changed in kbuild-fixes.git - but it addresses only ARCH=
> >
> > As a followup to your other mails:
> > The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
> > you have generally either decided to build for a new architecture or
> > you have changed the way you build the kernel (new toolchain or whatever).
> > So to clean up using "make mrproper" is perfectly justified.
> >
> > The target group that uses CROSS_COMPILE to enable ccache are using
> > CROSS_COMPILE is a way it is not designed for so they should expect that it
> > is not a perfect match.
>
> What is the recommended way to run ccache, then?
ccache is a frontend to gcc - so I would have expected
you would use:

make CC="ccache gcc"

Or does ccache also benefit ld and as and the other that receive
the $(CROSS_COMPILE) prefix?

Sam

2009-10-17 18:25:16

by Pavel Machek

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Sun 2009-10-11 23:27:57, Sam Ravnborg wrote:
> On Mon, Sep 28, 2009 at 09:25:36PM +0200, Pavel Machek wrote:
> > Hi!
> >
> > > > After update to 2.6.32-rc1, I'm getting
> > > >
> > > > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> > > >
> > > > Note that the message has typo in it ("to to")... What is worse, the
> > > > message triggers even when I try to run make mrproper. Ouch.
> > >
> > > The massage is changed in kbuild-fixes.git - but it addresses only ARCH=
> > >
> > > As a followup to your other mails:
> > > The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
> > > you have generally either decided to build for a new architecture or
> > > you have changed the way you build the kernel (new toolchain or whatever).
> > > So to clean up using "make mrproper" is perfectly justified.
> > >
> > > The target group that uses CROSS_COMPILE to enable ccache are using
> > > CROSS_COMPILE is a way it is not designed for so they should expect that it
> > > is not a perfect match.
> >
> > What is the recommended way to run ccache, then?
> ccache is a frontend to gcc - so I would have expected
> you would use:
>
> make CC="ccache gcc"
>
> Or does ccache also benefit ld and as and the other that receive
> the $(CROSS_COMPILE) prefix?

You are right that I don't strictly need ccache for anything but cc.

But anyway, check was buggy; I had CROSS_COMPILE="ccache ", and the
space at the end broke it.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-10-17 18:41:34

by Sam Ravnborg

[permalink] [raw]
Subject: Re: 32-rc1: "CROSS_COMPILE changed" message breaks compilation

On Sat, Oct 17, 2009 at 08:25:12PM +0200, Pavel Machek wrote:
> On Sun 2009-10-11 23:27:57, Sam Ravnborg wrote:
> > On Mon, Sep 28, 2009 at 09:25:36PM +0200, Pavel Machek wrote:
> > > Hi!
> > >
> > > > > After update to 2.6.32-rc1, I'm getting
> > > > >
> > > > > "Makefile:197: *** CROSS_COMPILE changed from "ccache" to to "ccache ". Use "make mrproper" to fix it up. Stop.
> > > > >
> > > > > Note that the message has typo in it ("to to")... What is worse, the
> > > > > message triggers even when I try to run make mrproper. Ouch.
> > > >
> > > > The massage is changed in kbuild-fixes.git - but it addresses only ARCH=
> > > >
> > > > As a followup to your other mails:
> > > > The reason to use "make mrproper" is that when ARCH or CROSS_COMPILE changes
> > > > you have generally either decided to build for a new architecture or
> > > > you have changed the way you build the kernel (new toolchain or whatever).
> > > > So to clean up using "make mrproper" is perfectly justified.
> > > >
> > > > The target group that uses CROSS_COMPILE to enable ccache are using
> > > > CROSS_COMPILE is a way it is not designed for so they should expect that it
> > > > is not a perfect match.
> > >
> > > What is the recommended way to run ccache, then?
> > ccache is a frontend to gcc - so I would have expected
> > you would use:
> >
> > make CC="ccache gcc"
> >
> > Or does ccache also benefit ld and as and the other that receive
> > the $(CROSS_COMPILE) prefix?
>
> You are right that I don't strictly need ccache for anything but cc.
>
> But anyway, check was buggy; I had CROSS_COMPILE="ccache ", and the
> space at the end broke it.

I assume you did not read the other mail relevant to this topic.
The patch in question has been reverted.

Sam