News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

GCC 4.4.1-tdm-2 for MinGW (with installer)

Started by TDragon, August 23, 2009, 12:20:58 AM

Previous topic - Next topic

TDragon

The second TDM-GCC release of GCC 4.4.1 is now available!

NOTICE:
The first TDM-GCC release of GCC 4.4.1 had a bug that caused a major slowdown in nearly any non-trivial program that it compiled. Be sure to upgrade to the new TDM-2 release if you're currently using 4.4.1-tdm-1.

The 4.4 series continues to take a bit longer to bring from vanilla release to TDM release, but in exchange I've fixed nearly all the outstanding bugs in the TDM-GCC tracker. This release re-enables support for large files, correct formatting of long doubles in iostreams, and more. For general changes in the GCC 4.4 series, see http://gcc.gnu.org/gcc-4.4/changes.html.

I tested this release by successfully building wxWidgets (2.8.10), and building and running Code::Blocks (SVN r5848), both without errors!

Binary packages are available for the Ada, C, C++, Fortran, Objective-C, and Objective-C++ languages, as drop-in replacements for the MinGW project's official gcc packages. Additionally, the TDM/MinGW installer will automatically install TDM-GCC and the MinGW compiler suite for you. Full details and download links are at http://www.tdragon.net/recentgcc/ .

Disclaimer:
The TDM-GCC builds are unofficial replacements for the official MinGW releases of GCC binaries. TDM-GCC was previously recommended for experimentation purposes only, but constant use in day-to-day development and a total download count of over 60,000 have proven the TDM-GCC releases to be at least as usable as the most recent official MinGW GCC release. (Please note that this does not mean that there are no bugs; merely that there is a different set of bugs with a similar or lesser average criticality.) Therefore, TDM-GCC is now heartily endorsed for production use in any non-critical environment, with only the following caveats:

  • TDM-GCC is not formally affiliated with or endorsed by the MinGW project (although several MinGW team members make use of it)
  • 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
[url="https://jmeubank.github.io/tdm-gcc/"]https://jmeubank.github.io/tdm-gcc/[/url] - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

rhf

#1
Quote from: TDragon on August 23, 2009, 12:20:58 AM
The TDM-GCC release of GCC 4.4.1 is now available!
The upgrade using your installer went very smooth; and everything seems to work well so far, including re-compiling Code::Blocks.
Thanks!

EDIT: Oops. This morning things do not look as rosy as they did last night. CB and wxWidgets (2.8.10) all seemed to compile with only minor warnings. But now when I load a project into Code:Blocks, CB goes to ~95% CPU usage and never stops. My Nightly CB version seems to work just fine using TDM 4.4.1, but it appears that I have screwed something up in the compilation process of Code:Blocks itself. Oh well!

EDIT 2: Well shoot. The more I experimented with even my Nightly CB version, the more problems I had. After re-compiling several of my existing projects with 4.4.1, they ran very slowly or not at all. I may have something wrong with my setup; but, after reverting to your TDM-GCC 4.4.0 (and recompiling everything), all seems to work fine.

TDragon

Well, I'm not able to reproduce any of those problems. Really, there's only one change between the 4.4.0 r2 release and this one that affects code generation, and that one actually *fixes* floating point formatting by detecting and using the correct math library. I don't see how it could be causing these problems.

In C::B, have you tried systematically disabling plugins to find a specific problem area?
[url="https://jmeubank.github.io/tdm-gcc/"]https://jmeubank.github.io/tdm-gcc/[/url] - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

rhf

Thanks, John.
It is very weird. I'll experiment with it some more after I get a little work done.

ollydbg

Thanks John.
I will download this package and testing building OpenCV library then. :D
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.

ollydbg

Hi, John
Failed running the CB build from GCC 4.4.1.
see this thread:
http://forums.next.codeblocks.org/index.php?topic=11069.msg75526;topicseen#msg75526

Do I need to rebuild the wxWidgets?
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.

TDragon

No; apparently there's a bug somewhere in TDM-GCC that needs to be tracked down. Unfortunately, I'm not able to reproduce it yet.
[url="https://jmeubank.github.io/tdm-gcc/"]https://jmeubank.github.io/tdm-gcc/[/url] - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

thomas

That bug apparently also causes a drastic increase in executable size, roughly 15-20%.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

billyonthemountain

Has this bug been already reported in the GCC bugzilla system ?
A search with "known to work : 4.4.0" and "known to fail : 4.4.1" didn't give any results...
(ASM, C/C++)||(VISION&AI)||(EMBEDDED SYSTEMS)

stahta01

#9
Quote from: billyonthemountain on September 27, 2009, 06:30:14 PM
Has this bug been already reported in the GCC bugzilla system ?
A search with "known to work : 4.4.0" and "known to fail : 4.4.1" didn't give any results...

I would guess that till TDM (TDragon) finds the cause and submits a patch that there will be no bug report at GCC bugzilla.

Unless the issue happens on an Linux build of GCC 4.4.1; the only one able to work the bug are MinGW GCC developers like TDM.

Tim S.
C Programmer working to learn more about C++.
On Windows 10 64 bit and Windows 11 64 bit.
--
When in doubt, read the CB WiKi FAQ. [url="http://wiki.codeblocks.org"]http://wiki.codeblocks.org[/url]

billyonthemountain

Ok hope this will be fixed soon...
Also I noticed that tdm's release isn't configured with --with-ppl and with --with-cloog (cf. gcc -v 's output)... does that mean that the graphite loop optimizations (ie. -floop-interchange, -floop-strip-mine and -floop-block) are not yet available for mingw32 ?
(ASM, C/C++)||(VISION&AI)||(EMBEDDED SYSTEMS)

TDragon

Obviously you didn't read the documentation on the website or the README (since they both clearly state that Graphite opts are available), or even simply try a test program with them. --with-cloog and --with-ppl are not requisite for the configuration process to find those libraries, merely optional.
[url="https://jmeubank.github.io/tdm-gcc/"]https://jmeubank.github.io/tdm-gcc/[/url] - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

billyonthemountain

I see...
QuoteTo use this code transformation, GCC has to be configured with --with-ppl and --with-cloog to enable the Graphite loop transformation infrastructure.
from the gcc-4.4 optimisation page was somewhat misleading...
Thanks for the info...
(ASM, C/C++)||(VISION&AI)||(EMBEDDED SYSTEMS)

ollydbg

hi ALL, TDM GCC 4.4.1-2 is released.

http://www.tdragon.net/recentgcc/

QuoteNOTICE:
The 4.4.1-tdm-2 release is now available. If you were using the first 4.4.1 release, you are urged to upgrade to this new version in order to avoid a bug that caused drastically increased CPU usage in programs compiled with the first version.
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.

ollydbg

I just build the CB trunk, and it works with no problem!!! Thanks to 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.