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
msg23393/pgp00000.pgp
Description: PGP signature