Code::Blocks Forums

User forums => General (but related to Code::Blocks) => Topic started by: TDragon on September 23, 2011, 08:21:03 pm

Title: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on September 23, 2011, 08:21:03 pm
Greetings!

TDM-GCC 4.6.1 is now available!
The latest GCC stable release series includes some stability fixes for Windows targets, better C++11 support, and lots of other new features.

The TDM release of GCC 4.6.1 is now available for download. As always, I've tested it on wxWidgets (2.8.12) and Code::Blocks SVN (7458) 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). Since GCC incorporates the "-fno-keep-inline-dllexport" flag beginning with the 4.6 series, you will probably need to use this flag when building wxWidgets as a MONOLITHIC dll (mingw32-make ... CXXFLAGS="-fno-keep-inline-dllexport").

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/ (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:

Cheers,
John E. / TDM
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: killerbot on September 24, 2011, 12:01:46 am
as always, cheers for John. Thank you very much :-)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Alpha on September 24, 2011, 11:14:28 pm
Great work, and thanks - it solved my problem (http://forums.codeblocks.org/index.php/topic,15140.0.html). :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Freem on September 25, 2011, 04:34:48 pm
Thanks to man who made mingw recent versions easy to install for me when I use windows :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: zhl on September 25, 2011, 04:38:47 pm
I can't find TDM-GCC 4.5.2 in the page:http://tdm-gcc.tdragon.net/ (http://tdm-gcc.tdragon.net/) and in sourceforge I also can't find the TDM-GCC 4.5.2.exe consist of all necessary programs because the nightly builds in this forum are complied by GCC4.5.2.  I run a console project compiled by TDM-gcc4.6.1 the cmd window appears after quite a few seconds but if using gcc4.5.2 the window rapidly appears.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Freem on September 25, 2011, 04:42:23 pm
I can't find TDM-GCC 4.5.2 in the page:http://tdm-gcc.tdragon.net/ (http://tdm-gcc.tdragon.net/) and in sourceforge I also can't find the TDM-GCC 4.5.2.exe consist of all necessary programs because the nightly builds in this forum are complied by GCC4.5.2.  I run a console project compiled by TDM-gcc4.6.1 the cmd window appears after quite a few seconds but if using gcc4.5.2 the window rapidly appears.

In the sourceforge website, you will find TDM-GCC in "TDM-GCC 4.5 series".  I just tried to find it. (but didn't try the installer, because I'm not using windows at home)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on September 25, 2011, 07:51:23 pm
http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/tdm-gcc-4.5.2.exe/download
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: zhl on September 26, 2011, 01:09:21 am
Many thanks!
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on September 26, 2011, 03:56:58 pm
Unluckily, this build rejects pretty much every piece of code I've ever written with multiple definition of
`typeinfo for A'
(A being specialized template classes or classes with virtual functions defined inline in the base) while LTO is active. Which is a real shame seeing how LTO is the one big thing.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: oBFusCATed on September 26, 2011, 04:17:50 pm
This seems to be your problem: http://sourceware.org/bugzilla/show_bug.cgi?id=12762

In the bug they mention a workaround, you could try it...

The big thing about gcc 4.6 is it c++-0x support, not lto, lto will be ready/usable at gcc 4.7 or 4.8 :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on September 26, 2011, 06:02:23 pm
This seems to be your problem: http://sourceware.org/bugzilla/show_bug.cgi?id=12762

In the bug they mention a workaround, you could try it...
That's exactly the same, yes. The workaround seems to do, though funnily now I have to rename main to __main (since the linker complains otherwise) and manually link against the CRT... on the positive side, executables are considerably smaller than they used to be, just by flipping the magic switch.

Quote
The big thing about gcc 4.6 is it c++-0x support, not lto, lto will be ready/usable at gcc 4.7 or 4.8 :)
Yeah well, that would be just constexpr, really. It's the only truly interesting thing in 4.6 (from my perspective) that 4.5 did not already support.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Freem on September 26, 2011, 09:11:52 pm
Sorry for the off topic question, but, what is LTO?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: oBFusCATed on September 26, 2011, 09:21:46 pm
Link time optimization.

http://gcc.gnu.org/wiki/LinkTimeOptimization
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: killerbot on September 26, 2011, 11:30:29 pm
I find also very interesting in 4.6 :
- nullptr
- range based for

:-)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: byuu on September 27, 2011, 01:29:57 am
When I compile with -fopenmp, I receive the following:

g++: error: libgomp.spec: No such file or directory

It worked with TDM/GCC 4.4, but not 4.5 or 4.6. Is there any way I can fix this?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: gd_on on September 27, 2011, 10:33:23 am
Question concerning windows environment :
I installed a complete set of tools, compilers, ... (TDM 32 bits package and some other tools) in C:\MinGW32 and TDM 64 bits package only in C:\MinGW64, on a Win 7 64 bits PC.
To produce software running on this machine, I want to use the 64 bits package.
To produce software running on other machines, XP 32 bits for example, I need to use the 32 bits package.

So, in a cbp projet, I set 2 compiling environments, one I call Release (for standard 32 bits) and one I call Release_64.
Release uses compilers in MinGW32 (gfortran in my test case) and Release_64 uses compilers in MinGW64.
To be able to execute my exe files I had to add C:\MinGW64\bin in my path variable.
And, everything is OK.

My question, is in fact, what would you suggest for the best setting for this path :
I have set in path : C:\MinGW32\bin;C:\MinGW64\bin;... in that order, to give priority to 32 bits tools (because I produce more 32 bits softs than 64 bits).
That's OK within C::B which has is own environment settings, but for tools who have the same name in 32 bits and 64 bits and not configured in toolchains settings (for example strip.exe, and may be some others ...), which version is really used ? Because, with my path setting, I suppose it's the 32 bits version which is first found. And, to your knowledge/experience is it important when building 64 bits applications ?

gd_on
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: oBFusCATed on September 27, 2011, 10:47:55 am
gd_on: Reread the announcement about the 64bit compiler. Read carefully the part where the compiler can produce both 32 and 64 bit binaries.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: gd_on on September 27, 2011, 11:18:09 am
I suppose you mean the page "Getting started" on TDM site.
I know that the 64 bit version can produce 32 bits soft by adding option -m32. But I would prefer to avoid this solution, because I'd like not to change all my previous settings for 32 bits soft. It's why I installed, in C:\MinGW32 the 32 bits version. Like that, my "old" projects .cbp continue to work as before. So I need, both versions. And as told on that page, I installed them in two different folders.
My question, I think, is more related to the path environment variable, and this page, does not give an answer. If you install automatically both versions, as suggested in 2 different folders (MinGW32 and MinGW64), and accept the modification of the path by the installer, depending on the order of the installation (64 then 32 bit, or 32 bits then 64), you will not have the same order in the path setting. So, I think this might lead to some future problem, it's why I ask if the order of both MinGWxx in path is important or not.

gd_on
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on September 27, 2011, 12:15:38 pm
I found a solution which works seamlessly now (well, almost... it builds all of my stuff without problems, but still chokes on a thousand undefined wxWidgets symbols when building Code::Blocks, but that is probably my fault, I didn't bother to rebuild wxWidgets yet).

The reason why CRT (and the c++ stdlib) needed to be linked manually was because I put ld as linker into the toolchain settings rather than g++. Now thinking about it, that was not surprising at all.
Setting ld as the linker was necessary in the first place because g++ does not recognize the --allow-multiple-definition commandline option, so the proposed workaround on the bugzilla thread would not work.

Now, luckily, g++ does recognize the -Xlinker option, so you can make it work "the normal way". For whoever is interested in it, this is what I'm using at the moment:

Compiler options: -flto
Linker options: -flto=4 -Xlinker --allow-multiple-definition
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on September 28, 2011, 02:12:43 am
byuu -- RE: -fopenmp -- Don't know what to tell you, it works for me. Is there another GCC version getting mixed up with TDM-GCC somehow?

gd_on -- RE: mixing toolchains -- My recommendation in this scenario would be *NOT* to have *ANY* toolchain in the default PATH, then use either the installer-provided .bat file (mingwvars.bat) to create a build & execution environment, or roll your own. I typically just start out with a "clean" command shell, and do "set PATH=C:\toolchain\of\the\moment\bin;%PATH%".

thomas -- RE: -flto -- Glad you got it working. There will always be problems when you don't use a GCC driver to link, unless you are extremely knowledgeable about what flags are being passed around behind the scenes.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Justin Brimm on September 28, 2011, 10:21:50 am
Attempts to compile anything using the new version produces a multitude of errors, the first being:

Code
in: include/unknwn.h - error: unknown type name 'interface'
... etc
in: include/unknwn.h - error: unknown type name 'IUnknown'
in: include/unknwn.h - error: unknown type name 'IClassFactory'

Edit: Traced the problem to objbase.h, line 19-23 and 43-4x

Code
#ifndef __OBJC__
#ifndef interface
#define interface struct
#endif
#endif

The problem is that I use ObjC, which means interface never gets defined as a struct, which all the other windows headers require. I haven't had any problems in the past regarding the inclusion of windows headers, so this is a new one to me.

This is a horrible hack but it works and should at least get Objective-C working until a proper fix is found.

At the beginning of windows.h, add:

Code
// ObjC compatibility hack
#ifdef __OBJC__
#define __OBJC_WAS_DEF__ __OBJC__
#undef __OBJC__
#endif

At the end of windows.h, add:

Code
// ObjC compatibility hack
#ifdef __OBJC_WAS_DEF__
#define __OBJC__ __OBJC_WAS_DEF__
#undef __OBJC_WAS_DEF__
#undef interface
#endif

This code only works because I've never had to use the interface definition outside of windows.h, but if you're using Objective-C++, that may be a possibility.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on September 28, 2011, 02:53:10 pm
John, is there btw. a way you could not have the DW2 executables tagged -dw2?

I understand that this is meant so one can have several flavours of gcc in the same directory, but it does more evil than good. Having different flavours inside their own top-level directory works nicely to the same effect (and better, in my opinion).

Most build tools (this includes not only tools like automake and cmake, but also e.g. the windres supplied in the TDM install, which calls cpp and gcc) are too fucking stupid to figure out the compiler's proper name if it's anything except gcc. Some are less stupid than others, and some can be told to look for something else, but windres is even too stupid for that.

Which means that you can't build anything that uses windres, including wxWidgets, with the DW2 builds unless you manually make a copy of all files named -dw2.exe without the -dw2 tag first. Shortcuts don't work, for that matter.
This is the source of the totally clueless "windres: gcc exited with status 1" build failure that people encounter every now and then (and to which the error message is not truly helpful if you don't already know what the cause is).

Copying and renaming all the executables is an ordeal though, plus it takes up twice as much disk space than necessary.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: ollydbg on September 28, 2011, 03:08:10 pm
John, is there btw. a way you could not have the DW2 executables tagged -dw2?
I agree with thomas. I would also suggest there is a dw2 bundled package installer. :D
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Justin Brimm on September 28, 2011, 07:04:24 pm
Now that I can actually build my applications again using my (hopefully temporary hack), I want to send my thanks out to John. I've been eagerly awaiting GCC 4.6 ever since it was announced that the Objective-C runtime library was being completely rewritten from scratch to support Objective-C 2.0 and bring it inline with Apple's ObjC runtime. I hadn't made the switch though because I wanted to wait for the TDM-GCC 4.6 series; TDM-GCC is so much better and feature packed than other builds of gcc, that other builds aren't even a viable option anymore. 32/64 bit builds, full OpenMP support, ObjC support by standard (instead of as a separate package), etc.

Again, a hearty thanks for helping make Windows platform support comparable to MacOS X support.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on September 29, 2011, 10:13:50 am
Bummer, LTO really isn't quite production just yet.  :lol:

After patching lto-1.exe with a hex editor to be LARGEADDRESSAWARE, I just about managed to build wxWidgets (multimedia and RTTI disabled) with LTO enabled before running out of address space. Kids, don't try this at home if your machine only has 4GB of physical memory. Linking (just linking, not the entire build!) took only about 45 minutes, too.  8)

Unluckily it still gives me missing symbols from wxWidgets when building Code::Blocks (and, funnily, only 2 of them when building c::b without LTO, but around 25 with LTO enabled for c::b). Seems something is just not right yet. Ah well, maybe with gcc 4.7...
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on October 03, 2011, 09:32:23 pm
Most of the lto problems seems to come from a binutils bug which is being worked on and will be fixed in 2.22.
I use the cvs version and while its not completely bug free it atleast works on most parts.
Also there are some patches for current binutils to fix the multiple-definition problem.

http://sourceware.org/bugzilla/attachment.cgi?id=5870

I havent tried the above patch yet as im deep in Msys2 development.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Totoxa on October 04, 2011, 02:46:15 am
Hello, im trying to compile wxWidgets 2.8.12 with TDM-GCC 4.6.1 but it fails at the linking process, the console windows show the message "memory exhausted", i use a amd turion x2 processor(1.9 ghz) and 2gb ram, windows xp, also the process takes too much time, approx 1 hour. Before i have tried to compile wxWidgets with the gcc that comes with qt sdk and it finishes without problems and in about 20 min, but it fail to compile codeblocks(for that reason i was trying with TDM-GCC 4.6.1). what can be the reason?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: gd_on on October 04, 2011, 08:30:02 am
I had a similar problem, but for me the solution is in Tdragon's original post :
Quote
Since GCC incorporates the "-fno-keep-inline-dllexport" flag beginning with the 4.6 series, you will probably need to use this flag when building wxWidgets as a MONOLITHIC dll (mingw32-make ... CXXFLAGS="-fno-keep-inline-dllexport").

It is necessary for me. Have you tried that ?

gd_on
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on October 06, 2011, 03:38:17 am
Unluckily, this build rejects pretty much every piece of code I've ever written with multiple definition of
`typeinfo for A'
(A being specialized template classes or classes with virtual functions defined inline in the base) while LTO is active. Which is a real shame seeing how LTO is the one big thing.
You can use latest binutils snapshot.
The issue is fixed by Kai.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on October 06, 2011, 03:44:56 am
Bummer, LTO really isn't quite production just yet.  :lol:

After patching lto-1.exe with a hex editor to be LARGEADDRESSAWARE, I just about managed to build wxWidgets (multimedia and RTTI disabled) with LTO enabled before running out of address space. Kids, don't try this at home if your machine only has 4GB of physical memory. Linking (just linking, not the entire build!) took only about 45 minutes, too.  8)

Unluckily it still gives me missing symbols from wxWidgets when building Code::Blocks (and, funnily, only 2 of them when building c::b without LTO, but around 25 with LTO enabled for c::b). Seems something is just not right yet. Ah well, maybe with gcc 4.7...
Maybe you said this bug I ever reported:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49844

Then you can try -flto-partition=none  .
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on October 06, 2011, 03:49:23 am
@TDragon
I suggest you to build ld and lto1 using -Wl,--large-address-aware.
This can solve many memory exhausted problems.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on October 07, 2011, 02:04:51 pm
Then you can try -flto-partition=none
Tried, thanks... did not help though, unluckily.

I can only successfully build Code::Blocks with MingW-gcc 4.6.1 without LTO at all (except for Tinyxml and Squirrel/SQPlus). Anything remotely close to wxWidgets in any way blows up and burns. And, although it builds without LTO, it still doesn't run (error 0xc0000005 at startup).

Funnily, I can build wxWidgets with MingW-gcc 4.6.1 and then Code::Blocks with MingW-gcc 4.5.3 using that DLL just fine, and it works...

Has anyone tried using the sjlj version? Maybe it's some interaction with DW2 too, who knows. I'm only ever using DW2 ("DW2 or bust!"), so that might be it.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on October 07, 2011, 04:07:03 pm
Then you can try -flto-partition=none
Tried, thanks... did not help though, unluckily.

I can only successfully build Code::Blocks with MingW-gcc 4.6.1 without LTO at all (except for Tinyxml and Squirrel/SQPlus). Anything remotely close to wxWidgets in any way blows up and burns. And, although it builds without LTO, it still doesn't run (error 0xc0000005 at startup).

Funnily, I can build wxWidgets with MingW-gcc 4.6.1 and then Code::Blocks with MingW-gcc 4.5.3 using that DLL just fine, and it works...

Has anyone tried using the sjlj version? Maybe it's some interaction with DW2 too, who knows. I'm only ever using DW2 ("DW2 or bust!"), so that might be it.
It's very strange.
May you try my 4.6.1 edition (also dw2) https://pcxprj.googlecode.com/files/MinGW_gcc4.6.1release_static_win32.7z?
I haven't found these issues.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on October 09, 2011, 02:34:05 pm
Has anyone tried using the sjlj version? Maybe it's some interaction with DW2 too, who knows. I'm only ever using DW2 ("DW2 or bust!"), so that might be it.
So, I tried building wxWidets and C::B on Windows 7 with TDM 4.6.1 sjlj. It works nearly perfectly, only the NassiShneiderman plugin refuses to load. However, it's not an SDK mismatch issue (as C::B complains).

Ps.: Yes, I finally updated my platform from XP. ;-)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Alpha on October 09, 2011, 08:09:16 pm
It works nearly perfectly, only the NassiShneiderman plugin refuses to load.
I believe that is a symptom of the problem I described here (http://forums.codeblocks.org/index.php?PHPSESSID=m383k626h2hdvb2pknid30gab4&topic=15263.msg102980;topicseen#msg102980).

In the NassiShneiderman project file, change the linker option -enable-auto-import to -Wl,-enable-auto-import.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: lvdong on October 18, 2011, 06:25:24 am
#include <float.h> can not include the mingw32's float header
please check with the macros for "Control word masks for unMask"
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on October 18, 2011, 08:24:47 am
#include <float.h> can not include the mingw32's float header
please check with the macros for "Control word masks for unMask"
...what ever that means. :shock: Is this related to the compile failure? Because the "fix" of Alpha was correct.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on October 18, 2011, 01:57:55 pm
i think he refers to an old gcc bug with mingw.
gcc's float.h collides with the one from mingw's.
several fixes on that one through time but it does rear its ugly head from time to time most notably when a new version of gcc hits the fan :/
It will probably newer be fixed 100% because the gcc team has made clear that they dont support changing it locally because it would break linux builds.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: lvdong on October 19, 2011, 07:54:27 am
i think he refers to an old gcc bug with mingw.
gcc's float.h collides with the one from mingw's.
several fixes on that one through time but it does rear its ugly head from time to time most notably when a new version of gcc hits the fan :/
It will probably newer be fixed 100% because the gcc team has made clear that they dont support changing it locally because it would break linux builds.

sorry for my pool english, you can check the following codes

source: a.c

Code
#include <stdio.h>
#include <float.h>

#ifndef MCW_EM
#define MCW_EM _MCW_EM
#endif

int main()
{
    printf("%x\n",MCW_EM);
    return 0;
}

cmd: gcc a.c

tdm-gcc-4.5.2: pass
tdm-gcc-4.6.1: a.c:10:19: error: '_MCW_EM' undeclared
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on October 19, 2011, 10:39:39 am
Aye thats pretty much the same error i ran into the couple of versions of gcc i been using with mingw when something used those float functions.
And a few others i cant remember of the top of my head.
Only advise i can give is let the mingw developers know that its broken (again) with 4.6.1 and hopefully they fix it for this version.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on October 19, 2011, 10:49:12 am
Aye thats pretty much the same error i ran into the couple of versions of gcc i been using with mingw when something used those float functions.
And a few others i cant remember of the top of my head.
Only advise i can give is let the mingw developers know that its broken (again) with 4.6.1 and hopefully they fix it for this version.
I think gcc 4.6.1 with mingw64 headers and crt has not the issue.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on October 19, 2011, 07:00:09 pm
Been a while since i had code using the float functions but an easy test is compiling QT 4.7 since i know it uses them.
Might be allready fixed with the mingw64 crt but cant speak for standard mingw crt.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: ollydbg on December 21, 2011, 02:21:16 am
Is it possible the backport this patch to 4.6.x serial of tdm gcc. see:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49951

Mentioned here:http://forums.codeblocks.org/index.php/topic,15264.msg103631.html#msg103631

Without this fix, it was really annoying when debugging.
Thanks.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 23, 2012, 05:02:14 pm
...did anyone try to link against bfd on 64 bit Windows? It seems the bfd library provided with the 64 bit version of TDM-GCC is incompatible. Is that correct?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 24, 2012, 08:08:57 am
Backported the patch to 4.6.2 it should allready be in on 4.6.3.
Havent tried linking to bfd with TDM's build since i maintain my own fork so cant say.
You are welcome to test my own fork and see if it also fails with that.
If it does let me know so it can be fixed.

the 64 bit fork is here. http://sourceforge.net/projects/cbadvanced/files/MinGW64-gcc-4.6.2-ada-build.7z/download (http://sourceforge.net/projects/cbadvanced/files/MinGW64-gcc-4.6.2-ada-build.7z/download)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 24, 2012, 09:02:41 am
the 64 bit fork is here. http://sourceforge.net/projects/cbadvanced/files/MinGW64-gcc-4.6.2-ada-build.7z/download (http://sourceforge.net/projects/cbadvanced/files/MinGW64-gcc-4.6.2-ada-build.7z/download)
I don't need ADA, just C, C++ and GFortran. Do you have such, too? And BTW: Why are the packages so HUGE? GCC-TDM is 350MB uncompressed, while yours are 650MB and more compressed... :o
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 24, 2012, 12:36:59 pm
its not just ada its everything besides java and also the dragonegg compiler plugin. and sorry about the size im not sure why my builds end up bigger than TDM's maybe optimization related ? i use -O2. Ill see if i can strip the builds some to get sizes down.

Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 24, 2012, 01:48:41 pm
ow forgot the two mingw packages where built by request for quake compilation and include a ton of libraries so thats why they are so large.
i made two minimal versions with just the gcc related libraries. you might like the size of those better.

http://sourceforge.net/projects/cbadvanced/files/mingw64-gcc-4.6.2-dragonegg-minimal.7z/download (http://sourceforge.net/projects/cbadvanced/files/mingw64-gcc-4.6.2-dragonegg-minimal.7z/download)

Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 24, 2012, 03:36:53 pm
http://sourceforge.net/projects/cbadvanced/files/mingw64-gcc-4.6.2-dragonegg-minimal.7z/download (http://sourceforge.net/projects/cbadvanced/files/mingw64-gcc-4.6.2-dragonegg-minimal.7z/download)
OK - I tried that, but that's not exactly what I am looking for. I am looking for the MinGW 64 compiler that can run / link on Win32 but "cross-compile" to Win64. The one in your archive only runs on 64 bit platforms. What I *could* do though is using the libraries provided with your compiler to link against - but that will be error-prone as the compiler I am using for the build differs (GCC-TDM).  :-\

Thanks for the effort anyways though...
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on February 24, 2012, 07:18:01 pm
It seems the bfd library provided with the 64 bit version of TDM-GCC is incompatible. Is that correct?
This is correct; the libbfd that comes with TDM-GCC's binutils is 32-bit only. What in particular do you need libbfd for?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 24, 2012, 07:29:43 pm
This is correct; the libbfd that comes with TDM-GCC's binutils is 32-bit only. What in particular do you need libbfd for?
Thanks for the info. I want to create a 64 bit version of our crash handler (exchndl). I stripped it down to this library dependency.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on February 24, 2012, 07:39:31 pm
Good to know. I'll try and see about having both 32-bit and 64-bit versions for the next release. In the meantime, any Windows 64-bit version of libbfd should work; you could even build it yourself.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 24, 2012, 07:44:33 pm
In the meantime, any Windows 64-bit version of libbfd should work; you could even build it yourself.
Good to know for me. In fact I tried the one shipping with the "official" MinGW/64 GCC but I wasn't sure if I am not doing anything wrong here, because the header files differ from the one of your distribution (namely ansidecl.h, bfd.h and bfdlink.h).
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 24, 2012, 10:26:58 pm
np m8 :) and aye my builds are non cross and intended for native builds so tdm's would suit better.
I dont think a lot changed in the bfd library since 4.6.1 so try it out it might work.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on February 25, 2012, 04:05:03 am
@MortenMacFly

