diff --git a/depends/hosts/mingw32.mk b/depends/hosts/mingw32.mk index dcab49baae..8f9b76eec9 100644 --- a/depends/hosts/mingw32.mk +++ b/depends/hosts/mingw32.mk @@ -1,3 +1,7 @@ +ifneq ($(shell which $(host)-g++-posix),) +mingw32_CXX := $(host)-g++-posix +endif + mingw32_CFLAGS=-pipe mingw32_CXXFLAGS=$(mingw32_CFLAGS) diff --git a/doc/build-windows.md b/doc/build-windows.md index 6d2901c424..02fa001ed3 100644 --- a/doc/build-windows.md +++ b/doc/build-windows.md @@ -39,27 +39,6 @@ The first step is to install the mingw-w64 cross-compilation tool chain: sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev -Next, set the default `mingw32 g++` compiler option to POSIX[1](#footnote1): - -``` -sudo update-alternatives --config x86_64-w64-mingw32-g++ -``` - -After running the above command, you should see output similar to that below. -Choose the option that ends with `posix`. - -``` -There are 2 choices for the alternative x86_64-w64-mingw32-g++ (providing /usr/bin/x86_64-w64-mingw32-g++). - - Selection Path Priority Status ------------------------------------------------------------- - 0 /usr/bin/x86_64-w64-mingw32-g++-win32 60 auto mode -* 1 /usr/bin/x86_64-w64-mingw32-g++-posix 30 manual mode - 2 /usr/bin/x86_64-w64-mingw32-g++-win32 60 manual mode - -Press to keep the current choice[*], or type selection number: -``` - Once the toolchain is installed the build steps are common: Note that for WSL the Dash Core source path MUST be somewhere in the default mount file system, for @@ -100,13 +79,3 @@ way. This will install to `c:\workspace\dash`, for example: You can also create an installer using: make deploy - -Footnotes ---------- - -1: Starting from Ubuntu Xenial 16.04, both the 32 and 64 bit Mingw-w64 packages install two different -compiler options to allow a choice between either posix or win32 threads. The default option is win32 threads which is the more -efficient since it will result in binary code that links directly with the Windows kernel32.lib. Unfortunately, the headers -required to support win32 threads conflict with some of the classes in the C++11 standard library, in particular std::mutex. -It's not possible to build the Dash Core code using the win32 version of the Mingw-w64 cross compilers (at least not without -modifying headers in the Dash Core source code).