Author Topic: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)  (Read 26446 times)

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« on: December 09, 2014, 04:31:16 am »
Yep, it's that time again. With apologies for the extra-long wait (GCC is not getting any easier), I'm happy to present:

TDM-GCC 4.9.2
A few more Windows patches for GCC provide libatomic, gnatdll, and a bunch of GCC upstream improvements.

TDM-GCC 4.9.2, the first TDM release in the GCC 4.9 series, is now available for download. As always, I've tested it on wxWidgets (2.8.12) and Code::Blocks SVN (10050) to ensure good compatibility. 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").

Some TDM-specific changes since the last release:
  • With thanks to the MinGW-Builds maintainers at MinGW-w64, libatomic now works on MinGW targets.
  • With thanks to the same guys, the GNATDLL tool is now distributed with the Ada package.

TDM-GCC comes in TWO editions:
You can choose between the classic TDM 32-bit edition and the 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 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, 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
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 killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5147
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #1 on: December 09, 2014, 07:40:47 am »
excellent news, many thanks  :D

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5215
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #2 on: December 09, 2014, 07:48:03 am »
Well done, 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.

Online gd_on

  • Regular
  • ***
  • Posts: 441
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #3 on: December 10, 2014, 12:25:31 pm »
Hi,
I tried to compile and link C::B with this new TDM version on windows 7 pro (64 bits), but I don't really success.
1) compile wxWidgets 2.8.12 (32 bits) : OK
2) Test cases in samples : OK (with new dll but also even with the old dll in my path, compiled with TDM 4.8.1)
3) Compile CB Svn 10050 (in 32 bits) : OK
4) Run this CB with the old wxwidgets dll (compiled with TDM 4.8.1) : OK
5) Run this CB with the new dlls : freeze : splash screen not displayed. codeblocks *32 must be killed in task manager.

Trying the same thing but in 64 bits.
step 1 : OK
step 2 : OK, but here works only with the new dlls
step 3 : OK
step 4 : Not OK : splash screen not displayed. To be honest, I was suprised that it worked in 32 bits !
step 5 : here, splash screen is displayed but C::B freezes after.

I have used the same procedures than with tdm 4.8.1 which worked perfectly.

So, I missed something or there is a problem with this new version.
Do somebody succeeded to compile and run both C::B and wxWidgets 2.8.12 under Windows 7 with this TDM 4.9.2 version ?

gd_on
« Last Edit: December 10, 2014, 12:29:38 pm by gd_on »
Windows 10 or 7, svn C::B (last version or almost!), WxWidgets 2.8.12, Compilers TDM 4.9.2 32 bits (gcc and gfortran installed in C:\MinGW32). Tests with C::B 64 bits and WxWidgets 2.8.12 or 3.1.2 (64 bits) compiled by TDM 4.9.2 or Std 8.1 in C:\MinGW64

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #4 on: December 10, 2014, 11:45:42 pm »
Yes, I successfully compiled and ran Code::Blocks 10050 with wxWidgets 2.8.12, both compiled from scratch with TDM-GCC 4.9.2.

Did you remember to run update.bat?

-John E. / TDM

[attachment deleted by admin]
« Last Edit: December 10, 2014, 11:51:07 pm 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 stahta01

  • Lives here!
  • ****
  • Posts: 6485
    • My Best Post
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #5 on: December 11, 2014, 01:27:57 am »
Yes, I successfully compiled and ran Code::Blocks 10050 with wxWidgets 2.8.12, both compiled from scratch with TDM-GCC 4.9.2.

Did you remember to run update.bat?

-John E. / TDM

What are all the places you had to put "-m32" in building wxWidgets and Code::Blocks?

In the CB Global compiler settings I added "-m32" to Compiler Settings/Other Options and to Linker Settings/Other linker options.
I changed the resource compiler to "windres.exe -F pe-i386" in hope it fixes the build error.

Still waiting on wxWidgets 2.8.12 to finish building so no idea if I did those options right or if the CB Options are right.

