2007-11-20 00:14:57

by Dave Jones

[permalink] [raw]
Subject: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

Trying to do a 32bit build on a 64bit machine.
I did..
make ARCH=i386 oldconfig
make ARCH=i386 arch/x86/

and got..

scripts/kconfig/conf -s arch/x86/Kconfig
CHK include/linux/version.h
UPD include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
HOSTCC scripts/kallsyms
HOSTCC scripts/conmakehash
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
HOSTCC scripts/bin2c
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
CC arch/x86/kernel/asm-offsets.s
GEN include/asm-x86/asm-offsets.h
CALL scripts/checksyscalls.sh
/mnt/raid0/src/linux-2.6/arch/x86/Makefile_32:43: *** Recursive variable `KBUILD_CFLAGS' references itself (eventually). Stop.
make: *** [arch/x86/] Error 2


Dave

--
http://www.codemonkey.org.uk


2007-12-31 13:16:28

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

On Mon, Nov 19, 2007 at 07:14:45PM -0500, Dave Jones wrote:
> Trying to do a 32bit build on a 64bit machine.
> I did..
> make ARCH=i386 oldconfig
> make ARCH=i386 arch/x86/
>
> and got..
>
> scripts/kconfig/conf -s arch/x86/Kconfig
> CHK include/linux/version.h
> UPD include/linux/version.h
> CHK include/linux/utsrelease.h
> UPD include/linux/utsrelease.h
> SYMLINK include/asm -> include/asm-x86
> HOSTCC scripts/kallsyms
> HOSTCC scripts/conmakehash
> CC scripts/mod/empty.o
> HOSTCC scripts/mod/mk_elfconfig
> HOSTCC scripts/bin2c
> MKELF scripts/mod/elfconfig.h
> HOSTCC scripts/mod/file2alias.o
> HOSTCC scripts/mod/modpost.o
> HOSTCC scripts/mod/sumversion.o
> HOSTLD scripts/mod/modpost
> CC arch/x86/kernel/asm-offsets.s
> GEN include/asm-x86/asm-offsets.h
> CALL scripts/checksyscalls.sh
> /mnt/raid0/src/linux-2.6/arch/x86/Makefile_32:43: *** Recursive variable `KBUILD_CFLAGS' references itself (eventually). Stop.
> make: *** [arch/x86/] Error 2

Hi Dave.

Walking through my mailbox I found this one.
I did not get similar reports and I cannot reproduce it.

Do you continue to see this or had it been fixed somehow?
The only way I can see it heppen is that you have lost
the initial assignmnet in top-level Makefile so
make see this as an '=' assinment and not a ':='
assignment.
The first may not reference itself.

Sam

2007-12-31 16:10:41

by Dave Jones

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

On Mon, Dec 31, 2007 at 02:16:19PM +0100, Sam Ravnborg wrote:

> > Trying to do a 32bit build on a 64bit machine.
> > I did..
> > make ARCH=i386 oldconfig
> > make ARCH=i386 arch/x86/
>
> Walking through my mailbox I found this one.
> I did not get similar reports and I cannot reproduce it.
> Do you continue to see this or had it been fixed somehow?

Still happens for me with the latest tree from git.

$ make ARCH=i386 arch/x86/
HOSTCC scripts/kconfig/conf.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf -s arch/x86/Kconfig
CHK include/linux/version.h
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
/mnt/raid0/src/linux-2.6/arch/x86/Makefile_32:43: *** Recursive variable `KBUILD_CFLAGS' references itself (eventually). Stop.
make: *** [arch/x86/] Error 2

> The only way I can see it heppen is that you have lost
> the initial assignmnet in top-level Makefile so
> make see this as an '=' assinment and not a ':='
> assignment.

$ git diff Makefile
$

(This tree is completely pristine, no changes at all)

Dave

--
http://www.codemonkey.org.uk

2008-01-01 00:49:45

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

On Mon, Dec 31, 2007 at 11:10:21AM -0500, Dave Jones wrote:
> On Mon, Dec 31, 2007 at 02:16:19PM +0100, Sam Ravnborg wrote:
>
> > > Trying to do a 32bit build on a 64bit machine.
> > > I did..
> > > make ARCH=i386 oldconfig
> > > make ARCH=i386 arch/x86/
> >
> > Walking through my mailbox I found this one.
> > I did not get similar reports and I cannot reproduce it.
> > Do you continue to see this or had it been fixed somehow?
>
> Still happens for me with the latest tree from git.
>
> $ make ARCH=i386 arch/x86/
> HOSTCC scripts/kconfig/conf.o
> HOSTLD scripts/kconfig/conf
> scripts/kconfig/conf -s arch/x86/Kconfig
> CHK include/linux/version.h
> CHK include/linux/utsrelease.h
> UPD include/linux/utsrelease.h
> CALL scripts/checksyscalls.sh
> /mnt/raid0/src/linux-2.6/arch/x86/Makefile_32:43: *** Recursive variable `KBUILD_CFLAGS' references itself (eventually). Stop.
> make: *** [arch/x86/] Error 2

