Re: [patch, -git] drivers/media build fix for modular builds

Ingo Molnar
2008-04-30T08:14:49Z

* David Miller <davem@davemloft.net> wrote:

> From: Ingo Molnar <mingo@elte.hu>
> Date: Wed, 30 Apr 2008 09:48:07 +0200
>
> >
> > fix allmodconfig build bug introduced in latest -git by commit
> > 7c91f0624a9 ("V4L/DVB(7767): Move tuners to common/tuners"):
> >
> > LD kernel/built-in.o
> > LD drivers/built-in.o
> > ld: drivers/media/built-in.o: No such file: No such file or directory
> >
> > which happens if all media drivers are modular:
>
> I was seeing this too, as I think was Stephen Rothwell.

i think any build which has the media drivers only as modules will
trigger it, so it's rather widespread. My fix has held up fine for 10
randconfigs so far so it should do the trick.

i'm wondering though why similar problems are not more common. A quick
look at drivers/Makefile suggests that there are many obj-y rules there
for driver sub-trees that can be all-modular, not just video:

obj-y += video/
obj-y += char/
obj-y += serial/
obj-y += base/ block/ misc/ mfd/ net/ media/
obj-y += macintosh/
obj-y += ieee1394/
obj-y += cdrom/
obj-y += auxdisplay/
obj-y += i2c/
obj-y += lguest/
obj-y += firmware/

drivers/net/ obj-y is kept alive by the "obj-y wireless/" rule i think,
but what makes other sub-trees link, like drivers/macintosh/ ?

so kbuild apparently has smarts to handle this case - but somehow it
still failed for drivers/media/.

Sam Cc:-ed - am i missing some detail in this analysis?

hm, one weird rule is drivers/video/matrox/Makefile's my-obj- rule.

Ingo