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

From: Valerie Henson <[email-masked]>
Date: Fri, 6 Oct 2006 12:25:21 -0700

On Fri, Oct 06, 2006 at 02:39:41PM -0400, Jeff Garzik wrote:
> Matthew Wilcox wrote:
> >From: Helge Deller <[email-masked]>
> >
> >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