Can reproduce it now. Will take a look tomorrow.

Sam

2008-01-24 21:27:43

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

On Mon, Dec 31, 2007 at 11:10:21AM -0500, Dave Jones wrote:
> On Mon, Dec 31, 2007 at 02:16:19PM +0100, Sam Ravnborg wrote:
>
> > > Trying to do a 32bit build on a 64bit machine.
> > > I did..
> > > make ARCH=i386 oldconfig
> > > make ARCH=i386 arch/x86/
> >
> > Walking through my mailbox I found this one.
> > I did not get similar reports and I cannot reproduce it.
> > Do you continue to see this or had it been fixed somehow?
>
> Still happens for me with the latest tree from git.
>
> $ make ARCH=i386 arch/x86/

There is no easy fx for this one.
You try to build one of the non-standard directories and it just
fails because arch/x86/Makefile is not a regular Kbuild file.

Try with any other directory (almost any other) and it works.
Considered unfortunate but not a bug - so I will not try to fix it.

Sam

2008-01-24 21:31:28

by Jan Engelhardt

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).


On Jan 24 2008 22:27, Sam Ravnborg wrote:
>> > > Trying to do a 32bit build on a 64bit machine.
>> > > I did..
>> > > make ARCH=i386 oldconfig
>> > > make ARCH=i386 arch/x86/
>> >
>> > Walking through my mailbox I found this one.
>> > I did not get similar reports and I cannot reproduce it.
>> > Do you continue to see this or had it been fixed somehow?
>>
>> Still happens for me with the latest tree from git.
>>
>> $ make ARCH=i386 arch/x86/
>
>There is no easy fx for this one.
>You try to build one of the non-standard directories and it just
>fails because arch/x86/Makefile is not a regular Kbuild file.
>
>Try with any other directory (almost any other) and it works.
>Considered unfortunate but not a bug - so I will not try to fix it.

So, how are we going to build only arch/x86/ right now with kbuild?

2008-01-24 21:34:10

by Sam Ravnborg

[permalink] [raw]
Subject: Re: Recursive variable `KBUILD_CFLAGS' references itself (eventually).

On Thu, Jan 24, 2008 at 10:31:18PM +0100, Jan Engelhardt wrote:
>
> On Jan 24 2008 22:27, Sam Ravnborg wrote:
> >> > > Trying to do a 32bit build on a 64bit machine.
> >> > > I did..
> >> > > make ARCH=i386 oldconfig
> >> > > make ARCH=i386 arch/x86/
> >> >
> >> > Walking through my mailbox I found this one.
> >> > I did not get similar reports and I cannot reproduce it.
> >> > Do you continue to see this or had it been fixed somehow?
> >>
> >> Still happens for me with the latest tree from git.
> >>
> >> $ make ARCH=i386 arch/x86/
> >
> >There is no easy fx for this one.
> >You try to build one of the non-standard directories and it just
> >fails because arch/x86/Makefile is not a regular Kbuild file.
> >
> >Try with any other directory (almost any other) and it works.
> >Considered unfortunate but not a bug - so I will not try to fix it.
>
> So, how are we going to build only arch/x86/ right now with kbuild?

It is not poissible.

You can do:
make arch/x86/kernel/
make arch/x86/lib/
make arch/x86/mm/

But there is no easy way to build them in one go.

Sam