Re: [patch] kbuild: remember ARCH in the object directory

From: Sam Ravnborg
Date: Tue Jun 12 2007 - 14:09:09 EST


On Tue, Jun 12, 2007 at 07:19:22PM +0200, Oleg Verych wrote:
> On Tue, Jun 12, 2007 at 09:12:09AM -0700, Randy Dunlap wrote:
> []
> > I did:
> >
> > # build a linux-2.6.22-rc4-git4 kernel source tree & cd into it
> > # mkdir BLD
> > $ make ARCH=i386 O=BLD defconfig
> > $ make -j4 O=BLD all >BLD/bld.out 2>&1
> >
> > and it cried to me:
> >
> > GEN /scsi/linsrc/linux-2.6.22-rc4-git4/BLD/Makefile
> > scripts/kconfig/conf -s arch/x86_64/Kconfig
> > #... many config warning lines
> > *
> > * Restart config...
> > *
> > *
> > * Processor type and features
> > *
> > Subarchitecture Type
> > > 1. PC-compatible (X86_PC)
> > 2. Support for ScaleMP vSMP (X86_VSMP) (NEW)
> > choice[1-2]: aborted!
> >
> > Console input/output is redirected. Run 'make oldconfig' to update configuration.
> >
> > make[3]: *** [silentoldconfig] Error 1
> > make[2]: *** [silentoldconfig] Error 2
> > make[1]: *** [include/config/auto.conf] Error 2
> > make: *** [all] Error 2
> >
> []
>
> > What did I do wrong??
>
> That Makefile is used only, if you are *in* that obj. directory.
> Thus `cd BLD` is what you've forget.
>
> There must be a better way to have this kind of choice be saved,
> but it's chicken-and-egg issue from the kconfig POV.
>
> As i'm always try to use separate obj. dir., i've made life easier
> *in* it.

I fully agree with the intent of the patch.
But it fails exactly because it introduce different behaviour
dependent of actual usage.

For non O= build ARCH is not saved and does not work
For make O= it does not work
For make in the output dir it works
For external modules it does not work

This will greatly confuse people.

If we go the "save important parts of the config" I prefer
something along the suggestion by hpa with a config file.
The config file should though be named along the lines
of Kbuild.config and the syntax should be future proof.
I like the syntax of the .git/config file and
it should be along these lines.

And the bahavior should be exactly the same for all uses
listed above.

Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/