Boost logo

Boost :

Subject: [boost] [stacktrace] 1.65.0 RC1 fails to build for MSYS2/mingw-w64
From: Stephan Lavavej (stl_at_[hidden])
Date: 2017-08-06 23:30:41


Hi,

I just attempted to build Boost 1.65.0 RC1 with MSYS2/mingw-w64. (My build
script for 1.64.0 is available at
https://github.com/StephanTLavavej/mingw-distro/blob/6e5976af8c63de93bec761261e4ddcbed17b1649/boost.sh
; I just had to change the filenames for 1.65.0 RC1.)

The stacktrace build failed with:

gcc.compile.c++
bin.v2\libs\stacktrace\build\gcc-mingw-7.1.0\release\link-static\runtime-link-static\threading-multi\windbg_cached.o
In file included from libs\stacktrace\build\..\src\windbg_cached.cpp:10:0:
./boost/stacktrace/detail/frame_msvc.ipp:167:72: warning: missing
terminating ' character
 # error Your compiler does not support C++11 thread_local storage. It's
impossible to build with BOOST_STACKTRACE_USE_WINDBG_CACHED.
                                                                        ^
./boost/stacktrace/detail/frame_msvc.ipp:167:5: error: #error Your compiler
does not support C++11 thread_local storage. It's impossible to build with
BOOST_STACKTRACE_USE_WINDBG_CACHED.
 # error Your compiler does not support C++11 thread_local storage. It's
impossible to build with BOOST_STACKTRACE_USE_WINDBG_CACHED.
     ^~~~~
In file included from ./boost/detail/winapi/file_management.hpp:17:0,
                 from ./boost/stacktrace/detail/safe_dump_win.ipp:20,
                 from ./boost/stacktrace/safe_dump_to.hpp:206,
                 from ./boost/stacktrace/frame.hpp:20,
                 from ./boost/stacktrace/detail/frame_msvc.ipp:15,
                 from libs\stacktrace\build\..\src\windbg_cached.cpp:10:
./boost/detail/winapi/overlapped.hpp:39:9: warning: ISO C++ prohibits
anonymous structs [-Wpedantic]
         };
         ^

    "g++" -O3 -finline-functions -Wno-inline -Wall -pedantic -mthreads
-m64 -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I"." -c -o
"bin.v2\libs\stacktrace\build\gcc-mingw-7.1.0\release\link-static\runtime-link-static\threading-multi\windbg_cached.o"
"libs\stacktrace\build\..\src\windbg_cached.cpp"

...failed gcc.compile.c++
bin.v2\libs\stacktrace\build\gcc-mingw-7.1.0\release\link-static\runtime-link-static\threading-multi\windbg_cached.o...

It appears that frame_msvc.ipp is intended to work with both MSVC and
MinGW, but it's not correctly recognizing mingw-w64 GCC 7.1.0's behavior.
This compiler supports thread_local, although it doesn't support C++11's
multithreading headers (without the pthreads wrapper, which I don't build).

Either this library should correctly detect mingw-w64, or it should be
disabled for mingw-w64.

Thanks,
STL


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk