lkml.org 
[lkml]   [2008]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch, -git] drivers/media build fix for modular builds
On Wed, Apr 30, 2008 at 10:13:45AM +0200, Ingo Molnar wrote:
>
> * 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/ ?

drivers/media is special because it does not contain any files.
Kbuild will generate a built-in.o file only if there is
a chance for a .o file in the directory.

When all media is modules kbuild does not know enough
to say that a built-in.o is needed in drivers/media/
and the workaround to do a obj-y := common/
is the best way to do so.

We had a similar issue in driver/video once I think.
But here we solved it with the kconfig dependency.
If we only say obj-m += media/ then
kbuild will not try to link a built-in.o.
But if we say obj-y += media/ then kbuild will
expect to find a built-in.o in media/

Sam


\
 
 \ /
  Last update: 2008-04-30 11:27    [W:0.046 / U:7.540 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site