Author Topic: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)  (Read 81373 times)

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« on: September 16, 2012, 06:53:17 am »
After much ado fighting with upstream GCC changes, and just barely squeaking in before the upstream 4.7.2 release, I would like to proudly present:

TDM-GCC 4.7.1!
The 4.7 GCC stable release series includes much-improved C++11 support (with new -std=c++11 and -std=gnu++11 options), OpenMP 3.1, a bunch of optimizer improvements, and lots of other new features.

The TDM release of GCC 4.7.1 is now available for download. As always, I've tested it on wxWidgets (2.8.12) and Code::Blocks SVN (8394) to ensure good compatibility. You can build Code::Blocks with either the TDM32 edition ("out of the box"), or the TDM64 edition (using the MinGW-w64 project's runtime and the "-m32" flag for 32-bit compilation). When building wxWidgets as a MONOLITHIC DLL, you will probably need to use the "-fno-keep-inline-dllexport" flag (mingw32-make ... CXXFLAGS="-fno-keep-inline-dllexport").

A couple of minor tweaks:
  • The 64-bit version of GDB is now built with Python support.
  • The MinGW-w64 runtime package now includes the gendef and genidl tools and the libmangle library.

TDM-GCC comes in TWO editions:
You can choose between the classic MinGW 32-bit edition and the new TDM64 edition. The TDM64 edition is based on the MinGW-w64 runtime API and the x86_64-w64-mingw32 GCC target, and can create both 32-bit and 64-bit code, with the "-m32"/"-m64" compiler flags. Please be aware, if you build Code::Blocks yourself, that it only works as 32-bit code ("-m32") on Windows, currently -- though that will hopefully change soon. Also, please never mix 32-bit object files (.o), libraries (.a), DLLs, or EXEs with 64-bit versions, and don't report it as a bug if you inadvertently do.

More information and downloads are available at <http://tdm-gcc.tdragon.net/>. TDM-GCC includes support for C, C++, Fortran, Objective-C/C++, and Ada (MinGW edition only), as well as support for the OpenMP multithreading extensions, packaged in a simple Windows installer.

Disclaimer:
As always, please remember:
  • TDM-GCC is not formally affiliated with or endorsed by the MinGW project.
  • No level of support for TDM-GCC is in any way guaranteed (although a best effort is made to fix bugs as they are found or forward them to GCC Bugzilla).

Cheers,
John E. / TDM
« Last Edit: September 16, 2012, 07:01:33 am by TDragon »
http://tdm-gcc.tdragon.net/ - TDM-GCC compiler suite for Windows (GCC 5.1.0 2015-06-28, 32/64-bit, no extra DLLs)

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5239
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #1 on: September 16, 2012, 07:28:18 am »
Nice work, John. :)
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5193
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #2 on: September 16, 2012, 08:40:50 am »
what a splendid surprise :-)

many many thanks

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7265
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #3 on: September 16, 2012, 10:00:34 am »
Many thanks !

I have a first issue:
mingw32-make.exe can not be started, neither in the 32-bit nor in the 64-bit default installation.
It complains about missing libgcc_s_dw2-1.dll .

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #4 on: September 16, 2012, 10:03:03 am »
HOORAY! Open the bottles of champagne! ;-)

I have a first issue:
mingw32-make.exe can not be started, neither in the 32-bit nor in the 64-bit default installation.
It complains about missing libgcc_s_dw2-1.dll .
Same here. :-(

Is it OK to copy that DLL from the DWARF2 package, or is the make package corrupted/swapped?
« Last Edit: September 16, 2012, 10:04:38 am by MortenMacFly »
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7265
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #5 on: September 16, 2012, 10:26:35 am »
HOORAY! Open the bottles of champagne! ;-)

