Skip to content

Commit becbd71

Browse files
committed
Merge #11437: [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04
696ce46 [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake) 4f890ba Add new step to clean $PATH var by removing /mnt specific Window's %PATH% paths that cause issues with the make system (Donal OConnor) Pull request description: This updates the Windows build documentation with the workaround required to build using Ubuntu 17.04 on WSL, and makes it's explicit that building on Ubuntu 16.04 is broken, and not recommended. This includes a commit from @donaloconnor in #11244, and is mostly the investigative work of @laanwj throughout #8732, #8653 and quite a few other issues. I tested building on 14.04, 16.04.3 and 17.04 [here](bitcoin/bitcoin#11244 (comment)) and got the results we expect. --- Built master at bitcoin/bitcoin@c22a53c on a Windows 10 VM (Version 1607, OS Build 14393.1593) using WSL with Ubuntu 14.04. ![windows](https://user-images.githubusercontent.com/863730/30195033-867f1f24-9489-11e7-932c-e87b8764a627.png) Upgraded WSL to 16.04.3, and tried building bitcoin/bitcoin@c22a53c using these instructions. The result is as expected. ![ubuntu 16 04 3](https://user-images.githubusercontent.com/863730/30235670-b9bf36bc-953d-11e7-8c1d-4debf7113032.png) Upgraded WSL to 17.04 and tried building bitcoin/bitcoin@3255d63 using these instructions. ![ubuntu 17 04](https://user-images.githubusercontent.com/863730/30235669-b7473434-953d-11e7-8ea3-d05a319ae2d4.png) If someone else could also verify that builds are working on both 14.04 and 17.04 with these instructions, that would be great. Tree-SHA512: 866f1003eb45d208d8ae849504f54fc2f27c32240129d2124ce5a2ee7167bcbf062d29f23b1745123f532ffd0253a8611e719b2a316d1331d3c3924f91e7775d
2 parents e93fff1 + 696ce46 commit becbd71

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

doc/build-windows.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ WINDOWS BUILD NOTES
44
Below are some notes on how to build Bitcoin Core for Windows.
55

66
Most developers use cross-compilation from Ubuntu to build executables for
7-
Windows. This is also used to build the release binaries.
7+
Windows. Cross-compilation is also used to build the release binaries.
88

9-
Currently only building on Ubuntu Trusty 14.04 is supported.
10-
Other versions are unsupported or known to be broken (e.g. Ubuntu Xenial 16.04).
9+
Currently only building on Ubuntu Trusty 14.04 or Ubuntu Zesty 17.04 or later is supported.
10+
Building on Ubuntu Xenial 16.04 is known to be broken, see extensive discussion in issue [8732](https://github.com/bitcoin/bitcoin/issues/8732).
11+
While it may be possible to do so with work arounds, it's potentially dangerous and not recommended.
1112

1213
While there are potentially a number of ways to build on Windows (for example using msys / mingw-w64),
1314
using the Windows Subsystem For Linux is the most straightforward. If you are building with
@@ -64,6 +65,13 @@ build process.
6465

6566
See also: [dependencies.md](dependencies.md).
6667

68+
If you're building on Ubuntu 17.04 or later, run these two commands, selecting the 'posix' variant for both,
69+
to work around issues with mingw-w64. See issue [8732](https://github.com/bitcoin/bitcoin/issues/8732) for more information.
70+
```
71+
sudo update-alternatives --config x86_64-w64-mingw32-g++
72+
sudo update-alternatives --config x86_64-w64-mingw32-gcc
73+
```
74+
6775
## Building for 64-bit Windows
6876

6977
To build executables for Windows 64-bit, install the following dependencies:
@@ -72,6 +80,7 @@ To build executables for Windows 64-bit, install the following dependencies:
7280

7381
Then build using:
7482

83+
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
7584
cd depends
7685
make HOST=x86_64-w64-mingw32
7786
cd ..
@@ -83,10 +92,11 @@ Then build using:
8392

8493
To build executables for Windows 32-bit, install the following dependencies:
8594

86-
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev
95+
sudo apt-get install g++-mingw-w64-i686 mingw-w64-i686-dev
8796

8897
Then build using:
8998

99+
PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') # strip out problematic Windows %PATH% imported var
90100
cd depends
91101
make HOST=i686-w64-mingw32
92102
cd ..

0 commit comments

Comments
 (0)