Tim S.
« Last Edit: December 11, 2014, 03:22:16 am by stahta01 »
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #6 on: December 11, 2014, 05:29:18 am »
That seems right, but I haven't built Code::Blocks with the TDM64 edition recently; only the TDM32 edition (MinGW-based).

-John E. / TDM
http://tdm-gcc.tdragon.net/ - TDM-GCC compiler suite for Windows (GCC 5.1.0 2015-06-28, 32/64-bit, no extra DLLs)

Online gd_on

  • Regular
  • ***
  • Posts: 441
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #7 on: December 11, 2014, 08:43:29 am »
Quote
Yes, I successfully compiled and ran Code::Blocks 10050 with wxWidgets 2.8.12, both compiled from scratch with TDM-GCC 4.9.2.

Did you remember to run update.bat?

-John E. / TDM
Yes, I ran update.bat. So, if it works for you and not for me, it's because I missed something, but I don't know what ?
For the 32 bits version, I use the TDM 32 bits version, so no need to add -m32.
I can obtain the same screen capture as you, but with wxwidgets dll compiled with tdm 4.8.1 !
Strange ...
I have to search what's wrong on my config !

gd_on
« Last Edit: December 11, 2014, 08:46:19 am by gd_on »
Windows 10 or 7, svn C::B (last version or almost!), WxWidgets 2.8.12, Compilers TDM 4.9.2 32 bits (gcc and gfortran installed in C:\MinGW32). Tests with C::B 64 bits and WxWidgets 2.8.12 or 3.1.2 (64 bits) compiled by TDM 4.9.2 or Std 8.1 in C:\MinGW64

Offline Miguel Gimenez

  • Almost regular
  • **
  • Posts: 234
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #8 on: December 11, 2014, 09:33:38 am »
Good work, only one comment: the installer icon is black on transparent, so it dissapears on my black desktop.

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #9 on: December 12, 2014, 12:13:34 am »
Good work, only one comment: the installer icon is black on transparent, so it dissapears on my black desktop.
Hm, I think the effect looks cool. 8) Let's pretend I did it on purpose.

-John E. / TDM
http://tdm-gcc.tdragon.net/ - TDM-GCC compiler suite for Windows (GCC 5.1.0 2015-06-28, 32/64-bit, no extra DLLs)

Online gd_on

  • Regular
  • ***
  • Posts: 441
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #10 on: December 12, 2014, 11:08:53 am »
Better today.
I installed a fresh version of Tdm 32 in C:\MinGW32 and a fresh version of Tdm 64 in C:\MinGW64 (previously I simply updated Tdm 4.8.1 version)
Like that, it's OK for C::B compiled in 32 bits, using the 32 bits wxwidgets version (2.8.12), both compiled with TDM 4.9.2.
Yesterday, there was probably something, may be an old dll or a library (.a), which was in conflict.

Suggestion : as zip.exe is needed to build Codeblocks, it could be nice to add it in TDM distribution (as it is in C::B with mingw).

Nevertheless, when I compile C::B and wxwidgets 2.8.12 in 64 bits, I have still the same problem, even on a fresh 64 bits installation : C::B freezes after displaying the splash screen.
No problems when everything is compiled with Tdm 4.8.1 64 bits.

gd_on

PS : an other problem with gdb, 64 bits
If I try to debug a simple C hello program, it's OK with Tdm 4.8.1 64 bit, but not OK with Tdm 4.9.2 64 bit (error displayed at gdb.exe startup : code 0xc000007b).
If I copy inside my bin folder, gdb.exe, gdbserver.exe and python27.dll from version Tdm 4.8.1 to tdm 4.9.2 folder, it's OK : debug works.
« Last Edit: December 12, 2014, 04:36:02 pm by gd_on »
Windows 10 or 7, svn C::B (last version or almost!), WxWidgets 2.8.12, Compilers TDM 4.9.2 32 bits (gcc and gfortran installed in C:\MinGW32). Tests with C::B 64 bits and WxWidgets 2.8.12 or 3.1.2 (64 bits) compiled by TDM 4.9.2 or Std 8.1 in C:\MinGW64

