Failing to build bitcoin-core v0.13.1 on debian stretch I have recently set up a new machine on debian stretch:

$ uname -a
Linux front 4.8.0-1-amd64 #1 SMP Debian 4.8.7-1 (2016-11-13) x86_64 GNU/Linux


I am now attempting to install bitcoind. I have already set up a directory db4 in my build directory for the Berkeley database version 4.8.30. I have installed all the dependencies as per doc/build-unix, including boost from the distribution:

$ sudo apt-get install libboost-all-dev
$ apt-cache show libboost-all-dev
Package: libboost-all-dev
Source: boost-defaults
Version: 1.62.0.1
...

$ ./autogen.sh
...

$ ./configure LDFLAGS="-L..bitcoin/db4/lib/" CPPFLAGS="-I..bitcoin/db4/include/"
...

$ make
...
CXX      wallet/test/test_test_bitcoin-wallet_tests.o
CXX      wallet/test/test_test_bitcoin-crypto_tests.o
wallet/test/crypto_tests.cpp: In function ‘bool wallet_crypto::OldEncrypt(
const CKeyingMaterial&amp;, std::vector&lt;unsigned char&gt;&amp;, const unsigned
char*, const unsigned char*)’:
wallet/test/crypto_tests.cpp:45:20: error: aggregate ‘EVP_CIPHER_CTX ctx’
has incomplete type and cannot be defined
EVP_CIPHER_CTX ctx;
                ^~~
wallet/test/crypto_tests.cpp: In function ‘bool wallet_crypto::OldDecrypt(
const std::vector&lt;unsigned char&gt;&amp;, CKeyingMaterial&amp;, const unsigned
char*, const unsigned char*)’:
wallet/test/crypto_tests.cpp:69:20: error: aggregate ‘EVP_CIPHER_CTX ctx’
has incomplete type and cannot be defined
EVP_CIPHER_CTX ctx;
                ^~~
Makefile:8232: recipe for target 'wallet/test/test_test_bitcoin 
crypto_tests.o' failed
make[2]: *** [wallet/test/test_test_bitcoin-crypto_tests.o] Error 1
make[2]: Leaving directory '/home/john/Libs/bitcoin/src'
Makefile:8370: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/john/Libs/bitcoin/src'
Makefile:680: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1


Any suggestion is gratefully appreciated.

EDIT: adding the option --disable-wallet to configure leads to a successful build.

EDIT2: however, even with the --disable-wallet , the command make check fails with:

make[4]: Entering directory '/home/john/Libs/bitcoin/src/secp256k1'
  CC       src/tests-tests.o
src/tests.c: In function ‘test_ecdsa_der_parse’:
src/tests.c:3561:52: error: dereferencing pointer to incomplete type
‘ECDSA_SIG {aka struct ECDSA_SIG_st}’
valid_openssl = !BN_is_negative(sig_openssl-&gt;r) &amp;&amp;
!BN_is_negative(sig_openssl-&gt;s) &amp;&amp; BN_num_bits(sig_openssl-&gt;r) &gt; 0 &amp;&amp;
BN_num_bits(sig_openssl-&gt;r) &lt;= 256 &amp;&amp; BN_num_bits(sig_openssl-&gt;s) &gt; 0 &amp;&amp;
BN_num_bits(sig_openssl-&gt;s) &lt;= 256;


This error relating to the C library secp256k1 on debian stretch has already been reported on this post and it seems to be related to some openssl API change (a work around put forward by Andrew Poelstra is to configure secp256k1 with the option --enable-openssl-tests=no. However, this is not an option available for bitcoind configuration)
This is due to some incompatibility between Bitcoin-Core 0.13 (and below) with openSSL 1.1. openSSL 1.1 has some significant API changes: https://wiki.openssl.org/index.php/1.1_API_Changes

The pull request (patch) #9326 should fix this problem (will very likely be in 0.14).
https://github.com/bitcoin/bitcoin/pull/9326

Until this has been resolved, you should use an openSSL version below 1.1.

EDIT: this has been fixed in the bitcoin-core's MASTER branch