Subject: Re: linux-next: net tree build failure

From: Stephen Rothwell <[email-masked]>
Date: Fri, 23 Jan 2009 21:50:57 +1100

On Fri, 23 Jan 2009 21:39:27 +1100 Stephen Rothwell <[email-masked]> wrote:
>
> Hi again,
> 
> On Fri, 23 Jan 2009 21:21:28 +1100 Stephen Rothwell <[email-masked]> wrote:
> >
> > So, this could be a compiler bug?
> 
> We pass -fno-common to gcc which seems to cause the (non-extern) const
> variable to end up in the bss.

       -fno-common
           In C, allocate even uninitialized global variables in the data
           section of the object file, rather than generating them as common
           blocks.  This has the effect that if the same variable is declared
           (without "extern") in two different compilations, you will get an
           error when you link them.  The only reason this might be useful is
           if you wish to verify that the program will work on other systems
           which always work this way.

I don't know why we use this, but it seems to basically make using
"extern" on variables in header files compulsory.  But it seems to be
moving the variable from *COM* to .bss rather than to .{ro}data as I would
expect from the description above.

Oh, well, easy to work around.
-- 
Cheers,
Stephen Rothwell                    [email-masked]
http://www.canb.auug.org.au/~sfr/