You can try MinGW64 project X64 edition:

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on February 25, 2012, 04:07:09 am
its not just ada its everything besides java and also the dragonegg compiler plugin. and sorry about the size im not sure why my builds end up bigger than TDM's maybe optimization related ? i use -O2. Ill see if i can strip the builds some to get sizes down.



I think you use LTO to build all your packages? Or not strip your packages?
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 25, 2012, 07:55:30 am
Quote
ow forgot the two mingw packages where built by request for quake compilation and include a ton of libraries so thats why they are so large

Had forgotten the above  ::)  i compile with  -O2 -s -ftree-vectorize.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: MortenMacFly on February 25, 2012, 09:17:37 am
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/
Yes, I stumbled across, these, too. But I don't understand what I need to d/l at best (what is rubenvb, sezer, megasoft78 etc...)? Not to forget what a the differences between "Multilib Toolchains","personal builds" and "automated builds", what is official, what is not...

In my opinion there is just too much of different resources scattered in this download section without explanation. Not offending here, but if I look at TDM's releases, they are just clear and easy to understand / pickup.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on February 25, 2012, 05:32:02 pm
Aye it can be a bit confusing. Multilib builds are like TDM's cross version but with a different layout.
Automated builds are just buildbot builds of there versions.
Sezero etc. Are personal builds with fixes to some problems (or) general improvements to the standard distros.
For instance the ada build has been on the backburner for years because of problems building gnat on windows with mingw64. Turned out the fix was an old TDM patch :).
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: ptDev on April 09, 2012, 09:28:15 am
GCC is now stable at version 4.7.0.
When can we expect a TDM-GCC release based on GCC 4.7.0? :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on April 09, 2012, 04:39:48 pm
Hopefully soon. :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: killerbot on April 09, 2012, 08:03:37 pm
 ;D
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: xunxun on April 10, 2012, 08:13:10 am
GCC is now stable at version 4.7.0.
When can we expect a TDM-GCC release based on GCC 4.7.0? :)

