Re: Kernel Bug in 2.4.35 when compiled gcc>=4.2.0 and -march=c3
From: Willy Tarreau
Date: Mon Aug 06 2007 - 15:17:49 EST
On Mon, Aug 06, 2007 at 11:01:16AM -0700, H. Peter Anvin wrote:
> Willy Tarreau wrote:
> >
> > I'm well aware of that, even in the example I wrote to reproduce the issue
> > and posted to gcc's bugzilla, I clearly have one function prototype and a
> > separate asm statement which contained a label with the function's name.
> >
> > So in my opinion, the code above is not buggy. It's dirty (though I did
> > not find how to produce the equivalent in a different manner).
> >
>
> Well, top-level assembly is usually nasty.
That's what I noticed :-)
I did not even know that was supported!
> Setting the section in the assembly statement as you said is probably the
> only thing you *can* do.
What made me hesitate is that I'm not 100% sure that all those sections
are used only in .text everywhere they are used. Maybe some of them
sometimes appear in .text.init, so finally I preferred not to play
dangerous games with this. In fact, I prefer the risk to break gcc-4.2
to the risk of breaking everything.
> I don't think there is any requirement that top-level assembly
> statements get the section set to .text on their behalf.
I don't think either. Other people certainly rely on such a feature
to be able to switch their sections by hand using one asm statement.
At least my fix looks unintrusive enough for me and works, so I'll
stick to it for now. And if something finally breaks, it will only
be gcc 4, the last one supported, so the less likely to affect well
established toolchains.
Regards,
Willy
-
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/