GCC version

Programming, for all ages and all languages.
Post Reply
srg

GCC version

Post by srg »

Hi

I was wondering, not just in os dev, but in all development, there seems to be 3 versions of GCC that are mainly used 3.3.x, 3.4.x and 4.0.x.

I was wondering, what are the advantages and disadvantages of these different versions as with most other compilers I've seen, most people try to plump for the latest one.

Of course, I realise there are still people using 2.95.x (which I have on my Amiga).
User avatar
Candy
Member
Member
Posts: 3882
Joined: Tue Oct 17, 2006 11:33 pm
Location: Eindhoven

Re:GCC version

Post by Candy »

srg wrote: I was wondering, not just in os dev, but in all development, there seems to be 3 versions of GCC that are mainly used 3.3.x, 3.4.x and 4.0.x.

I was wondering, what are the advantages and disadvantages of these different versions as with most other compilers I've seen, most people try to plump for the latest one.
3.3 is well-tested and default on most installations, so you just use it. 3.4 is relatively well-tested and not too new, so it compiles all older code well while being newer. 4.x is new and complains about some things I consider normal, plus it's less tested. Of course, it's the newest so people are going to want it.
srg

Re:GCC version

Post by srg »

Candy wrote:Of course, it's the newest so people are going to want it.
Especially the Fortran lot I expect LOL
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re:GCC version

Post by Solar »

3.3.6 has been the last release of its branch, development is closed.

3.4.5 is open for regression and documentation fixes only, and is scheduled for the closing release in Feb. 2006. Highlights from the list of changes:
  • requires GNU make and a C90 compiler to be build;
  • <varargs.h> has finally been tossed out;
  • ABI changes for several architectures (not x86);
  • new compilation scheme may break code relying on undefined stuff (compilation order, asm referencing statics that are not listed as arguments);
  • [tt]profiledbootstrap[/tt] making for a faster compiler;
  • C++ hand-written recursive-descent parser instead of the YACC derivate (many bugfixes).
4.0.2 is open for regression and documentation fixes only; no serious regressions known. Highlights from the list of changes:
  • incompatible with GDB 6.0; use GDB 6.1;
  • [tt]-fwritable-strings[/tt] no longer accepted;
  • optimization improved;
  • unoptimized C++ compilation receives massive speedup (~25%);
  • experimental support for C++ TR1.
4.1.x is open for regression and documentation fixes only. Highlights from the list of changes:
  • still better optimization;
  • recursive-descent parser replaces old Bison-based C/Objective-C parser;
  • support for x86-64 "medium model" (data segments >4GB) if using binutils > 2.16.91 (which is funny, as the latest binutils release at ftp.gnu.org is 2.16.1... either they screwed up their versioning scheme or GCC 4.1 is relying on unreleased binutils...).
The current development line is 4.2.x.
Every good solution is obvious once you've found it.
Post Reply