Author Topic: Newer MinGW seems to slowdown the build binary  (Read 7477 times)

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 201
Newer MinGW seems to slowdown the build binary
« on: November 13, 2013, 04:56:27 am »
Hello Everybody.

In the past I used MinGW 4.4.1 ("gcc-4.4.1-tdm-2") to compile my shell binaries (Moritz and MuLanPa). Now I changed to MinGW 4.7.1 ("tdm-gcc-4.7.1-2"). But the result is not realy satisfying me. The binaries become larger and slower. Especialy those parts in my binaries wich use spirit-parsers doubled their runtime. You may test it by downloading at http://sourceforge.net/projects/mulanpa/files/MuLanPa_0/ the windows-release of September and October. The change in the sourecs are from my view very small but the difference in the runtime is very significant.

But it may be that I just use the wrong build options. Currently I use C::B 9246 on winxp sp3 (32 bit). I played around with the configuration of the build-process ant the optimyzation and I found out that it is possible to decrease the size. But I was not able to reache the same speed as with the older MinGW.

Has anybody some more experiences with this and knows how to configure the build-process with MinGW speed up the resulting binary?

Best regards,

                  Ecakrd.

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 201
Re: Newer MinGW seems to slowdown the build binary
« Reply #1 on: November 14, 2013, 06:06:11 am »
Hello Everybody.

Yesterday I tried the new "tdm-gcc-4.8.1-3" also with a similar result (actualy the build binary was a little bit slower, what means it was achnage in the more worst direction).

There are 2 reasons why I mention this in the forum of C::B :
  • First I feel forced to update my compiler to have a compatible tool-system for developing a plugin for Code::Blocks, what I want to do next.
    In the wiki at http://wiki.codeblocks.org/index.php?title=Compile_Code::Blocks_plugins_based_on_a_nightly you can read:
    Quote
    So, you don't want to compile wxWidgets or Code::Blocks core but still want to be able to modify a certain plugin (for example) and use the modified plugin in your favourite nightly? Its possible. Here is what you need:

    The wxWidgets sources (!) - no need to compile them, just download from here but exactly the version, the nightly is built on.
    A nightly of your choice, download from here.
    The MinGW/GCC compiler used to build the nightly - as written in the nightly section and usually available from here here. Note that the version (i.e. v4.5.2) and flavour (i.e. sjlj or dwarf) must match. Usually this information is available here.
    The Code::Blocks sources in the revision the nightly is based on from here. You usually get these, if you issue a:
    and at http://forums.codeblocks.org/index.php/topic,3299.0.html you can read
    Quote
    12) all is now build with TDM-GCC 4.7.1, wxWidgets 2.8.12 (28 October 2012)
    Therefor it is advised to also redownload the mingwm dll and the wx dll. Since these have also been rebuild with the TDM GCC 4.7.1 compiler (sjlj flavor).
    What means for me for a plugin I have to use "TDM GCC 4.7.1".

  • Second I understood C::B always as an IDE with a special support or MinGW. So my hope is, that one of the developers is able to tell me, what I have to use as configuration for a newer MinGW compiler, to get the maximum speed as before with the older compiler. At the end I can not realy belive that the newer MinGW is realy slowing down the binary. Thus I think it is more a change in the configuration and this will be done in C::B or not. 


Best Regards,
            Eckard.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13406
    • Travis build status
Re: Newer MinGW seems to slowdown the build binary
« Reply #2 on: November 14, 2013, 09:02:11 am »
What means for me for a plugin I have to use "TDM GCC 4.7.1".
Yes, the compilers must match. Otherwise you might get strange errors.

  • Second I understood C::B always as an IDE with a special support or MinGW.
Hm, no C::B is generic it terms of compiler support. MinGW (TDM port that we ship) is used the most because it is the easiest to use or ship on Windows.
But keep in mind that this forum and the project doesn't provide support for any of the compilers that can work inside C::B.
This is of course written in the rules and you should already know it.
(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 eckard_klotz

  • Almost regular
  • **
  • Posts: 201
Re: Newer MinGW seems to slowdown the build binary
« Reply #3 on: November 14, 2013, 09:32:06 am »
Hello oBFusCATed.

Quote
Hm, no C::B is generic it terms of compiler support. MinGW (TDM port that we ship) is used the most because it is the easiest to use or ship on Windows.
But keep in mind that this forum and the project doesn't provide support for any of the compilers that can work inside C::B.
This is of course written in the rules and you should already know it

OK. You are right, you are not responsible for supporting this compiler and may be if I wrote about a "a special support or MinGW" I used the wrong words. I ment it more in the sense that you may have some more experineces in this things since the windows version has an own interface for MinGW  (mingw10m.dll) and you use it for compiling Code::Blocks for windows.

Thus please let me correct my statement:
 
Second I understood C::B always as an IDE where the developers have special experiences in using MinGW and may be interested in those problems since it may effect their work also.


Third if you have no special experiences do you know where the forum of TDM is? I only found a bug-tracker but I think, it is not realy a bug but only a missing configuration-option currently not available in the default list of Code::Blocks.

Best regards,
                    Eckard.

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 201
Re: Newer MinGW seems to slowdown the build binary
« Reply #4 on: November 18, 2013, 10:00:17 am »
Hello Everybody.

In the meanwhile I found the reason why the new MinGW results in bigger and slower binaries and I found a solution to deal with this also. But I wonder if it is really welcomed to mention this here. In fact it was a challenge more related with the installation-package provided by TDM what comes along with SJLJ and not with DW2. What means the solution was to install a second independent MinGW system in parallel.

Respecting the order given by oBFusCATed I don't want to publish to much text to provide misusing this forum. But actually I think that this information will be also useful for the users for Code::Blocks:
  • 1. The TDM-project has now own forum they only have a bug-tracker and I'm not sure if this is really a bug.
  • 2. The problem occurred since I was forced to change my compiler to be able to develop a plug-in for Code::Blocks. So I think if you expect a common toolset it will helpful if you would provide a place to share experiences with this tools.
  • 3. I had to change some configurations of Code::Blocks also.

But perhaps my real failure was not to post my TDM related question on the Code::Blocks side. But I used the wrong part-forum.

Please give me a hint how continue. I like to share my lesson learned as long as you allow it. If you think that an other forum of Code::Blocks is a better place for it please feel free to move my post.

Best regards,
                     Eckard.

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 201
Re: Newer MinGW seems to slowdown the build binary
« Reply #5 on: November 19, 2013, 12:34:22 pm »
Hello Forum Admin.

Just to give you an impression what I'm thinking about, as long as you are able to deal with the German language you may take a look to this:http://www.c-plusplus.de/forum/321527?sid=4c7fb7b5c692915bfef92200c0252e87.

Certainly I have to translate this for the Code::Blocks forum. But I will do so only if you are interested.

Best Regards,
                   Eckard.