csj wrote:

> What's the real deal on the gcc-2.95 to gcc-3.2 transition? I've
> read enough FUD I can't distinguish the facts. Particularly, what
> programs or libraries are actually affected? What havoc would
> result from compiling the kernel or X with 3.2 on a largely
> Testing system (since Testing has gcc-2.95 as the default
> compiler)? Could the g(n)urus please speak up?

I haven't seen any real FUD on this (FUD implies someone trying to scare
you with half-truths or outright falsehoods), though there have been
some poorly-informed comments.

The big deal about the transition is that gcc 3.2 treats C++ names
differently than gcc 2.95 did. Therefore, you cannot link C++ code built
with gcc 3.2 to C++ code built with gcc 2.95. Where this gets
troublesome is that there are some shared libraries written in C++. Up
to now, the official packages for these libraries have all been built
with gcc 2.95, but now they'll be rebuilt using gcc 3.2. This means that
everything dependent on those libraries must also be rebuilt using gcc
3.2, and until the whole process is complete, you can expect some
breakage.

Things written in ordinary C, rather than C++, are not affected, should
not be broken by the transition, and need not be rebuilt.

Of course, one problem for the average user is that you may well not
know what language the programs you rely on were written in, so you
don't know what will break and what won't. The safest approach would be
to avoid updating your Sid machines until the transition is complete and
everything that needs to be rebuilt has been. Another approach, almost
as safe, would be to carefully inspect the dependencies of all packages
that are updated (before letting them install), and place on hold any
package that requires a library package with "c102" suffixed to its
name. These are the new C++ libraries built with gcc 3.2.

The Linux kernel is not written in C++, so you can build it with
whatever version of gcc you like. Last I heard, the kernel maintainers
still favored 2.95, but I think some people build their kernels with 3.2
and are happy with the results.

X is almost entirely in C, and so also should not be affected -- EXCEPT
for the GLU library, which is in C++. KDE or Qt (I forget which) depends
on this library, so if you're using KDE 2.2 or a gcc-2.95 build of KDE
3.x, avoid updating that library for now. There are probably other
things that depend on GLU, also.

The above represents my best understanding of the situation, but I'm sure
the gcc maintainers could do better.

Craig

Attachment: msg23393/pgp00000.pgp
Description: PGP signature

Reply via email to