2006-10-06 19:25:56

by Valerie Henson

[permalink] [raw]
Subject: More info on section mismatches (was Re: [PATCH] [TULIP] Fix section mismatch in de2104x.c)

On Fri, Oct 06, 2006 at 02:39:41PM -0400, Jeff Garzik wrote:
> Matthew Wilcox wrote:
> >From: Helge Deller <[email protected]>
> >
> >WARNING: drivers/net/tulip/de2104x.o - Section mismatch: reference to
> >.init.text:de_init_one from .data.rel.local after 'de_driver' (at offset
> >0x20)
> >WARNING: drivers/net/tulip/de2104x.o - Section mismatch: reference to
> >.exit.text:de_remove_one from .data.rel.local after 'de_driver' (at offset
> >0x28)
>
> I'm a bit blind, so help me out here... what precisely is mismatched?
>
> AFAICS everything is properly marked __init or __exit.

(Cc'd Richard Henderson as resident gcc guru.)

We're discussing a way to get more information out of section mismatch
reports so that the causes of section mismatches are a little more
obvious. I'd like to see something like:

foo() is marked __init at line 34
bar() calls foo() at line 57

Arjan points out that optimization may make this difficult; I'm happy
with a separate script running at a lower level of optimization that
you can run by hand when one of these warnings shows up.

Ideas?

-VAL