Home » Developing U++ » Releasing U++ » mingw?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: mingw? [message #22148 is a reply to message #22124] |
Fri, 19 June 2009 16:31   |
|
|
| koldo wrote on Fri, 19 June 2009 00:08 | Hello Sender Ghost
I have put the little benchmark in Upp "Bombs" example and it worked well without and with -msse2 (with this it worked three times faster).
...........
Any way I suggest anybody to update MinGW as much as possible.
And it also would be good to:
- either add to "Speed" option more optimisations like "-msse2" or "/arch:SSE2"
- or add other option like "Max Speed" (or other name) to include maximum optimizations that are less reliable, like -msse2 in your computer.
I do not know if there are more configurations, but I have been very surprised. Look in MSC9 test: from 17.3 to 2.1 seconds
Best regards
Koldo
|
Very interesting things. I agree to add this option to "Speed" when autobuild (Automatic setup), do not need to add new option "Max Speed".
For me works fine and speed time is more faster. can you tell how to upgrade minGW for u++? is any specific configuration or is standard installation of minGW?
|
|
|
|
|
|
|
|
| Re: mingw? [message #22153 is a reply to message #21939] |
Fri, 19 June 2009 22:44   |
 |
koldo
Messages: 3458 Registered: August 2008
|
Senior Veteran |
|
|
Hello all
One thing I did not know:
- TheIde compiled with MSC can debug MinGW and MSC
- TheIde compiled with MinGW can debug MinGW but hungs trying to debug MSC.
In the last case TheIde outputs an Exclamation window with "Error invoking gdb !", strange as I am trying to compile with MSC.
This is in the file gdb.cpp:
bool Gdb::Create(One<Host> _host, const String& exefile, const String& cmdline)
{
host = _host;
dbg = host->StartProcess("gdb " + GetHostPath(exefile));
if(!dbg) {
Exclamation("Error invoking gdb !");
return false;
}
Gdb::Create is called in the same file in:
One<Debugger> GdbCreate(One<Host> host, const String& exefile, const String& cmdline)
{
Gdb *dbg = new Gdb;
if(!dbg->Create(host, exefile, cmdline)) {
delete dbg;
return NULL;
}
return dbg;
}
And GdbCreate is called in file Debug.cpp in:
void Ide::BuildAndDebug(bool runto)
{
...
#ifdef COMPILER_MSC
debugger = builder == "GCC" ? GdbCreate(host, target, runarg) : PdbCreate(host, target, runarg);
#else
debugger = GdbCreate(host, target, runarg);
#endif
So it seems the code forces to use Gdb although the compiler used is MSC. This could be the problem.
Best regards
Koldo
Best regards
Iñaki
|
|
|
|
| Re: mingw? [message #22154 is a reply to message #22152] |
Fri, 19 June 2009 23:05   |
Sender Ghost
Messages: 301 Registered: November 2008
|
Senior Member |
|
|
Hello, Koldo.
TheIDE in Optimal mode will compile packages and selected files with "Optimize for speed" option using defined compiler string (by default: "-O3 -ffunction-sections") and other files with "Optimize for size" compiler string (by default: "-Os -finline-limit=20 -ffunction-sections") as installed in Build methods for GCC builder.
When we use SSE2 flag in main package configuration TheIDE will add "-msse2 -mfpmath=sse" string to compiler options (both for speed and size).
I suggested to use O2 compiler option instead of O3 when using SSE2. Because in my configuration, e.g. TheIDE and AddressBook, U++ GUI application crashes when started. The cause can exists in following areas:
- GCC compiler itself;
- U++ algorithms which used in GUI applications (area can be limited by "Opimize for speed" files);
- Operating system;
- Hardware configuration.
Yes, I can run Bombs U++ GUI application, but it crashes when I click on "Game" submenu.
[Updated on: Sat, 20 June 2009 09:25] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
| Re: mingw? [message #22186 is a reply to message #22163] |
Tue, 23 June 2009 15:32   |
|
|
| koldo wrote on Sun, 21 June 2009 16:35 | Hello Speed Ghost
Then I have recompiled TheIde changing this:
if(HasFlag("SSE2"))
cc << " -msse2";// -mfpmath=sse";
and:
Main Pack. Conf. Compiler Opt Test time Problems?
- GUI SSE2 No option 2.4 sec Crash
and I have recompiled again with:
if(HasFlag("SSE2"))
cc << " ";//-msse2";// -mfpmath=sse";
and:
Main Pack. Conf. Compiler Opt Test time Problems?
- GUI SSE2 No option 9.5 sec Ok
.....................
Best regards
Koldo
|
Koldo,
I thing that is need to set a final source version and propuse for change in svn.
Use as flag I do not thing that it is a good idea. But use in compile options is more transparent.
I thing that it should change Automatic setup (maybe it for win32 only ) for speed option set this command.
for mingw
[Updated on: Tue, 23 June 2009 15:33] Report message to a moderator
|
|
|
|
|
|
|
|
| Re: mingw? [message #22209 is a reply to message #22188] |
Wed, 24 June 2009 14:19   |
|
|
Sorry Koldo,
I understood wrong.
The problem is not in u++ but in MinGW TDM 4.4.0?
Right?
I tested for me with old MinGW and have not errors.
| koldo wrote on Tue, 23 June 2009 16:55 | Hello Ion
Excuse me, I do not understand you very well
After the tests I compile in "GUI" (not in "GUI SSE2") and for the end source if SSE2 code is included I include compiler options "-msse2 -mfpmath=sse" and "/arch:sse2".
Best regards
Koldo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: mingw? [message #22713 is a reply to message #22710] |
Fri, 07 August 2009 23:07   |
|
|
I often use MINGW. Moreover, MINGW I have, some old version that was included with the UPP. When I was downloading update UPP (for Linux), - I Replace folder uppsrc of wine, - and it works.
By the way - the generation of Win applications under wine, in my opinion, better guarantees against viruses in the final assembly of windows applications.
That is why - I really want to branch MINGW developed, supported and discussed.
SergeyNikitin<U++>( linux, wine )
{
under( Ubuntu || Debian || Raspbian );
}
|
|
|
|
|
|
|
|
| Re: mingw? [message #22718 is a reply to message #22699] |
Sat, 08 August 2009 14:19  |
 |
mirek
Messages: 14290 Registered: November 2005
|
Ultimate Member |
|
|
| koldo wrote on Thu, 06 August 2009 03:57 | Hello
| ptDev wrote on Sun, 28 June 2009 09:50 | It's true, and I found this annoying too. Especially considering it's just a 44kb dll.
However, if one uses the '-static-libgcc' option, the dependency is removed. This is something to keep in mind.
|
Perhaps we would have to propose Theide developers to include this in source code.
A possible implementation could be in file GccBuilder.cpp, line 130, adding this:
if(HasFlag("WIN32")) {
cc << " -static-libgcc";
I have compiled Theide with this change and I have debugged programs with MinGW 4.4.0 and without libgcc_s_dw2-1.dll without problems.
Best regards
Koldo
|
I think it should work via build method too, correct? (In that case, I can make it part of mingw autosetup).
Mirek
|
|
|
|
Goto Forum:
Current Time: Sun Apr 26 20:31:32 GMT+2 2026
Total time taken to generate the page: 0.01860 seconds
|