Slashdot Mirror


GCC 3.2 Released

bkor forwards the GCC 3.2 release announcement, without attributing it as such: "The GCC 3.2 release is now available, or making its way to, the GNU FTP sites. The purpose of this release is to provide a stable platform for OS distributors to use building their next OS releases. A primary objective was to stabilize the C++ ABI; we believe that the interface to the compiler and the C++ standard library are now stable. There are almost no other bug-fixes or improvements in this compiler, relative to GCC 3.1.1. Be aware that C++ code compiled by GCC 3.2 will not interoperate with code compiled by GCC 3.1.1. More detail about the release is available. Many people contributed to this release -- too many to name here!"

11 of 311 comments (clear)

  1. Re:Breaking interoperability... again??? by edhall · · Score: 3, Interesting

    They also promised that the ABI was finished in 3.0. In fact, that was one of the reasons given for taking so long in getting 3.0 out the door. Not a good track-record, IMHO.

    Still, it will be good to get closer to standards-compliance. C++ has been standardized for four years, now, and fully compliant compilers are just now starting to appear. GCC has actually been fairly good compared to some (cough, Microsoft, cough) in adhering to the standard.

    -Ed
  2. Just compiled a kernel with it. by Neon+Spiral+Injector · · Score: 4, Interesting

    Looks like it produces smaller code than 3.1:

    803130 Aug 15 13:18 vmlinuz
    804713 Aug 6 09:08 vmlinuz.old

    At least by a tiny bit. Those are both Linux 2.4.19 kernels with the same .config files.

  3. Precompiled headers by FooBarWidget · · Score: 4, Interesting

    Does anybody know when GCC wil finally support precompiled headers?

  4. What does this mean for OS X? by frankie · · Score: 4, Interesting

    This is really bad timing for Apple folks.

    AFAIK, the entirety of Jaguar is compiled with GCC 3.1. Replacing all the libraries with v3.2 is gonna be some mighty huge software updates...

  5. Switching Compilers by Catskul · · Score: 3, Interesting

    From what Im reading in the comments, there can be problems when upgrading compilers across ABI versions. Can someone either summerize the possible difficulties, or point to a place on the web where I can read about them. What I mean is: If I switch from gcc 2.9x to gcc 3.2, what will I not be able to do, and what problems can I expect

    --

    Im not here now... Im out KILLING pepperoni
  6. Stable C++ ABI??? by Anonymous Coward · · Score: 5, Interesting

    Finally a stable C++ ABI ???

    1. This means that C++ _including objects+classes+ will, with a bit of grunt work, be able to be integrated with real-oo scripting languages just as easily as C - it's the constantly changing C++ ABI that has prevented, until now, "easy" bridging of, say, C++'s object model to Common Lisp's CLOS, without having to recompile everything in sight at the drop of a hat - it will now be possible to produce a C++-to-lisp analogue of, say, CMUCL's excellent "alien:" lisp package (nothing to do with the deb2rpm tool), or SWIG-but-for-proper+C++ for python and perl.

    2. It will mean that third-party binary distribution of C++ code is a lot more viable. Remember the way Netscape, Realplayer and flash used to break with every new RedHat release? - well, that was primarily becuase of libstdc++ not linking properly due to changing ABI.

    3. This should also mean that the prelink "hack" and it's ld.so-integrated successor can stabilise and become part of standard linux distros - no mare agonisingly slow KDE startup times!

  7. Re: kde speedups ? by Antity · · Score: 3, Interesting

    Where does the gcc 3.2 release stand in terms of fixing the linking speeds of C++ programs?

    Isn't this rather part of ld(1) (binutils)?

    --
    42. Easy. What is 32 + 8 + 2?
  8. C++ stability by Compuser · · Score: 3, Interesting

    If C++ ABI is now declared stable does this
    automatically imply that GCC is now fully C++
    standards compatible? If not then what is
    left to change?

  9. Re:(Sorta-kinda OT) - GCC3 and GCC 2.95.3 coexist? by FooBarWidget · · Score: 3, Interesting

    Use a different prefix! I have 4 different GCC versions on my system (2.96 and 3.0 both provided by RedHat, and 3.1 and 3.2).
    I configure GCC 3.2 like this: ../gcc-3.2/configure --prefix=/usr/local/gcc32 [misc unimportant options here]

    This way, *all* files will be installed in subdirectories inside /usr/local/gcc32. The binaries go to /usr/local/gcc32/bin, the libraries to /usr/local/gcc32/lib, etc. Removing GCC is as easy as rm -Rf /usr/local/gcc32

    To make sure GCC will work:
    - make a symlink /usr/bin/gcc32 to /usr/local/gcc32/bin/gcc
    - add /usr/local/gcc32/lib to /etc/ld.so.conf and run ldconfig

    I just installed GCC 3.2 an hour ago, but I installed GCC 3.1 using the same method (except that the prefix is /usr/local/gcc31) and everything work just fine; no problems whatsoever. I successfully compiled an entire GNOME 2 system using GCC 3.1.

  10. Athlon performance? by evilpaul13 · · Score: 3, Interesting

    Have all the problems that arose in 3.0 regarding performance on AMD Athlon processors been resolved? memcpy() among other things were quite slow when compared to similar processors with GCC 3, and with GCC 2.95.

  11. A mess for those running old/current distros... by kcbrown · · Score: 3, Interesting
    Suppose I have a system that uses an older compiler and I want to put gcc 3.2 on it. No problem as far as naming the compiler and such goes, that's the easy part.

    But now I have to recompile every single C++ library on the system in order to make the new compiler truly useful.

    Yet, at the same time, I want to be able to run my old C++ binaries and also want to be able to drop back to my older compiler if necessary.

    The best way to accomplish this, I suppose, is to put the new libraries in their own directory and modify gcc 3.2's spec file to include a -L directive to the linker to reference those libraries at link time and a -rpath directive at link time so that the resulting binary references that directory at runtime.

    The other options I thought of involve either renaming the libraries (thus requiring manual intervention when compiling any package that would refer to the libraries by their "old" names) or changing their major version number (surely a serious abuse of the purpose of the major number! And it would cause problems when linking using the old compiler anyway). Neither of those are very palatable.

    Anyone have better ideas on how to do this?

    --
    Use 'slashdot stuff' in the subject line in any email you send me if you want to get past the spam filter.