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