xfs
[Top] [All Lists]

Re: gcc-2.96-nn status

To: Martin Stricker <shugal@xxxxxx>
Subject: Re: gcc-2.96-nn status
From: Steve Lord <lord@xxxxxxx>
Date: Tue, 18 Sep 2001 17:14:31 -0500
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: Message from Martin Stricker <shugal@gmx.de> of "Tue, 18 Sep 2001 23:46:41 +0200." <3BA7C0C0.1AA1A470@gmx.de>
Sender: owner-linux-xfs@xxxxxxxxxxx
> Some clarification is needed:
> 
> Arun Ramakrishnan wrote:
> > 
> > I heard that 2.96 is again a devel version of gcc which is sorta
> > unstable.
> 
> Not true. It was a CVS snapshot which was hardened and tested by Red Hat
> staff. If you have problems compiling your code, chances are the highest
> that your code is buggy, see http://www.bero.org/gcc296.html .
> 

That refers mostly to user space things. The unfortunate issue with XFS
is that it does a LOT of 64 but data manipulation, which on an ia32 means
lots of messing with registers. In the few cases where I have managed to
track bugs down into the actual code it has invariably been because the
compiler forgot it had reused a register for something and attempted to
use it for old contents rather than reloading them off the stack or out
of memory. End result was usually an oops or some bizzare behavior.

95% of the XFS code base has had years of exposure in the Irix OS, and has
proven very reliable there. These specific problems have only emerged on
Linux, and so far the kgcc compiler (or egcs or how ever you want to
refer to it) has been the most robust when it comes to generating correct
code - probably because it was less aggressive about playing tricks with
registers than later compilers.

So, whilst I regularly do run kernels built with later compilers, there are
still these occasional bugs which show up because of them and we definitely
have cases where someone had corruption - rebuilt with kgcc and the
corruption went away. Tracking a compiler bug from filesystem corruption
on a machine on the other side of the planet is not something I care to
tackle.

Steve



<Prev in Thread] Current Thread [Next in Thread>