"configure: error: Detected LibreSSL: This is NOT supported, and may break consensus compatibility!"
I don't actually have LibreSSL installed, but rather openSSL 1.1.0-g. I have read there was a bug in bitcoin wallet that caused it to not build against openssl >1.0, but it appears that has been fixed elsewhere. Any ideas how to best work around this issue? Downgrading openssl on my system will cause a number of dependency issues.
I posted in the slack channel as well, but so far no luck.
If you don't have LibreSSL installed, have you tried compiling --with-libressl? That should get it to use the openSSL that was incorrectly identified as libreSSL. At least that is what worked for me on a RasPi...
Adding the --with-libressl switch allows the configure script to complete but the build bombs out with a bunch of ssl related errors:
CXX libbitcoinconsensus_la-ecwrapper.lo
ecwrapper.cpp: In function ‘int {anonymous}::ECDSA_SIG_recover_key_GFp(EC_KEY*, ECDSA_SIG*, const unsigned char*, int, int, int)’:
ecwrapper.cpp:62:28: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_add(x, x, ecsig->r)) {
^~
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:62:30: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_add(x, x, ecsig->r)) {
^
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:118:34: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_mod_inverse(rr, ecsig->r, order, ctx)) {
^~
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:118:36: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_mod_inverse(rr, ecsig->r, order, ctx)) {
^
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:123:31: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_mod_mul(sor, ecsig->s, rr, order, ctx)) {
^~
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:123:33: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
if (!BN_mod_mul(sor, ecsig->s, rr, order, ctx)) {
^
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp: In member function ‘bool CECKey::Recover(const uint256&, const unsigned char*, int)’:
ecwrapper.cpp:221:31: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
BN_bin2bn(&p64[0], 32, sig->r);
^~
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:221:33: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
BN_bin2bn(&p64[0], 32, sig->r);
^
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:222:32: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
BN_bin2bn(&p64[32], 32, sig->s);
^~
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
ecwrapper.cpp:222:34: error: invalid use of incomplete type ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
BN_bin2bn(&p64[32], 32, sig->s);
^
In file included from ecwrapper.h:11:0,
from ecwrapper.cpp:5:
/usr/include/openssl/ec.h:1039:16: note: forward declaration of ‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
typedef struct ECDSA_SIG_st ECDSA_SIG;
^~~~~~~~~~~~
make[2]: *** [Makefile:6295: libbitcoinconsensus_la-ecwrapper.lo] Error 1
make[2]: Leaving directory '/home/david/Wallets/Diamond/src'
make[1]: *** [Makefile:7117: all-recursive] Error 1
make[1]: Leaving directory '/home/david/Wallets/Diamond/src'
make: *** [Makefile:594: all-recursive] Error 1
I'm pretty stumped on this one. I tried building an older version of openssl from source, but that has been a mess.