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

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #45 on: February 09, 2015, 11:20:30 am »
If at any time TDM-GCC becomes no longer relevant, I will happily cease. :)
You seem to have misunderstood me there. What I'm saying is that there's rules, but the same rules don't apply equally to everybody  ;D

That's true in particular since TDM-GCC is a really nice compiler build, and the best option for building and using Code::Blocks (plus, as Morten pointed out, the compiler we bundle by default). So whether it's technically unrelated or not, I wouldn't care  :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #46 on: February 18, 2015, 08:02:36 pm »

Offline MortenMacFly

  • Administrator
  • Lives here!
  • *****
  • Posts: 9694
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #47 on: February 18, 2015, 08:58:38 pm »
John, could you explain a bit more on this : http://forums.codeblocks.org/index.php/topic,20018.msg136723.html#msg136723
I think its not Johns fault and what the heck, lets include this text document... so what? I think we don even need it for the installer with MinGW bundled. However, I just complained on the link provided...
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: https://www.codeblocks.org/docs/main_codeblocks_en.html
C::B FAQ: https://wiki.codeblocks.org/index.php?title=FAQ

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #48 on: February 18, 2015, 10:08:59 pm »
No, it is not Johns fault, but just to get some more insights  ;D

Offline Michaela Joy

  • Multiple posting newcomer
  • *
  • Posts: 11
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #49 on: February 19, 2015, 05:27:52 pm »
@TDragon: I just wanted to say thank you for all the hard work that you put into TDM-GCC. I just managed to get a 64 bit Windows shell extension working.

TDM-GCC + Code::Blocks = Awesome!  8)


Offline Melchior

  • Multiple posting newcomer
  • *
  • Posts: 64
  • Sage of Life, Reason, and Time
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #50 on: February 20, 2015, 08:27:28 am »
I was thinking about replacing old MinGW env with TDM.... just not sure if I should
I would like to be able to compile and debug(gdb) for 32&64bit....
though I don't like the idea of it defaulting to compiling 64bit binaries.....

what I was hoping/looking from TDM64 is

a 64bit  compiler/linker/gdb/etc  that run native on 64bit windows so they run more efficiently
but since I only compile 32bit programs at this point,
I would have to retool every thing I am compiling to force 32bit -->   -m32


- CodeBlocks as debug and  WxWidgets compiled as debug for use with C::B


- ZSNES (SNES emu) I have followed it svn since 2004 or so though it hasn't been updated since
SVN-Info__r4838__jbo__8-39-08 PM, Thursday, March 01, 2007__ is the last commit I have from that program...


- My own Temperature Converter console app in C
    (original I wrote as an assignment for cs140 2001-2002, converted F° to C° and C° to F°)
 
     2012 I completed it does all 6 conversions, F° to C°, C° to F°, F° and C° to K, and K back to F° and C°.
    I converted to C++ after that.


« Last Edit: February 20, 2015, 08:42:07 am by Melchior »
(PC Specs)
CPU: AMD FX-9590 4.7GHz 8-core  RAM: 32GB
Motherboard: Asus SABERTOOTH 990FX R2.0
GPU: nVidia GTX 1070 Ti 8GB  --  GFX Drivers: Nvidia v431.60
OS: Windows 7 Ultimate 64-bit SP1 (x64)

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #51 on: February 21, 2015, 06:43:26 am »
John, could you explain a bit more on this : http://forums.codeblocks.org/index.php/topic,20018.msg136723.html#msg136723

C++11 std::threads (and associated functionality) require a pthreads interface in GCC.

On Windows, the options to fulfill this requirement are pthreads-win32 or winpthreads.

Winpthreads has a MIT-like license; pthreads-win32 is LGPL. Of the two, the winpthreads license is less restrictive. However, a conscientious reading still requires distributing the text of the license with binaries based on it. (I have argued this elsewhere and won't rehash the argument here.)

Every binary created with a pthreads-enabled GCC includes portions of the pthreads library (even C programs that don't link to libstdc++, or other languages). I have personally confirmed this to be true.

Ergo, I feel compelled to warn users that they are apparently required to distribute the winpthreads license text with every program created by TDM-GCC, be it the TDM/MinGW edition or the TDM64/MinGW-w64 edition. This started with the 4.8.1 release.

Feel free to respectfully request of the MinGW-w64 project - particularly of Kai Tietz, who I believe was the primary developer of winpthreads - that the license be altered. :)

-John E. / TDM
« Last Edit: February 21, 2015, 06:47:34 am by TDragon »
https://jmeubank.github.io/tdm-gcc/ - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #52 on: February 21, 2015, 12:52:29 pm »
I would actually prefer a compiler with no thread support, since C++11 threading sucks big time anyway   ;D

Being able to fire off a lambda in a thread is admittedly cool, but the rest is just a poor rip-off of a 1990s threading API which was already unreasonable back then (such as requiring a condition variable to be protected by a mutex because, hey, there exists some 35 year old computers from Sun which have a broken implementation that requires this, so better make it standard for everyone).
That, plus some really stupefying requirements that compel library writers to add extra code which is not beneficial to anyone, except to please the guy who wrote the proposal (such as having a mutex that is not explicitly recursive throw exceptions when called recursively, even if it could be called recursively without harm).
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Chun Jiu

  • Multiple posting newcomer
  • *
  • Posts: 71
  • My Girlfriend
    • EasilyGCC
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #53 on: March 17, 2015, 09:53:55 am »
Oh, Please forgive me digress!I encountered a problem, although it is estimated that the wxWidgets 3.x problem, but still want to confirm with you :-)

I also asked the same question on wxWidgets forum, please allow me to repeat here:
https://forums.wxwidgets.org/viewtopic.php?f=19&t=40788

I want to know it's not the TDM-GCC-64 issues.
Thank you.

--------------------------------------


The wxWidgets 3.0 seems to have problems, the problem does not appear in 2.8.

The TDM-GCC-64 compiled of 32bit code with the option -m32 under Windows64 will always be 0xc000007b error.

This windres also used --target = pe-i386 parameters, the compiler has succeeded. But the emergence of this 0xc000007b execution error.

The wxWidgets comes with examples you can reproduce the problem, for example: wxWidgets-3.0.2\samples\display.

In the same example wxWidgets 2.8.12 did not have this problem, it's correct.

=========================================================

For wxWidgets-3.0.2\samples\display.
In wxWidgets 3.0.2:

mingw32-make -f makefile.gcc CXXFLAGS="-std=gnu++11 -IC:\Project\wxWidgets-3.0.2\lib\gcc_dll_m32\mswu -IC:\Project\wxWidgets-3.0.2\include" CPPFLAGS="-m32 -IC:\Project\wxWidgets-3.0.2\lib\gcc_dll_m32\mswu -IC:\Project\wxWidgets-3.0.2\include" LDFLAGS="-m32 -LC:\Project\wxWidgets-3.0.2\lib\gcc_dll_m32" WINDRES="windres --target=pe-i386 --use-temp-file" MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

For wxWidgets-2.8.12\samples\display.
In wxWidgets 2.8.12 ( I modified the makefile.gcc adding parameters --target=pe-i386 ) :

mingw32-make -f makefile.gcc CXXFLAGS="-std=gnu++11 -IC:\Project\WX_2_8\lib\gcc_dll_m32\mswu -IC:\Project\WX_2_8\include" CPPFLAGS="-m32 -IC:\Project\WX_2_8\lib\gcc_dll_m32\mswu -IC:\Project\WX_2_8\include" LDFLAGS="-m32 -LC:\Project\WX_2_8\lib\gcc_dll_m32" WINDRES="windres --target=pe-i386 --use-temp-file" MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release

==========================================================

C:\Project\WX_2_8\samples\display>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Tools/TDM-GCC-64/bin/../libexec/gcc/x86_64-w64-mingw32/4.
9.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-4.9.2/configure --build=x86_64-w64-mingw32 --e
nable-targets=all --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable
-libgomp --enable-lto --enable-graphite --enable-cxx-flags=-DWINPTHREAD_STATIC -
-disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-libstdcxx-d
ebug --enable-threads=posix --enable-version-specific-runtime-libs --enable-full
y-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-l
d --disable-werror --disable-nls --disable-win32-registry --prefix=/mingw64tdm -
-with-local-prefix=/mingw64tdm --with-pkgversion=tdm64-1 --with-bugurl=http://td
m-gcc.tdragon.net/bugs
Thread model: posix
gcc version 4.9.2 (tdm64-1)



Quote
C++11 std::threads (and associated functionality) require a pthreads interface in GCC.
On Windows, the options to fulfill this requirement are pthreads-win32 or winpthreads.
I love my girlfriend like c++!    :-)

http://pan.baidu.com/s/1feNwU
easilygcc is a gmail's email.

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #54 on: March 18, 2015, 01:07:34 am »
Check your %PATH% for incompatible DLLs. Better yet, try executing in a clean environment.

I was able to successfully compile and run Code::Blocks in TDM64 -m32 mode, so I doubt this indicates any compiler flaw.
https://jmeubank.github.io/tdm-gcc/ - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

Offline Chun Jiu

  • Multiple posting newcomer
  • *
  • Posts: 71
  • My Girlfriend
    • EasilyGCC
Re: TDM-GCC 4.9 series (Latest: 4.9.2-tdm-1 - 2014-12-08)
« Reply #55 on: March 18, 2015, 06:52:06 am »
Check your %PATH% for incompatible DLLs. Better yet, try executing in a clean environment.

I was able to successfully compile and run Code::Blocks in TDM64 -m32 mode, so I doubt this indicates any compiler flaw.

Thank you :-)

I also think that the compiler does not issue. Because everything is fine to use wxWidgets 2.8.12 with TDM-GCC, except wxWidgets 3.0.2 .
I love my girlfriend like c++!    :-)

http://pan.baidu.com/s/1feNwU
easilygcc is a gmail's email.