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

Miquel van Smoorenburg
2008-05-02T09:30:27Z

On Thu, 2008-05-01 at 19:55 -0400, 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.

> 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)

Well the package version string is 4.1.1, but the compiler thinks it's
4.1.2, at least on i386, amd64 and ia64:

$ cc -v
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)

A small test program agrees:

printf("%d\n", __GNUC_PATCHLEVEL__);
$ ./a.out
2

Mike.