views:

437

answers:

3

Currently, MinGW's only installs the 3.x.x series of the gcc compiler by default. However, it looks like the 4.x.x series of compilers have been out for some time, and as others have mentioned, it seems to work just fine. Is there any reason why it hasn't moved to the 4.x.x versions yet, and any reason why I shouldn't use the newer versions of gcc?

+1  A: 

GCC4's C++ ABI has changed from GCC3, and it includes a lot of new features (like its tree vectorization) that a lot of people still consider "experimental." There are still a few Linux distributions still using GCC3 for that reason.

greyfade
The major C++ abi change was like back in 2001. About 10 years has passed. TEN YEARS! Why can't you just get along with it?
Pavel Shved
When gcc fully supports C99, maybe we can validly complain that people shouldn't still be using an ABI replaced 10 years ago.
Steve Jessop
I'm aware of at least 3 ABI changes since GCC-2.95: 3.0, 3.3, and 4.0. I don't know exactly what changed, only that something did. Jerry noted that the exception mechanism was among those changes.
greyfade
+2  A: 

The issue appears to be that they've changed the exception handling mechanism in a way that breaks the ABI. That means you can't (for example) drop in the new compiler and continue to use old object files and/or libraries. You have to re-compile everything from source code to get working results at all.

Jerry Coffin
and the problem is? :)
Matt Joiner
GCC support for windows is not as strong, so there are probably lurking bugs, so until they feel it's more stable, they stick with the tried and true.
rogerdpack
+2  A: 

The TDM GCC/MinGW32 builds installer includes gcc 4.4.x and all the core binary packages required for basic Windows development, including gdb. It's widely used without any unusual problems.

Rob Kam