Offline TDragon

  • Lives here!
  • ****
  • Posts: 936
    • Twilight Dragon Media
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #11 on: December 13, 2014, 12:51:57 am »
Hi gd_on,

I was able to successfully build and run C::B 10050 with wxWidgets 2.8.12 using 4.9.2-tdm64-1 and -m32/-F pe-i386. I also had to manually specify which manifest file was used in C::B's resource.rc - without this, it would crash on startup with a 0x7b error due to using the AMD64 manifest instead of the x86.

I can reproduce the GDB 0x7b crash - that is due to a bad libiconv-2.dll linkage in my GDB binaries. I will need to release a new GDB package to fix that problem.

EDIT:
New GDB package released (gdb-7.8.1-tdm64-3). SourceForge has been having some outages today, hopefully they are resolved soon.

-John E. / TDM
« Last Edit: December 13, 2014, 04:39:59 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)

Online gd_on

  • Regular
  • ***
  • Posts: 441
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #12 on: December 13, 2014, 07:35:54 pm »
Thanks, I'll have a look on monday.
But, if I understand you, when you put :
Quote
wxWidgets 2.8.12 using 4.9.2-tdm64-1 and -m32/-F pe-i386
you compile a 32 bit version of C::B with tdm 64.
This is not exactly my problem. I'd like to compile a 64 bit version of C::B, of course with tdm 64.

gd_on
Windows 10 or 7, svn C::B (last version or almost!), WxWidgets 2.8.12, Compilers TDM 4.9.2 32 bits (gcc and gfortran installed in C:\MinGW32). Tests with C::B 64 bits and WxWidgets 2.8.12 or 3.1.2 (64 bits) compiled by TDM 4.9.2 or Std 8.1 in C:\MinGW64

Offline stahta01

  • Lives here!
  • ****
  • Posts: 6485
    • My Best Post
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #13 on: December 13, 2014, 07:39:04 pm »
Thanks, I'll have a look on monday.
But, if I understand you, when you put :
Quote
wxWidgets 2.8.12 using 4.9.2-tdm64-1 and -m32/-F pe-i386
you compile a 32 bit version of C::B with tdm 64.
This is not exactly my problem. I'd like to compile a 64 bit version of C::B, of course with tdm 64.

gd_on

On windows, wxWidgets does NOT officially support 2.8 as being 64 bit compatible.
I have heard it is possible to get it built; but, it could easily have bugs in it.

Tim S.
 
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 32 bit.
On Debian Stretch, compiling CB Trunk against wxWidgets 3.0.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Online gd_on

  • Regular
  • ***
  • Posts: 441
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #14 on: December 13, 2014, 08:02:13 pm »
Quote
On windows, wxWidgets does NOT officially support 2.8 as being 64 bit compatible.
I have already seen this information. Nevetheless, I have myself compiled wxwidgets 2.8.12 in 64 bits (adding a cxxflag as suggested by killerbot), and it works well with C::B compiled in 64 bits too, but with TDM 64 4.8.1 version.
All the test cases in wxwidgets 2.8.12 worked as expected if they are compiled with tdm 64 version 4.8.1 and 4.9.2.
May be it's better with wxwidgets 3.x (better 64 bits support), but C::B on Windows has still problems with this version : some assert messages for example.
It's the reason why I try to have C::B with this rather old wxwidgets version. If definitely, it's not possible, i'll wait. (But it worked so well with tdm 64 4.8.1  ???)

gd_on
Windows 10 or 7, svn C::B (last version or almost!), WxWidgets 2.8.12, Compilers TDM 4.9.2 32 bits (gcc and gfortran installed in C:\MinGW32). Tests with C::B 64 bits and WxWidgets 2.8.12 or 3.1.2 (64 bits) compiled by TDM 4.9.2 or Std 8.1 in C:\MinGW64