I have a first issue:
mingw32-make.exe can not be started, neither in the 32-bit nor in the 64-bit default installation.
It complains about missing libgcc_s_dw2-1.dll .
Same here. :-(

Is it OK to copy that DLL from the DWARF2 package, or is the make package corrupted/swapped?
I just did it and it seems to work.
I'm currently compiling wxWidgets 2.9.4 and will see what happens.

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9508
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #6 on: September 16, 2012, 10:35:53 am »
I'm currently compiling wxWidgets 2.9.4 and will see what happens.
Me, too - lets see who's first... ;D

BTW (slightly OT): Is it safe to use something like -j2 for the wx builds? I never tried, but saw this:
http://trac.wxwidgets.org/ticket/14470
I also wonder, if we could/should use the same concept (the very last post of vadz) proposed there for our make based build concerning PCH files?! (Maybe we do that already... I ma not using make file builds of C::B that often...)
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: http://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: http://wiki.codeblocks.org/index.php?title=FAQ

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 12086
    • Travis build status
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #7 on: September 16, 2012, 10:52:08 am »
BTW (slightly OT): Is it safe to use something like -j2 for the wx builds? I never tried, but saw this:
I think, I'm using -j5 on linux, so probably it will work on windows, but last time I've tried it failed. I think. But the build on windows is pretty easy to get failed.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline jens

  • Administrator
  • Lives here!
  • *****
  • Posts: 7265
    • Jens' unofficial debian-repository for the Code::Blocks - IDE
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #8 on: September 16, 2012, 10:59:14 am »
I'm currently compiling wxWidgets 2.9.4 and will see what happens.
Me, too - lets see who's first... ;D

Most likely you, because I'm building in a VM.

BTW (slightly OT): Is it safe to use something like -j2 for the wx builds? I never tried, but saw this:
http://trac.wxwidgets.org/ticket/14470
I also wonder, if we could/should use the same concept (the very last post of vadz) proposed there for our make based build concerning PCH files?! (Maybe we do that already... I ma not using make file builds of C::B that often...)
I will see if I find an option (or tweak or whatever) for autotools to ensure pch's are build first.

EDIT:

To avoid cluttering this thread, I continue the discussion about pch's with C::B here: http://forums.codeblocks.org/index.php/topic,16867.msg114757.html#msg114757

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #9 on: September 16, 2012, 03:55:16 pm »
Ugh ... that's the official MinGW project's mingw32-make, so that I don't have to build and distribute it myself. It depends on the libintl DLL, which apparently now depends on the libgcc DLL. Welcome to DLL hell. :(
I'll update the installer in a little while.

The mingw32-make job server doesn't actually work with nested Makefiles, but with flat Makefiles like that of wxWidgets it works great. I've been building wxWidgets with -j8 for years now and it takes about 3 minutes on my quad-core hyperthreading Core i7. :)
http://tdm-gcc.tdragon.net/ - TDM-GCC compiler suite for Windows (GCC 5.1.0 2015-06-28, 32/64-bit, no extra DLLs)

Offline sophron

  • Single posting newcomer
  • *
  • Posts: 7
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #10 on: September 16, 2012, 04:13:43 pm »
For the dw2 version, the "liblto_plugin-0.dll" should be located in "MinGW32\libexec\gcc\mingw32\4.7.1-dw2" rather than "MinGW32\bin".

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #11 on: September 16, 2012, 04:47:37 pm »
You're absolutely right, I apologize for not checking that edition more carefully.

I've rolled a -2 version of the DW2 core package, and updated the installer to include the libgcc DW2 DLL when installing mingw32-make or gdb. If you want to use the installer's update feature to get the DLL, you will need to *uninstall* one of those packages (mingw32-make or gdb), and then reinstall it, with the "Check for updated files ..." option checked.
http://tdm-gcc.tdragon.net/ - TDM-GCC compiler suite for Windows (GCC 5.1.0 2015-06-28, 32/64-bit, no extra DLLs)

Offline ptDev

  • Almost regular
  • **
  • Posts: 222
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #12 on: September 16, 2012, 06:05:11 pm »
Happy days!

Congratulations for the great breakthrough (4.7 had many changes with a big impact for the Windows port of GCC)! I'll stop annyoing you about "the next release" for a long while, I promise! ;)

Now, to rebuild wx2.8 and Code::Blocks, and to pack a new unofficial installer. I must be lagging behind the official nightly builds big time! :)


Offline Alpha

  • Developer
  • Lives here!
  • *****
  • Posts: 1513
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #13 on: September 16, 2012, 08:51:59 pm »
Thank you!

Offline gd_on

  • Regular
  • ***
  • Posts: 494
Re: TDM-GCC 4.7 series (Latest: 4.7.1 - 2012-09-15)
« Reply #14 on: September 17, 2012, 03:17:39 pm »
Thank you too !
Just a question for my information. I compiled and linked succesfully C::B svn 8395 on my PC (Windows 7) with this new 4.7.1 tdm version (full build), but I kept my "old" version of the wxwidgets dll, compiled with tdm 4.6.1. After installing C::B as usual, this new built version crashed at initialisation. I then re-compiled the wxwidgets monolithic dll with tdm 4.7.1, and, that time, everything was OK.
So, have you an idea, for my curiosity, why C::B and the wxWidgets dll seems to work together only when they are compiled with the same version of compiler ? Strange isn'it ?

gd_on
Windows 10, svn C::B (last version or almost!), WxWidgets 3.1.3, Compilers 8.1.0, 64 bits (seh, posix : gcc, g++ and gfortran in C:\MinGW64) or 32 bits (sjlj, posix in C:\MinGW32).