Re: huge gcc 4.1.{0,1} __weak problem

Sam Ravnborg
2008-05-02T10:43:28Z

On Fri, May 02, 2008 at 10:55:09AM +0100, Alistair John Strachan wrote:
> Hi Chris,
>
> (I fixed the corrupted CC and Reply-to: address from your email.)
>
> On Friday 02 May 2008 00:55:58 Chris Knadle wrote:
> > On Thu, 1 May 2008, Linus Torvalds wrote:
> > > On Thu, 1 May 2008, Andrew Morton wrote:
> > > > > I see only the following choices:
> > > > > - remove __weak and replace all current usages
> > > > > - move all __weak functions into own files, and ensure that also
> > > > > happens for future usages
> > > > > - #error for gcc 4.1.{0,1}
> > > >
> > > > Can we detect the {0,1}? __GNUC_EVEN_MORE_MINOR__?
> > >
> > > It's __GNUC_PATCHLEVEL__, I believe.
> > >
> > > So yes, we can distinguish 4.1.2 (good, and very common) from 4.1.{0,1}
> > > (bad, and rather uncommon).
> > > And yes, considering that 4.1.1 (and even more so 4.1.0) should be rare
> > > to begin with, I think it's better to just not support it.
> > >
> > > Linus
> >
> > Unfortunately Debian Stable (i.e. Etch), which is relatively popular for
> > server use, is still using 4.1.1 :-( (The current gcc package is
> > gcc-4.1.1-21)
> >
> > I have not looked to see if Debian Stable's gcc-4.1.1-21 has been
> > patched for the currently discussed __weak bug.
>
> I checked and it has been patched in 4.1.1-21. This would make checking for
> 4.1.1 via __GNUC_PATCHLEVEL__ potentially invalid, as patched distro
> compilers may (and in this case do) have this fixed.

Is it possible to cook up a small sample file we could build as part
of the kernel build. If it fails => error out.
If someone comes up with the code I shall try to integrate it
in the build system.

Sam