Pick a Free OS

Michael Tiemann CTO, Red Hat

Why did Red Hat decide to ship a development snapshot of GCC instead of the

most recent released version, 2.95.2?

There was a lot of discussion about this on Slashdot when Red Hat 7 shipped,

and with 20/20 hindsight, it appears that no better technical decision could

have been made. I will leave it to speculation as to whether we could have

navigated certain political minefields better, but let me explain the

rationale again.

Red Hat has many different constituencies, ranging from enterprise customers

to ISVs to kernel developers to systems vendors. It would have been great if

GCC 3.0 had been a released compiler and had all the quality, performance,

functionality, and features that our various constituents required. Alas, GCC

3.0 is very much a work in progress, and while we've contributed significantly

to that work (many Red Hat engineers are full-time GCC developers), GCC 3.0 is

still quite a ways off. At the same time, the latest released version of the

compiler, 2.95.2, had a number of significant issues that made it an

inappropriate choice. There were issues related to newer kernel development,

issues related to newer glibc development, issues related to the ever-changing

C++ standard, and issues related to processor support (we wanted to make Red

Hat 7 a first-class IA-64 development platform). After careful analysis, we

concluded that if we tried to bring 2.95.2 up to the level that we required,

it would duplicate large amounts of work that we and others had already done

on the development snapshot. We decided it would be better to stabilize that

snapshot, than add more features to a compiler that had already given us a

certain amount of trouble. I think that Richard Henderson, one of the main

GCC developers summed it up best on the kernel developer's mailing list:

If you want to blame someone in Red Hat for making the decision to ship a gcc

snapshot, then you might as well blame me.

The reasons are the following:

1. 2.95 is the least stable release that we (the fsf gcc team) have shipped

in a long time. It does ok on x86, but is pathetic on the other platforms

that Red Hat cares about -- especially Alpha.

The late July snapshot we shipped is most definitely more stable, largely I

think due to Geoff's automated regression tester bitching at people when they

break the tree.

2. C++ in 2.95 is already ABI incompatible with egcs 1.1 and gcc 3.0, so