You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge #11442: [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2
9d30f54 [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake)
Pull request description:
This updates the OpenBSD build docs to reflect building [master](8ddf60d) on a OpenBSD 6.2 VM (using VirtualBox 5.1.28 r117968 on macOS 10.12.6).
Versions of installed packages were:
```
gmake 4.2.1
g++ 4.9.4
git 2.12.2
libevent 2.0.22
libtool 2.4.2
autoconf 2.69p2
automake 1.15p0
python 3.6.0
boost 1.58.0p3
llvm 4.0.0p2
```
The boost package installed via pkg_add now seems to work correctly. So we shouldn't require manual building + patching.
I also wasn't required to make adjustments to any resource limits.
Building with g++ and Clang was successful, using:
```
./configure --disable-wallet --with-gui=no CC=egcc CXX=eg++ CPP=ecpp
```
and
```
./configure --disable-wallet --with-gui=no CC=clang CXX=clang++
```
Running ``` make check ``` worked for ```test/test_bitcoin``` but ```test/util/bitcoin-util-test.py``` failed with:
```
Running test/util/bitcoin-util-test.py...
../test/util/bitcoin-util-test.py
env: python3: No such file or directory
```
So that seems like a configuration issue, Python 3.6 is installed.
Still todo:
- [ ] Check if a manual installation of Berkeley DB is required
- [x] Fix running ```test/util/bitcoin-util-test.py```
- [x] Have someone else verify building
cc @laanwj
Tree-SHA512: 34b176de4865b36dab9d66e74a15c37152e4b6c9784152c30dabbb515d6d9ae9cdbdc7a7b4d777876f91269a6a78cc277ec87775fc6c17dd509f7cf46e89a2b3
This guide describes how to build bitcoind and command-line utilities on OpenBSD.
6
6
7
-
As OpenBSD is most common as a server OS, we will not bother with the GUI.
7
+
OpenBSD is most commonly used as a server OS, so this guide does not contain instructions for building the GUI.
8
8
9
9
Preparation
10
10
-------------
11
11
12
12
Run the following as root to install the base dependencies for building:
13
13
14
14
```bash
15
-
pkg_add gmake libtool libevent
15
+
pkg_add git gmake libevent libtool
16
16
pkg_add autoconf # (select highest version, e.g. 2.69)
17
17
pkg_add automake # (select highest version, e.g. 1.15)
18
-
pkg_add python # (select highest version, e.g. 3.5)
18
+
pkg_add python # (select highest version, e.g. 3.6)
19
+
pkg_add boost
20
+
21
+
git clone https://github.com/bitcoin/bitcoin.git
19
22
```
20
23
21
24
See [dependencies.md](dependencies.md) for a complete overview.
22
25
23
26
GCC
24
27
-------
25
28
26
-
The default C++ compiler that comes with OpenBSD 5.9 is g++ 4.2. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core, primarily as it has no C++11 support, but even before there were issues. So here we will be installing a newer compiler:
29
+
The default C++ compiler that comes with OpenBSD 6.2 is g++ 4.2.1. This version is old (from 2007), and is not able to compile the current version of Bitcoin Core because it has no C++11 support. We'll install a newer version of GCC:
27
30
28
31
```bash
29
-
pkg_add g++ # (select newest 4.x version, e.g. 4.9.3)
30
-
```
31
-
32
-
This compiler will not overwrite the system compiler, it will be installed as `egcc` and `eg++` in `/usr/local/bin`.
33
-
34
-
### Building boost
35
-
36
-
Do not use `pkg_add boost`! The boost version installed thus is compiled using the `g++` compiler not `eg++`, which will result in a conflict between `/usr/local/lib/libestdc++.so.XX.0` and `/usr/lib/libstdc++.so.XX.0`, resulting in a test crash:
37
-
38
-
test_bitcoin:/usr/lib/libstdc++.so.57.0: /usr/local/lib/libestdc++.so.17.0 : WARNING: symbol(_ZN11__gnu_debug17_S_debug_me ssagesE) size mismatch, relink your program
39
-
...
40
-
Segmentation fault (core dumped)
32
+
pkg_add g++
33
+
```
41
34
42
-
This makes it necessary to build boost, or at least the parts used by Bitcoin Core, manually:
43
-
44
-
```
45
-
# Pick some path to install boost to, here we create a directory within the bitcoin directory
46
-
BITCOIN_ROOT=$(pwd)
47
-
BOOST_PREFIX="${BITCOIN_ROOT}/boost"
48
-
mkdir -p $BOOST_PREFIX
49
-
50
-
# Fetch the source and verify that it is not tampered with
# Also here: https://gist.githubusercontent.com/laanwj/bf359281dc319b8ff2e1/raw/92250de8404b97bb99d72ab898f4a8cb35ae1ea3/patch-boost_test_impl_execution_monitor_ipp.patch
However, this does not appear to work. Compilation succeeds, but link fails
164
-
with many 'local symbol discarded' errors:
165
-
166
-
local symbol 150: discarded in section `.text._ZN10tinyformat6detail14FormatIterator6finishEv' from libbitcoin_util.a(libbitcoin_util_a-random.o)
167
-
local symbol 151: discarded in section `.text._ZN10tinyformat6detail14FormatIterator21streamStateFromFormatERSoRjPKcii' from libbitcoin_util.a(libbitcoin_util_a-random.o)
168
-
local symbol 152: discarded in section `.text._ZN10tinyformat6detail12convertToIntIA13_cLb0EE6invokeERA13_Kc' from libbitcoin_util.a(libbitcoin_util_a-random.o)
169
-
170
-
According to similar reported errors this is a binutils (ld) issue in 2.15, the
0 commit comments