I think TDM is better to build 4.7 when the bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52465 is fixed. The bug can prevent WebKit from building.

And at present, 4.7 can't build Code::Blocks trunk : http://forums.codeblocks.org/index.php/topic,16039.0.html  
Hope Jens will fix it soon.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on April 10, 2012, 05:27:06 pm
Neither of these are actual reasons against a TDM 4.7 build, if you ask me.

The Code::Blocks (or rather Squirrel) issue is not GCC's fault, it's code relying on non-conforming behaviour that breaks. The new behaviour is correct.
The WebKit issue seems to be a GCC bug indeed, but one that will only affect few people. On the other hand, the new version has a lot of very useful and eagerly anticipated features, which in my opinion by far outweight the sporadic bugs.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Justin Brimm on April 15, 2012, 12:10:04 am
Frankly, as long as GCC doesn't break any Objective-C features and continues to improve the runtime, I see no problem with the newest release, bugs and all.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: Master on April 16, 2012, 09:41:35 pm
any news on the gcc 4.7.0 ?
im really eager to get my hands on it using TDMs build :)
and thank you for your great work :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on April 17, 2012, 06:36:01 am
Not TDM's but uses some of his patches.

http://sourceforge.net/projects/cbadvanced/files/gcc32-4.7.0.7z/download (http://sourceforge.net/projects/cbadvanced/files/gcc32-4.7.0.7z/download)
http://sourceforge.net/projects/cbadvanced/files/gcc64-4.7.0.7z/download (http://sourceforge.net/projects/cbadvanced/files/gcc64-4.7.0.7z/download)

