Boost logo

Boost Users :

Subject: Re: [Boost-users] EXTERNAL: Re: 1.49 header order conflicts on Windows
From: Davidson, Josh (josh.davidson_at_[hidden])
Date: 2012-06-13 18:32:09


> I haven't a windows machine at hand. Please could you get the result of the preprocessor and see what is happening with the detail/interlocked.hpp file where boost::detail::InterlockedExchange should be defined?
The preprocessor output is over 4MB, but here is the snippet for interlocked.hpp:

# 1 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/config/abi_suffix.hpp" 1 3
# 181 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/exceptions.hpp" 2 3
# 17 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/thread_primitives.hpp" 2 3
# 1 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/detail/interlocked.hpp" 1 3
# 120 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/detail/interlocked.hpp" 3
namespace boost
{

namespace detail
{

extern "C" long InterlockedIncrement( long volatile * );
extern "C" long InterlockedDecrement( long volatile * );
extern "C" long InterlockedCompareExchange( long volatile *, long, long );
extern "C" long InterlockedExchange( long volatile *, long );
extern "C" long InterlockedExchangeAdd( long volatile *, long );

extern "C" void* InterlockedCompareExchangePointer( void* volatile *, void*, void* );
extern "C" void* InterlockedExchangePointer( void* volatile *, void* );

}

}
# 18 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/thread_primitives.hpp" 2 3
# 91 "c:/mingw/lib/gcc/../../x86_64-w64-mingw32/include/boost/thread/win32/thread_primitives.hpp" 3

>Which mingw is this exactly?
>There's a lot of them out there; original mingw, mingw-w64 personals/automatic, DGN, TDM, etc.

Mingw-w64 (non-personal):

c:\TEMP>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/x86_64-w64-mingw32/4.5.3/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../build/gcc/src/configure --target=x86_64-w64-mingw32 --prefix=/c/buildbot/mingw-w64/mingw32/mingw-x86-x86_64/build/build/root --with-sysroot=/c/buildbot/mingw-w64/mingw32/mingw-x86-x86_64/build/build/root --enable-languages=all,obj-c++ --enable-fully-dynamic-string --disable-multilib
Thread model: win32
gcc version 4.5.3 20110207 (prerelease) (GCC)

Behavior is the same for other mingw-w64 releases I've tried:

c:\TEMP>c:\MinGW.47\bin\g++ -v
Using built-in specs.
COLLECT_GCC=c:\MinGW.47\bin\g++
COLLECT_LTO_WRAPPER=c:/mingw.47/bin/../libexec/gcc/x86_64-w64-mingw32/4.7.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../build/gcc/src/configure --target=x86_64-w64-mingw32 --prefix=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/build/root --with-sysroot=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/build/root --enable-languages=all,obj-c++ --enable-fully-dynamic-string --disable-multilib
Thread model: win32
gcc version 4.7.0 20111220 (experimental) (GCC)

c:\TEMP>"c:\MinGW.dragon\bin\g++.exe" -v
Using built-in specs.
COLLECT_GCC=c:\MinGW.dragon\bin\g++.exe
COLLECT_LTO_WRAPPER=c:/mingw.dragon/bin/../libexec/gcc/x86_64-w64-mingw32/4.6.3/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: /home/drangon/work/mingw-w64-dgn/source/gcc/configure --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --disable-nls --enable-languages=c,c++,objc,obj-c++ --with-gmp=/home/drangon/work/mingw-w64-dgn/build/for_target --enable-twoprocess --disable-libstdcxx-pch --disable-win32-registry --prefix=/home/drangon/work/mingw-w64-dgn/target --with-sysroot=/home/drangon/work/mingw-w64-dgn/target
Thread model: win32
gcc version 4.6.3 20120127 (prerelease) (GCC)


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net