gmake fails to compile bitcoin from source for commits 8470e6472 or newer on OpenBSD 6.2.
Expected successful gmake exit.
gmake exits with 3 errors:
03 errors generated.
1gmake[2]: *** [Makefile:6149: libbitcoin_util_a-util.o] Error 1
2gmake[2]: Leaving directory '/home/bitcoin/bitcoin/src'
3gmake[1]: *** [Makefile:9417: all-recursive] Error 1
4gmake[1]: Leaving directory '/home/bitcoin/bitcoin/src'
5gmake: *** [Makefile:745: all-recursive] Error 1
Full output is given below.
This error always occurs when following the instructions in /doc/build-openbsd.md using bitcoin sources from commits 8470e6472 and newer.
However, when compiling bitcoin source using commit 7f81250 on the same system, gmake successfully completes.
This error occurs using bitcoin sources from commits 8470e6472 and newer.
OpenBSD 6.2 amd64
gmake-4.2.1 autoconf-2.69.p2 automake-1.15.1 boost-1.58.0p8
Bitcoin source information for the attached output:
0commit fe53d5f3636aed064823bc220d828c7ff08d1d52 (HEAD -> master, origin/master, origin/HEAD)
1Merge: 948c29cc0 464015f6f
2Author: MarcoFalke <falke.marco@gmail.com>
3Date: Sat Feb 10 09:47:21 2018 -0500
Configured using:
0./configure --with-gui=no CC=cc CXX=c++ \
1 BDB_LIBS="-L${BDB_PREFIX}/lib -ldb_cxx-4.8" \
2 BDB_CFLAGS="-I${BDB_PREFIX}/include"
0Options used to compile and link:
1 with wallet = yes
2 with gui / qt = no
3 with zmq = no
4 with test = yes
5 with bench = yes
6 with upnp = auto
7 use asm = yes
8 debug enabled = no
9 werror = no
10
11 target os =
12 build os =
13
14 CC = cc
15 CFLAGS = -g -O2
16 CPPFLAGS = -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS
17 CXX = c++ -std=c++11
18 CXXFLAGS = -g -O2 -Wall -Wextra -Wformat -Wvla -Wformat-security -Wthread-safety-analysis -Wno-unused-parameter -Wno-self-assign -Wno-unused-local-typedef -Wno-deprecated-register -Wno-implicit-fallthrough
19 LDFLAGS =
20 ARFLAGS = cr
gmake output:
0$ Making all in src
1gmake[1]: Entering directory '/home/bitcoin/bitcoin/src'
2gmake[2]: Entering directory '/home/bitcoin/bitcoin/src'
3 CXX crypto/libbitcoinconsensus_la-aes.lo
4 CXX crypto/libbitcoinconsensus_la-chacha20.lo
5 CXX crypto/libbitcoinconsensus_la-hmac_sha256.lo
6 CXX crypto/libbitcoinconsensus_la-hmac_sha512.lo
7 CXX crypto/libbitcoinconsensus_la-ripemd160.lo
8 CXX crypto/libbitcoinconsensus_la-sha1.lo
9 CXX crypto/libbitcoinconsensus_la-sha256.lo
10 CXX crypto/libbitcoinconsensus_la-sha512.lo
11 CXX crypto/libbitcoinconsensus_la-sha256_sse4.lo
12 CXX libbitcoinconsensus_la-arith_uint256.lo
13 CXX consensus/libbitcoinconsensus_la-merkle.lo
14 CXX libbitcoinconsensus_la-hash.lo
15 CXX primitives/libbitcoinconsensus_la-block.lo
16 CXX primitives/libbitcoinconsensus_la-transaction.lo
17 CXX libbitcoinconsensus_la-pubkey.lo
18 CXX script/libbitcoinconsensus_la-bitcoinconsensus.lo
19 CXX script/libbitcoinconsensus_la-interpreter.lo
20 CXX script/libbitcoinconsensus_la-script.lo
21 CXX script/libbitcoinconsensus_la-script_error.lo
22 CXX libbitcoinconsensus_la-uint256.lo
23 CXX libbitcoinconsensus_la-utilstrencodings.lo
24gmake[3]: Entering directory '/home/bitcoin/bitcoin/src/secp256k1'
25gcc -I. -g -O2 -Wall -Wextra -Wno-unused-function -c src/gen_context.c -o gen_context.o
26gcc gen_context.o -o gen_context
27./gen_context
28 CC src/libsecp256k1_la-secp256k1.lo
29 CCLD libsecp256k1.la
30gmake[3]: Leaving directory '/home/bitcoin/bitcoin/src/secp256k1'
31 CXXLD libbitcoinconsensus.la
32
33*** Warning: This system can not link to static lib archive secp256k1/libsecp256k1.la.
34*** I have the capability to make that library automatically link in when
35*** you link to this library. But I can only do this if you have a
36*** shared version of the library, which you do not appear to have.
37 CXX bitcoind-bitcoind.o
38 CXX libbitcoin_server_a-addrdb.o
39 CXX libbitcoin_server_a-addrman.o
40 CXX libbitcoin_server_a-bloom.o
41 CXX libbitcoin_server_a-blockencodings.o
42 CXX libbitcoin_server_a-chain.o
43 CXX libbitcoin_server_a-checkpoints.o
44 CXX consensus/libbitcoin_server_a-tx_verify.o
45 CXX libbitcoin_server_a-httprpc.o
46 CXX libbitcoin_server_a-httpserver.o
47 CXX libbitcoin_server_a-init.o
48 CXX libbitcoin_server_a-dbwrapper.o
49 CXX libbitcoin_server_a-merkleblock.o
50 CXX libbitcoin_server_a-miner.o
51 CXX libbitcoin_server_a-net.o
52 CXX libbitcoin_server_a-net_processing.o
53 CXX libbitcoin_server_a-noui.o
54 CXX policy/libbitcoin_server_a-fees.o
55 CXX policy/libbitcoin_server_a-policy.o
56 CXX policy/libbitcoin_server_a-rbf.o
57 CXX libbitcoin_server_a-pow.o
58 CXX libbitcoin_server_a-rest.o
59 CXX rpc/libbitcoin_server_a-blockchain.o
60 CXX rpc/libbitcoin_server_a-mining.o
61 CXX rpc/libbitcoin_server_a-misc.o
62 CXX rpc/libbitcoin_server_a-net.o
63 CXX rpc/libbitcoin_server_a-rawtransaction.o
64 CXX rpc/libbitcoin_server_a-safemode.o
65 CXX rpc/libbitcoin_server_a-server.o
66 CXX script/libbitcoin_server_a-sigcache.o
67 CXX script/libbitcoin_server_a-ismine.o
68 CXX libbitcoin_server_a-timedata.o
69 CXX libbitcoin_server_a-torcontrol.o
70 CXX libbitcoin_server_a-txdb.o
71 CXX libbitcoin_server_a-txmempool.o
72 CXX libbitcoin_server_a-ui_interface.o
73 CXX libbitcoin_server_a-validation.o
74 CXX libbitcoin_server_a-validationinterface.o
75 CXX libbitcoin_server_a-versionbits.o
76 AR libbitcoin_server.a
77 CXX libbitcoin_common_a-base58.o
78 CXX libbitcoin_common_a-bech32.o
79 CXX libbitcoin_common_a-chainparams.o
80 CXX libbitcoin_common_a-coins.o
81 CXX libbitcoin_common_a-compressor.o
82 CXX libbitcoin_common_a-core_read.o
83 CXX libbitcoin_common_a-core_write.o
84 CXX libbitcoin_common_a-key.o
85key.cpp:51:23: warning: comparison of integers of different signs: 'long' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
86 if (end - privkey < lenb) {
87 ~~~~~~~~~~~~~ ^ ~~~~
88key.cpp:57:23: warning: comparison of integers of different signs: 'long' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
89 if (end - privkey < len) {
90 ~~~~~~~~~~~~~ ^ ~~~
91key.cpp:71:37: warning: comparison of integers of different signs: 'long' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
92 if (oslen > 32 || end - privkey < oslen) {
93 ~~~~~~~~~~~~~ ^ ~~~~~
943 warnings generated.
95 CXX libbitcoin_common_a-keystore.o
96 CXX libbitcoin_common_a-netaddress.o
97 CXX libbitcoin_common_a-netbase.o
98 CXX policy/libbitcoin_common_a-feerate.o
99 CXX libbitcoin_common_a-protocol.o
100 CXX libbitcoin_common_a-scheduler.o
101 CXX script/libbitcoin_common_a-sign.o
102 CXX script/libbitcoin_common_a-standard.o
103 CXX libbitcoin_common_a-warnings.o
104 AR libbitcoin_common.a
105gmake[3]: Entering directory '/home/bitcoin/bitcoin/src/univalue'
106 CXX lib/libunivalue_la-univalue.lo
107 CXX lib/libunivalue_la-univalue_get.lo
108 CXX lib/libunivalue_la-univalue_read.lo
109 CXX lib/libunivalue_la-univalue_write.lo
110 CXXLD libunivalue.la
111gmake[3]: Leaving directory '/home/bitcoin/bitcoin/src/univalue'
112 CXX support/libbitcoin_util_a-lockedpool.o
113 CXX libbitcoin_util_a-chainparamsbase.o
114 CXX libbitcoin_util_a-clientversion.o
115 CXX compat/libbitcoin_util_a-glibc_sanity.o
116 CXX compat/libbitcoin_util_a-glibcxx_sanity.o
117 CXX compat/libbitcoin_util_a-strnlen.o
118 CXX libbitcoin_util_a-fs.o
119 CXX libbitcoin_util_a-random.o
120 CXX rpc/libbitcoin_util_a-protocol.o
121 CXX rpc/libbitcoin_util_a-util.o
122 CXX support/libbitcoin_util_a-cleanse.o
123 CXX libbitcoin_util_a-sync.o
124 CXX libbitcoin_util_a-threadinterrupt.o
125 CXX libbitcoin_util_a-util.o
126In file included from util.cpp:6:
127In file included from ./util.h:18:
128In file included from ./fs.h:9:
129In file included from /usr/include/c++/v1/string:442:
130In file included from /usr/include/c++/v1/algorithm:633:
131/usr/include/c++/v1/utility:330:5: error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const
132 pair(pair const&) = default;
133 ^
134util.cpp:384:121: note: in instantiation of template class 'std::__1::pair<const std::__1::basic_string<char>, boost::interprocess::file_lock>' requested here
135 boost::interprocess::file_lock& lock = locks.emplace(pathLockFile.string(), pathLockFile.string().c_str()).first->second;
136 ^
137In file included from util.cpp:6:
138In file included from ./util.h:18:
139In file included from ./fs.h:9:
140In file included from /usr/include/c++/v1/string:442:
141In file included from /usr/include/c++/v1/algorithm:633:
142/usr/include/c++/v1/utility:330:5: error: the parameter for this explicitly-defaulted copy constructor is const, but a member or base requires it to be non-const
143 pair(pair const&) = default;
144 ^
145/usr/include/c++/v1/map:627:21: note: in instantiation of template class 'std::__1::pair<std::__1::basic_string<char>, boost::interprocess::file_lock>' requested here
146 __nc_value_type __nc;
147 ^
148/usr/include/c++/v1/__tree:754:23: note: in instantiation of template class 'std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>' requested here
149 __node_value_type __value_;
150 ^
151/usr/include/c++/v1/__tree:1789:49: note: in instantiation of template class 'std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, void *>' requested here
152 destroy(static_cast<__node_pointer>(__nd->__left_));
153 ^
154/usr/include/c++/v1/__tree:1780:5: note: in instantiation of member function 'std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>,
155 std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, std::__1::less<std::__1::basic_string<char> >, true>,
156 std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock> > >::destroy' requested here
157 destroy(__root());
158 ^
159/usr/include/c++/v1/map:738:78: note: in instantiation of member function 'std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>,
160 std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, std::__1::less<std::__1::basic_string<char> >, true>,
161 std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock> > >::~__tree' requested here
162 template <class, class, class, class> friend class _LIBCPP_TYPE_VIS_ONLY map;
163 ^
164In file included from util.cpp:6:
165In file included from ./util.h:18:
166In file included from ./fs.h:9:
167In file included from /usr/include/c++/v1/string:442:
168In file included from /usr/include/c++/v1/algorithm:633:
169/usr/include/c++/v1/utility:298:23: error: no matching constructor for initialization of 'boost::interprocess::file_lock'
170 : first(__x), second(__y) {}
171 ^ ~~~
172/usr/include/c++/v1/memory:1747:31: note: in instantiation of member function 'std::__1::pair<const std::__1::basic_string<char>, boost::interprocess::file_lock>::pair' requested here
173 ::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
174 ^
175/usr/include/c++/v1/memory:1658:18: note: in instantiation of function template specialization 'std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char>,
176 boost::interprocess::file_lock>, void *> >::construct<std::__1::pair<const std::__1::basic_string<char>, boost::interprocess::file_lock>, const std::__1::basic_string<char> &, const char *>' requested here
177 {__a.construct(__p, _VSTD::forward<_Args>(__args)...);}
178 ^
179/usr/include/c++/v1/memory:1504:14: note: in instantiation of function template specialization
180 'std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, void *> > >::__construct<std::__1::pair<const
181 std::__1::basic_string<char>, boost::interprocess::file_lock>, const std::__1::basic_string<char> &, const char *>' requested here
182 {__construct(__has_construct<allocator_type, _Tp*, _Args...>(),
183 ^
184/usr/include/c++/v1/__tree:2149:20: note: in instantiation of function template specialization
185 'std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, void *> > >::construct<std::__1::pair<const
186 std::__1::basic_string<char>, boost::interprocess::file_lock>, const std::__1::basic_string<char> &, const char *>' requested here
187 __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), _VSTD::forward<_Args>(__args)...);
188 ^
189/usr/include/c++/v1/__tree:2094:29: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>,
190 std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, std::__1::less<std::__1::basic_string<char> >, true>,
191 std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock> > >::__construct_node<const std::__1::basic_string<char> &, const char *>' requested here
192 __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);
193 ^
194/usr/include/c++/v1/__tree:1156:16: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>,
195 std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, std::__1::less<std::__1::basic_string<char> >, true>,
196 std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock> > >::__emplace_unique_key_args<std::__1::basic_string<char>, const std::__1::basic_string<char> &,
197 const char *>' requested here
198 return __emplace_unique_key_args(__f, _VSTD::forward<_First>(__f),
199 ^
200/usr/include/c++/v1/map:1047:24: note: in instantiation of function template specialization 'std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>,
201 std::__1::__map_value_compare<std::__1::basic_string<char>, std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock>, std::__1::less<std::__1::basic_string<char> >, true>,
202 std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char>, boost::interprocess::file_lock> > >::__emplace_unique<const std::__1::basic_string<char> &, const char *>' requested here
203 return __tree_.__emplace_unique(_VSTD::forward<_Args>(__args)...);
204 ^
205util.cpp:384:54: note: in instantiation of function template specialization 'std::__1::map<std::__1::basic_string<char>, boost::interprocess::file_lock, std::__1::less<std::__1::basic_string<char> >,
206 std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, boost::interprocess::file_lock> > >::emplace<const std::__1::basic_string<char> &, const char *>' requested here
207 boost::interprocess::file_lock& lock = locks.emplace(pathLockFile.string(), pathLockFile.string().c_str()).first->second;
208 ^
209/usr/local/include/boost/interprocess/sync/file_lock.hpp:48:35: note: candidate constructor not viable: 1st argument ('const boost::interprocess::file_lock') would lose const qualifier
210 BOOST_MOVABLE_BUT_NOT_COPYABLE(file_lock)
211 ^
212/usr/local/include/boost/move/core.hpp:216:46: note: expanded from macro 'BOOST_MOVABLE_BUT_NOT_COPYABLE'
213 BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE)\
214 ^
215/usr/local/include/boost/move/core.hpp:35:7: note: expanded from macro 'BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN'
216 TYPE(TYPE &);\
217 ^
218/usr/local/include/boost/interprocess/sync/file_lock.hpp:65:4: note: candidate constructor not viable: no known conversion from 'const boost::interprocess::file_lock' to '::boost::rv<file_lock> &' for 1st
219 argument
220 file_lock(BOOST_RV_REF(file_lock) moved)
221 ^
222/usr/local/include/boost/interprocess/sync/file_lock.hpp:153:19: note: candidate constructor not viable: no known conversion from 'const boost::interprocess::file_lock' to 'const char *' for 1st argument
223inline file_lock::file_lock(const char *name)
224 ^
225/usr/local/include/boost/interprocess/sync/file_lock.hpp:54:4: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
226 file_lock()
227 ^
2283 errors generated.
229gmake[2]: *** [Makefile:6149: libbitcoin_util_a-util.o] Error 1
230gmake[2]: Leaving directory '/home/bitcoin/bitcoin/src'
231gmake[1]: *** [Makefile:9417: all-recursive] Error 1
232gmake[1]: Leaving directory '/home/bitcoin/bitcoin/src'
233gmake: *** [Makefile:745: all-recursive] Error 1