[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#194242: gcc 3.3 v the kernel (was Bug#194242: .... drivers/atm/ambassador.c:301:21: ........)



* Brian M. Carlson (sandals@crustytoothpaste.ath.cx) wrote:
> On Sun, May 25, 2003 at 07:35:23PM +0100, Dr. David Alan Gilbert wrote:
> > * Brian M. Carlson (sandals@crustytoothpaste.ath.cx) wrote:
> > > 
> > > Indeed they are. The Linux kernel is part of the release criteria (at
> > > least it was for 3.0) [0]. The site states:
> > 
> > Which kernel version? On which architecture? With which drivers?
> 
> I really don't know. I'm not a mind reader. All I know is what is on the
> web site. I also know that gcc is the only compiler that consistently
> compiles the Linux kernel correctly--in general, that is.
> 
> > Its fair to say Gcc shouldn't have any bugs that show up in a few
> > kernel builds, but you can't expect them to test everything; like gcc
> > the kernel is a big piece of code.
> 
> No, I can't expect them to test everything, but I can expect them to
> give it at least a once through. This would have (or at least should
> have) been caught, because gcc 3.3 introduced a complete incompatibility
> with older versions: creating an error when pasting together two such
> tokens. I don't know what the standard says on this issue, but at most
> it requires a diagnostic, and a warning suffices. Changing the warning
> to an error breaks *a lot* of code that otherwise works, including the
> kernel.

Well, I've just compiled Linux 2.5.69 with gcc 3.3 (Debian as in Sid) -
all looks fine to me (although not tried to boot it).
I'm just pointing out that they probably did a similar test; they
compiled >>A<< linux kernel with some particular set of drivers
(hopefully a fairly large chunk) and hopefully they checked it and it
was OK; the fact that it fails in one (fairly obscure) driver is hardly
cause for criticising them for not meeting their release criteria.

> If a .c file doesn't turn into a .o file, and it did with 3.2 [0], that's
> a regression, and therefore a bug. You can argue for all eternity
> that it's not bug, but a feature, and I'll tell you that if Debian ever
> ships any version of gcc in unstable that doesn't compile the kernel,
> that's a bug.

Well I've got to say that that particular line has to come up in my
category as the weirdest use of #define macroing that I've seen. I
haven't got a clue if thats valid code or not.

Dave

 ---------------- Have a happy GNU millennium! ----------------------   
/ Dr. David Alan Gilbert    | Running GNU/Linux on Alpha,68K| Happy  \ 
\ gro.gilbert @ treblig.org | MIPS,x86,ARM,SPARC,PPC & HPPA | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/



Reply to: