> 1. GCC
> What's up with GCC now ? There is a gcc 2.7.2.3 which
> is still used with distributions although there exists
> GCC 2.8.1. Is it true that GCC 2.8.x produces symbols
> which are incompatible with 2.7.2.3 so that it impossible
> to link 2.8.x compiled programs with 2.7.x libs ?
> Or which reasons exists that the linux community
> hasn't migrated to 2.8.x. Will it be possible to migrate
> to egcs without recompiling the hole system ?
> I've installed 2.7.2.3 on my system without any patches.
> Is this correct or does there exist some patches which
> I should use.
Here's the deal:
2.7 is probably still the most "standard". For instance, it is the only
version which the Linux stable kernel (2.0.x) works properly with. (This
series of kernels relied on a bug in 2.7 to work properly, funny as that
is.)
2.8 is better than 2.7 because it has a lot of fixes and improvements over
2.7, especially in the area of C++. A lot of problems I had debugging
C++ programs went away in this version. Also, they introduce RTTI (run
time type thingy) which you can probably find more about on a web
search. It causes C++ (and probably Objective-C, although I don't
use it) objects to store their type at run time. You can read more about
this by doing a web search for RTTI. Yes, this makes gcc 2.8 libraries and
object archives incompatible with 2.7 stuff - UNLESS you use -no-rtti (which
you should probably do anyways if you're not really using it, since it
introduces a little bit of extra overhead).
In my humble opinion, however, you should forget about both of these
and go with egcs 1.1.1, which can be considered gcc 2.91.60. It has all the
things gcc 2.8 has but better, and is actively maintained by the good folks
at Cygnus. I was about to tear my hair out with the bugs in gdb 4.16 and
gcc 2.8 related to C++ development; now I'm fat and happy using egcs 1.1.1
and gdb 4.17. Go to egcs.cygnus.com for more info.
(BTW, SuSE has some patches on their website which will make the stable
linux kernel work semi-properly when compiled with egcs. I'd keep 2.7
around for compiling your kernel, however.)
> Can/Should I use g++/libstc++ 2.8.x with gcc 2.7.2.3 ?
This was also a source of major confusion, and a problem I never
managed to sort out. Again, it was magically fixed when I went
to egcs.