__MINGW32_MAJOR_VERSION confusing, and causing problems with boost thread
Hi, __MINGW32_MAJOR_VERSION is confusing me at the moment. Where is it coming from? What does it stand for? Even though my compiler at the moment informs me of PS C:\Sys\boost\boost_1_50_0> g++ --version g++.exe (GCC) 4.6.3 20111208 (prerelease) is is defined as 3 when boost compiles. __MINGW32_MINOR_VERSION is defined as 11. I had to hard check that, no idea where those numbers are coming from. This leads to this statement from boost_1_50_0\libs\thread\src\win32\tss_pe.cpp #if defined(__MINGW64__) || (__MINGW32_MAJOR_VERSION >3) || \ ((__MINGW32_MAJOR_VERSION==3) && (__MINGW32_MINOR_VERSION>=18)) evaluating to false and this extern "C" const IMAGE_TLS_DIRECTORY32 _tls_used __attribute__ ((section(".rdata$T"))) = to compile in, which in turn produces c:/mingw-4.6.1/bin/../lib/gcc/mingw32/4.6.1/../../../libmingw32.a(tlssup.o):tlssup.c:(.tls+0x0): multiple definition of `_tls_used' /Sys/boost/MinGW32/boost_1_50_0/lib/libboost_thread-mgw46-mt-d-1_50.a(tss_pe.o):tss_pe.cpp:(.rdata$T+0x0): first defined here when trying to link to the static library. I fixed that by hacking the 18 in the source down to a 11 and recompiling boost with PS C:\Sys\boost\boost_1_50_0> .\b2.exe --prefix=c:\Sys\boost\MinGW32\boost_1_50_0 toolset=gcc address-model=32 link=static -s BZIP2_SOURCE=C:\Sys\bzip2-1.0.6 -s ZLIB_SOURCE=C:\Sys\zlib-1.2.7 install That seems to have solved my issue for now, but I don't know if my major or minor versions are set incorrectly or whether this might a bug in the code base? Thoughts? Florian
#if defined(__MINGW64__) || (__MINGW32_MAJOR_VERSION >3) || \ ((__MINGW32_MAJOR_VERSION==3) && (__MINGW32_MINOR_VERSION>=18))
evaluating to false and this
You are using mingw based on very old CRT. -- Regards, niXman ___________________________________________________ Dual-target(32 & 64-bit) MinGW compilers for 32 and 64-bit Windows: http://sourceforge.net/projects/mingwbuilds/
Maybe I should have mentioned this. I only installed it a couple of days
ago - it is what is included in the newest version of the Rtools (
http://cran.r-project.org/bin/windows/Rtools/
). And according to the instructions at
http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset:
If you want to build R or add-on packages from source in Windows, you will
need to collect, install and test an extensive set of tools. See
http://CRAN.R-project.org/bin/windows/Rtools/http://cran.r-project.org/bin/windows/Rtools/
for the current locations and other updates to these instructions. (Most
Windows users will not need to build add-on packages from source; see Add-on
packageshttp://cran.r-project.org/doc/manuals/R-admin.html#Add_002don-packages
for details.)
We have found that the build process for R is quite sensitive to the choice
of tools: please follow our instructions *exactly*, even to the choice of
particular versions of the
tools.44http://cran.r-project.org/doc/manuals/R-admin.html#fn-44
The build process for add-on packages is somewhat more forgiving, but we
recommend using the exact toolset at first, and only substituting other
tools once you are familiar with the process.
*This appendix contains a lot of prescriptive comments. They are here as a
result of bitter experience. Please do not report problems to the R mailing
lists unless you have followed all the prescriptions.*
We have collected most of the necessary tools (unfortunately not all, due
to license or size limitations) into an executable installer
named45http://cran.r-project.org/doc/manuals/R-admin.html#fn-45
Rtools215.exe, available from
http://CRAN.R-project.org/bin/windows/Rtools/http://cran.r-project.org/bin/windows/Rtools/
. You should download and run it, choosing the default “Package authoring
installation” to build add-on packages, or the “full installation” if you
intend to build R.
Which is why I am on this version. I guess I could ignore it and upgrade,
but ...
On Thu, Nov 1, 2012 at 2:09 PM, niXman
#if defined(__MINGW64__) || (__MINGW32_MAJOR_VERSION >3) || \ ((__MINGW32_MAJOR_VERSION==3) && (__MINGW32_MINOR_VERSION>=18))
evaluating to false and this
You are using mingw based on very old CRT.
-- Regards, niXman ___________________________________________________ Dual-target(32 & 64-bit) MinGW compilers for 32 and 64-bit Windows: http://sourceforge.net/projects/mingwbuilds/ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Florian Burkart florian.burkart@gmail.com +44-75-31049134 Managing Director Flam Research Limited Company Number 7618723 Registered in England and Wales Correspondence address: Unit 7218, PO Box 6945, London, W1A 6US Trading address: The Barn, Lambourne Road, Chigwell, IG7 6JB Registered address: Office 8, 10 Buckhurst Road, Bexhill-On-Sea, East Sussex, TN40 1QF
participants (2)
-
Florian Burkart
-
niXman