Very hard to build on windows atm due to some bugs with detection of system headers, bootstrapping is a complete nogo so this is a non bootstrap build.
Builds contain ada support for both 32 and 64 bit arch.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on April 17, 2012, 08:51:03 am
Very hard to build on windows atm
Heh, as if building gcc had ever not been a total pain in the ass.  ::)

But, if it's even more borked than usual, that's no good news.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on April 17, 2012, 01:32:21 pm
Aye newer been easy but now its just silly :S stage 1 works but in stage 2 it looses track of system headers and states that there are none no matter where you put em lol  ::)
it also refuses to build libcpp unless you make a hardcopy of cpp.exe in /usr/lib...
From testing i can say that C works fine but C++ seems to have some weird behaviour compared to earlier releases (cannot build C::B without -fpermissive and the patch for squirrel for one and the executable crashes with 0x00005 error). Atleast the header composition bug was posted so might be fixed sometime soon. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52947 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52947)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: thomas on April 17, 2012, 04:23:04 pm
See, that's what I'm always saying about the downsides of universality, portability and localization, and all that stuff.

Gcc builds on what, 50 different host architectures, for 25 targets, with cross and whatnot, and handles what, 20 programming languages and output in 30 character sets and 135 languages? Great.
However, you cannot get it to build on the single most common host in the world, for the single most common host/target combination, with the two most used languages.  ::)

