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
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