Re: Fix allnoconfig on arm with small tweak to kconfig?

From: Russell King
Date: Mon Sep 13 2004 - 13:55:32 EST


On Mon, Sep 13, 2004 at 08:22:24AM -0700, Dan Kegel wrote:
> Russell King wrote:
> > On Mon, Sep 13, 2004 at 12:53:33AM -0700, Dan Kegel wrote:
> >
> >>'make allnoconfig' generates a broken .config on arm because
> >>none of the boolean CPU types get selected.
> >>ARCH_RPC *does* get selected ok, and I can make CPU_SA110 the
> >>default if ARCH_RPC, but that doesn't help, since allnoconfig
> >>sets all booleans that are exposed to the user to false, so
> >>CPU_SA110 remains false.
> >
> >
> > allnoconfig is broken. It doesn't generate a legal configuration on
> > this platform.
>
> I think that's what I said. I guess you're saying it more forcefully;
> you seem to be implying "the basic idea of allnoconfig is broken."

Indeed - we can go around fixing the configuration to work on each
individual machine type, but... have you checked how many platforms
there are, and are you volunteering to test the kernel configuration
for each one?

I can tell you that, eg, IDE makes sense on SA1100 platform X but
not Y or Z. Do we _really_ want to express this level of complexity
in the kernel configuration?

On ARM, there are over 500 platform types in the database (ok, not
all of them are merged or even exist anymore, but that's still a
substantial number.) It is obviously completely impossible to rig
up the Kconfig subsystem such that every platform has a valid
configuration.

> I guess it depends on your goals. My goal is to use allnoconfig
> as a toolchain regression test. For each arch, I want an easy way
> to build some kernel (any kernel!) for that arch. ARCH_RPC
> is the default on arm (yes, I know you think the whole
> concept of defaults on arm is broken), so it's the only one that
> needs fixing.

Well, you're going to run into the same problem with Versatile and
the Integrator class of platforms as well.

Basically, there's a fair amount of conditions under which Kconfig
fails to perform reasonably, and these (little used) targets are
an example of that.

If you want something that's guaranteed to work, use one of the
per-platform default configurations. Nothing else carries any
guarantee what so ever on ARM.

(Also, I have no interest in all*config myself so even if someone
does fix it, chances are it'll get broken again. I believe that
the concept of all*config is a fundamentally broken concept for an
architecture with numerous platform configurations.)

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
-
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/