Though I have to admit that I once managed, after burning weeks of time, to get a 3/4 build (cross, from Debian) done. Except 3/4 through the build is as good as 0/4   8)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on May 09, 2012, 05:26:25 am
Just a heads up for john if he works on 4.7.0 the shmem patch needs to be modified a bit since the stuff it changes has moved into the libgcc folder. Also a few of the names where changed. I got it fixed and it compiles ok.
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: TDragon on May 09, 2012, 02:20:28 pm
If you'd like to attach or PM me the modified version, I'll compare it to mine to see if I missed anything. :)
Title: Re: TDM-GCC 4.6 series (Latest: 4.6.1 - 2011-09-23)
Post by: reckless on May 11, 2012, 08:15:25 pm
pm'ed the modfied patch not sure if you noticed it yet ?.

i removed the magic you had in libstdc++ makefile.in because it needs to be modified as well (now 3 seperate libraries instead of one in libsupc++ gets linked into the final libsupc++ library). It works ok without it but i guess you had your reasons to split it up in seperate shared/static elements.

Unfortunatly anything linking to libstdc++ will crash on win7 64 (not sure if it also does so on Win7 32) but its not related to your patch the unmodified version also crashes.
This affects both static and shared builds so its really a bug in libstdc++. As an experiment try replacing something that was linked to the shared libstdc++ with the libstdc++ dll from a previous version. With the gcc-4.7.0 libstdc++ i get the application has stopped working but if i replace it with the gcc-4.6.3 one it works.