Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not compile on Arch Linux #3

Open
aprokofj opened this issue Jan 4, 2018 · 6 comments
Open

Does not compile on Arch Linux #3

aprokofj opened this issue Jan 4, 2018 · 6 comments

Comments

@aprokofj
Copy link

aprokofj commented Jan 4, 2018

Make fails with the following output:

In file included from chainparams.h:9:0,
from protocol.h:13,
from addrman.h:9,
from addrman.cpp:5:
bignum.h: In function ‘const CBigNum operator<<(const CBigNum&, unsigned int)’:
bignum.h:576:33: error: cannot convert ‘CBigNum*’ to ‘BIGNUM* {aka bignum_st*}’ for argument ‘1’ to ‘int BN_lshift(BIGNUM*, const BIGNUM*, int)’
if (!BN_lshift(&r, &a, shift))
^
bignum.h: In function ‘bool operator==(const CBigNum&, const CBigNum&)’:
bignum.h:588:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator==(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) == 0); }
^
bignum.h: In function ‘bool operator!=(const CBigNum&, const CBigNum&)’:
bignum.h:589:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator!=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) != 0); }
^
bignum.h: In function ‘bool operator<=(const CBigNum&, const CBigNum&)’:
bignum.h:590:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator<=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) <= 0); }
^
bignum.h: In function ‘bool operator>=(const CBigNum&, const CBigNum&)’:
bignum.h:591:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator>=(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) >= 0); }
^
bignum.h: In function ‘bool operator<(const CBigNum&, const CBigNum&)’:
bignum.h:592:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator<(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) < 0); }
^
bignum.h: In function ‘bool operator>(const CBigNum&, const CBigNum&)’:
bignum.h:593:83: error: cannot convert ‘const CBigNum*’ to ‘const BIGNUM* {aka const bignum_st*}’ for argument ‘1’ to ‘int BN_cmp(const BIGNUM*, const BIGNUM*)’
inline bool operator>(const CBigNum& a, const CBigNum& b) { return (BN_cmp(&a, &b) > 0); }

@jarhat
Copy link

jarhat commented Jan 6, 2018

+1

@WorldBot
Copy link
Contributor

WorldBot commented Jan 7, 2018

got same error from debian 9.3, look like that's fails with OpenSSL 1.1.0f
I got it running by installing libssl1.0-dev ( apt-get install libssl1.0-dev ) but that can make perhaps some dependance problems for others stuff idk

@tokoro10g
Copy link

Installing openssl-1.0 and

CPPFLAGS="-I/usr/include/openssl-1.0" LDFLAGS="-L/usr/lib/openssl-1.0" ./configure ...(options)...

did the trick. Hope it helps ;)

@derekneely
Copy link

derekneely commented Jan 11, 2018

You may want to look at this guy's Docker file. He's using Alpine but may lend some help on packages and config options.

https://github.com/mecab/docker-yentend/blob/master/Dockerfile

Helped me getting it up and going on Debian 8.

@aprokofj
Copy link
Author

@tokoro10g tokoro10g, your suggestion solved the previous issue, but now there is another problem:

rpcserver.cpp:436:102: error: wrong number of template arguments (2, should be 1)
oid RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
^
In file included from /usr/include/boost/asio.hpp:30:0,
from rpcprotocol.h:15,
from rpcserver.h:10,
from rpcserver.cpp:6:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template class boost::asio::basic_socket_acceptor’
class basic_socket_acceptor
^~~~~~~~~~~~~~~~~~~~~
rpcserver.cpp:436:104: error: template argument 1 is invalid
d RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
^
rpcserver.cpp:446:95: error: wrong number of template arguments (2, should be 1)
tatic void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
^
In file included from /usr/include/boost/asio.hpp:30:0,
from rpcprotocol.h:15,
from rpcserver.h:10,
from rpcserver.cpp:6:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: note: provided for ‘template class boost::asio::basic_socket_acceptor’
class basic_socket_acceptor
^~~~~~~~~~~~~~~~~~~~~
rpcserver.cpp:446:97: error: template argument 1 is invalid
tic void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
^
rpcserver.cpp: In function ‘void RPCListen(int, boost::asio::ssl::context&, bool)’:
rpcserver.cpp:451:109: error: base operand of ‘->’ is not a pointer
ed_ptr< AcceptedConnectionImpl > conn(new AcceptedConnectionImpl(acceptor->get_io_service(), context, fUseSSL));
^~
rpcserver.cpp:453:13: error: base operand of ‘->’ is not a pointer
acceptor->async_accept(
^~
rpcserver.cpp: At global scope:
rpcserver.cpp:469:102: error: wrong number of template arguments (2, should be 1)
oid RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,

@tokoro10g
Copy link

@aprokofj
You also need to downgrade boost to 1.65.1.
The interface was changed in the latest version.

Note: you can use agetpkg to get older packages.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants