User forums > General (but related to Code::Blocks)
TDM-GCC 4.5 series (Latest: 4.5.2 - 2011-03-27)
reckless:
got the patch from here http://195.135.221.130/pub/opensuse/repositories/windows:/mingw:/win32/openSUSE_Factory/src/ you need to rebuild binutils with the patch in there binutils src rpm, but tbh its just as easy just doing LDFLAGS="-Wl,--enable-runtime-pseudo-reloc-v2" ./configure --blah and you might run into problems with other stuff with runtime pseudo relocation allways on.
Max:
I have two questions about the latest TDM GCC (4.5.0)
1) In the download page the 32 bit binutils is linked to the 2.20.1 version. The 64 bit version is linked to the latest 2.20.51 instead. Becasue the 2.20.51 is enable the pseudo-reloc-v2 by default I'm wondering why the 32 bit is still using the old one. Is there any reason for that?
2) I'm using the TDM-GCC 4.4.1 but I'm getting trouble throwing an exception from a thread and catching it in another thread. My understanding is that the exception mechanism is not thread safe in 4.4.1. Is this bug fixed in the 4.5.0 (that is really using TLS now). This bug is the only reason that is pushing me to upgrade. So I need to know if 4.5.0 has a a thread safe exception handling.
Thx
max
reckless:
might just not have been updated yet, mingw64 is normally heaps and bounds ahead of normal mingw in implementing new tech.
and gcc-4.5.0 supports thread local storage, how stable it is i cant vote for though but it works ok here :)
TDragon:
--- Quote from: MaxGaspa on June 19, 2010, 05:13:27 pm ---1) In the download page the 32 bit binutils is linked to the 2.20.1 version. The 64 bit version is linked to the latest 2.20.51 instead. Becasue the 2.20.51 is enable the pseudo-reloc-v2 by default I'm wondering why the 32 bit is still using the old one. Is there any reason for that?
--- End quote ---
For the 32-bit edition I elect to provide only GCC's own binaries and use the MinGW project's official releases for the other packages. At the time that TDM-GCC 4.5.0 was released, the latest MinGW binutils release was 2.20.1. A newer version has since been released, and as soon as I'm convinced it has no severe regressions, I'll update the links and the installer.
--- Quote ---2) I'm using the TDM-GCC 4.4.1 but I'm getting trouble throwing an exception from a thread and catching it in another thread. My understanding is that the exception mechanism is not thread safe in 4.4.1. Is this bug fixed in the 4.5.0 (that is really using TLS now). This bug is the only reason that is pushing me to upgrade. So I need to know if 4.5.0 has a a thread safe exception handling.
--- End quote ---
All recent TDM-GCC releases have been tested to work correctly throwing exceptions within threads, but trying to throw an exception in one thread and catch it in another is just asking for trouble, particularly as Windows has no concept of a true "joinable" thread. You should instead catch the exception in your thread function, convert it to heap memory if it isn't there already, and transfer it to your other thread via some synchronization function.
keke:
I'm trying to build TDM-GCC 4.5.0 32 bits from the sources using the provided makefile and scripts. I think I correctly followed the instructions but I'm stuck somewhere (during the compilation of the ppl lib I think). It says:
--- Code: ---/bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -frounding-math -O2 -I/cr
ossdev/support-stage-tdm32/gmp/include -W -Wall -version-info 8:0:1 -no-undefin
ed -s -L/crossdev/support-stage-tdm32/gmp/lib -o libppl.la -rpath /crossdev/supp
ort-stage-tdm32/ppl/lib Box.lo checked.lo Checked_Number.lo Float.lo fpu-ia32.lo
Constraint.lo Constraint_System.lo Congruence.lo Congruence_System.lo Generator
_System.lo Grid_Generator_System.lo Generator.lo Grid_Generator.lo Init.lo Coeff
icient.lo Linear_Expression.lo Linear_System.lo Matrix.lo Scalar_Products.lo MIP
_Problem.lo Poly_Con_Relation.lo Poly_Gen_Relation.lo BHRZ03_Certificate.lo H79_
Certificate.lo Grid_Certificate.lo Polyhedron_nonpublic.lo Polyhedron_public.lo
Polyhedron_chdims.lo Polyhedron_widenings.lo C_Polyhedron.lo NNC_Polyhedron.lo G
rid_nonpublic.lo Grid_public.lo Grid_chdims.lo Grid_widenings.lo BD_Shape.lo Oct
agonal_Shape.lo Pointset_Powerset.lo Row.lo Linear_Row.lo Bit_Matrix.lo Bit_Row.
lo Ph_Status.lo Grid_Status.lo Variable.lo Variables_Set.lo conversion.lo minimi
ze.lo simplify.lo Grid_conversion.lo Grid_simplify.lo stdiobuf.lo c_streambuf.lo
globals.lo mp_std_bits.lo version.lo wrap.lo -lm -lgmpxx -lgmp
/bin/grep: /mingw/lib/gcc/mingw32/4.5.0/libstdc++.la: No such file or directory
/bin/sed: can't read /mingw/lib/gcc/mingw32/4.5.0/libstdc++.la: No such file or
directory
libtool: link: `/mingw/lib/gcc/mingw32/4.5.0/libstdc++.la' is not a valid libtoo
l archive
make[4]: *** [libppl.la] Error 1
make[4]: Leaving directory `/crossdev/build/ppl-tdm32/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/crossdev/build/ppl-tdm32/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/crossdev/build/ppl-tdm32'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/crossdev/build/ppl-tdm32'
make: *** [ppl] Error 2
--- End code ---
I see it can't find libstdc++.la but according to the building instructions (unless I didn't understand them correctly) provided in the TDM release, /mingw should be empty at this point. Then it's normal it can't find libstdc++.la in this path.
Any Idea?
Thanks
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version