[NTLUG:Discuss] Evil GCC-2.96

cbbrowne@ntlug.org cbbrowne at ntlug.org
Wed Jun 13 23:32:53 CDT 2001


Will Senn wrote:
> Christopher Browne wrote:
>> "Evil" though the GCC 2.96 issue may be (sic)...
> 
> What do you mean?  I am running RedHat 7.1 and I have noticed that it is
> VERY difficult to successfully compile a kernel.  I seem to have no problems
> with other builds - just the kernel and modules.  Does this Evil 2.96 have
> something to do with it?
> 
> Eagerly awaiting answer to life's question (and this one :)

The "evil" is that RHAT issued version 2.96 without talking to the people at
Cygnus (a division of RHAT!) or the maintainers of GCC.

<http://gcc.gnu.org/gcc-2.96.html>

GCC 2.96
October 6th, 2000

It has come to our attention that some GNU/Linux distributions are
currently shipping with ``GCC 2.96''.

We would like to point out that GCC 2.96 is not a formal GCC release nor
will there ever be such a release. Rather, GCC 2.96 has been the code-
name for our development branch that will eventually become GCC 3.0.

Current snapshots of GCC, and any version labeled 2.96, produce
object files that are not compatible with those produced by either
GCC 2.95.2 or the forthcoming GCC 3.0. Therefore, programs built
with these snapshots will not be compatible with any official GCC
release. Actually, C and Fortran code will probably be compatible, but
code in other languages, most notably C++ due to incompatibilities in
symbol encoding (``mangling''), the standard library and the application
binary interface (ABI), is likely to fail in some way. Static linking
against C++ libraries may make a binary more portable, at the cost of
increasing file size and memory use.

...

In _favor_ of what RHAT did, the reasoning goes along the lines that the
C++ support in 2.95 was pretty deficient, and there were RHAT customers
_expecting_ better support.  So they bumped up version number, pulled
in a number of fixes, and released "2.96."  It won't be compatible with
any other version of G++, past _or_ future, but similar _is_ true for
2.95, which won't be compatible with 3.0.

The other complication is on the "kernel" side of things; Linus has been
reluctant to put in "fixes" that relate to dependancies that the kernel
had to 2.95; he does not consider it an "error" for the kernel not to
work perfectly with experimental compiler versions.  [Counterargument:
If the kernel depends on _bugs_ in 2.95, that's a bad thing that should
be fixed, right?]

In effect, RHAT was unwilling to wait for 3.0, and so "forked" their own
version.  How reprehensible that was is a matter of "point of view."  The
touchstone question really is:
  "Do you think they did this because of customer demand, or in order
   to set their distributions apart from other distributions?"

If it truly was customer demand, the "evil" is pretty banal.  If the
reasons for the fork were more sinister, then it's rather more evil.
It's hard to extract peoples' thoughts, so you'll have to judge this
one for yourself...
-- 
Christopher Browne
<http://www.ntlug.org/~cbbrowne/resume.html>
cbbrowne at acm.org



More information about the Discuss mailing list