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!"

20 of 311 comments (clear)

  1. What about binary-only packages by dusanv · · Score: 2, Interesting

    What am I supposed to do with games/commercial software compiled with 2.95.x? Is that not going to work? Someone please enlighten me...

  2. GCC3.2 and GDB compatibility by Anonymous Coward · · Score: 2, Interesting

    What I'd really like to see is gdb working with GCC3.2. We've been developing with gnu c++ 3.1 here, and 3.1 is much more standards-compliant than, say, 2.96. However, using gdb in conjunction with it is a real headache. Perhaps with this stabilized 3.2 release, there shall come a day when gdb is really useful.

  3. Re:Breaking interoperability... again??? by jwiegley · · Score: 2, Interesting
    Perhaps you are misreading it. Code compiled with 3.2 will not be interoperable with code compiled with 3.1.1.

    I would intrepet this as saying: If you have say a shared library that was compiled with 3.1.1 and you attempt to use that library with a program compiled with 3.2 then it won't work because the compiled results are not interoperable.

    But you can simply recompile both parts using 3.2 and they will work fine. you don't need to change the source code.

    --
    I will never live for sake of another man, nor ask another man to live for mine.
  4. The compiler who cried wolf? by Anonymous Coward · · Score: 1, Interesting

    How many times is the C++ ABI going to be declared stable before it actually is?

    I would have much preferred sticking with 3.1's slightly-broken ABI than 3.2's supposedly-fixed at this point. There's only so many times entire distributions and toolsets can get rebuilt before packagers are fed up.

  5. 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
  6. 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.

  7. ABI ?? by jo-do-cus · · Score: 2, Interesting

    call me stupid, I know about API's, but what exactly is an ABI ?????

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

    Does anybody know when GCC wil finally support precompiled headers?

  9. 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...

    1. Re:What does this mean for OS X? by anarkhos · · Score: 2, Interesting

      I'm sure Apple decided to use 3.1 based on the API being stable, so they've gotten the rug pulled from under them!

      The problem isn't only system libraries which are based on C++ but their developer tools which use gcc 3.1. This means when Apple moves to 3.2 they will have to inform everybody that all their libraries will also have to be redistributed with their programs.

      In the meantime I worry that bugs in 3.1 which are fixed in 3.2 will be difficult to merge with 3.1 which only Apple will be using. What a pain |-\

      I'm not sure if drivers are effected because they use a limited C++ subset. If they are Apple will probably maintain 3.1 for a long time, even though they will be the only ones doing it |-\ Anyway, there is no telling if 3.2 is stable either!

      --
      >80 column hard wrapped e-mail is not a sign of intelligent
      >life
  10. 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
  11. 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!

  12. 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?
  13. 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?

  14. Re:Heh I wonder if it compiles the Linux kernel by Neon+Spiral+Injector · · Score: 2, Interesting

    Oh, I got off on a tangent, and didn't answer one of the questions that well.

    My friends are the ones who are muscians. They have their own tools and seem to use Windows or just dedicated studio hardware. I mostly make noise, I think they are calling it Intelligent Dance Music this week.

    Most of my stuff comes from my head and is performed in code. If I don't like how something sounds I change the code. So I have to do little production work.

    I use the inputs on the mixing board (along with it's mic preamps) when I need to aquire something from the analog world. Such as vocals from one of my friends (I have promissed I will not try to sing again).

    I divide the vocal sample up into phrases that I can then "render" into the final output.

    One thing that is nice, is to render into an 8 channel audio file, seperating vocals or other parts that are very discrete so I can get a rough idea at what levels I should mix each channel using the analog slides. I can just loop the track or selection and sit there and tweak until it sounds good, then look at the values on the sliders to try in a final 2 channel rendering.

    So to simply answer you question. I don't sequence or produce in the standard definations of the words.

    Oh well who cares about the moderation, I'm talking about something I enjoy. :)

  15. 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.

  16. 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.

  17. Visual C++ ABI? by Anonymous Coward · · Score: 1, Interesting

    Does VC++ have an ABI? Are they all compatible? Could I check by trying to link a VC++6 .lib to a VC++7 .exe?

  18. 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.
  19. Re:An answer from a maintainer by Arandir · · Score: 2, Interesting

    Seriously, what makes you think the entire team doesn't already understand this point? Do you think such decisions are made lightly? Go read the archives; they agonized over this for months, and that was before the heavy debating started.

    Your explanations make sense, but they don't address an important point. Perhaps I should put on my hip boots and wade thru your archives.

    Why are you not deferring ABI changes to major (or relatively major) releases? Why the breakage in 3.1.1? If you find a bug in the ABI, will you break it in 3.2.1 or wait until 3.3 instead?

    I'm thinking to myself that a lot of these problems could have been avoided by spitting gcc into a stable and a devel branch.

    --
    A Government Is a Body of People, Usually Notably Ungoverned