Re: Build failure (with insane config)

From: Adrian Bunk
Date: Mon Apr 28 2008 - 05:30:58 EST


On Sun, Apr 27, 2008 at 08:34:12PM -0700, Roland Dreier wrote:
> For x86-64, arch/x86/lib/Makefile has:
>
> lib-y += csum-partial_64.o csum-copy_64.o csum-wrappers_64.o
>
> so in particular ip_compute_csum() (from csum-partial_64.c) gets put in
> libs, so even though it is exported, it gets thrown away at link time if
> there are no non-modular users.
>
> However, if someone has an insane config with CONFIG_NET=n and
> CONFIG_VIDEO_BT848=m, then ip_compute_csum() gets discarded but the
> modular code in drivers/media/video/bt8xx/bttv-cards.c calls it and...
>
> ERROR: "ip_compute_csum" [drivers/media/video/bt8xx/bttv.ko] undefined!
>
> I guess one fix is just to put at least csum-partial_64.c in obj-y
> instead; it does seem broken to have files with EXPORT_SYMBOL() be
> lib-y, since it is really an invitation for this problem. Other ideas
> would be for bttv to depend on or select CONFIG_NET.
>...

This isn't the first time csum-partial_64.c is involved in such a kind
of breakage (and we constantly have this kind of bugs with various
exports from lib-y), and EXPORT_SYMBOL's in lib-y are simply wrong and
always bugs waiting to happen.

Axing lib-y is somewhere low priority on my TODO list.

> - R.

cu
Adrian

--

"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed

--
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/