Re: The longest build error ever, ever, ever seen :)(Re:linux-next: Tree for November 26)

From: Randy Dunlap
Date: Wed Dec 01 2010 - 13:30:54 EST


On Sun, 28 Nov 2010 00:55:14 -0600 Milton Miller wrote:

[also adding linux-next back to cc: list]


> On Sat Nov 27 2010 around 13:13:03 EST, Valdis Kletnieks wrote:
> > On Sat, 27 Nov 2010 08:45:55 PST, Greg KH said:
> > > On Sat, Nov 27, 2010 at 09:56:45AM +0100, Zimny Lech wrote:
> > > > Ave!
> > > >
> > > > 2010/11/26 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>:
> > > > > Hi all,
> > > > >
> > > >
> > > > OMG, LOL, this one is awesome :) The longest build error ever, ever,
> > > > ever seen! Fscking awesome, someone gets Guiness World Record :)
> > > >
> > > > LD drivers/staging/built-in.o
> > > > drivers/staging/rtl8192e/built-in.o: In function `rtl8192_setBBreg':
> > > > (.text+0xae00): multiple definition of `rtl8192_setBBreg'
> > > > drivers/staging/rtl8192u/built-in.o:(.text+0xa1a0): first defined here
> > >
> > > You built both of these drivers into the kernel, which causes the
> > > problem. Try building them as modules, or just one as a module, and
> > > that will solve the problem.
> >
> > We probably should create some Kconfig magic to prevent this situation?
> >
> > depends (othermodule != 'y') || (myself != 'y')
> >
> > or am I on the wrong track here?
> >
>
> A simple
>
> depends on !OTHERMODULE
>
> allows either to be built-in or both to be modular.
>
> It also documents what conflicts.
>
> (see Menu dependencies in Documentation/kbuild/kconfig-language.txt)

When added for 2 drivers that should not both be built-in, that
causes this error message:

drivers/staging/rtl8192u/Kconfig:1:error: recursive dependency detected!
drivers/staging/rtl8192u/Kconfig:1: symbol RTL8192U depends on RTL8192E
drivers/staging/rtl8192e/Kconfig:1: symbol RTL8192E depends on RTL8192U

but yes, only one driver is then built-in.

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
--
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/