fuerte icon indicating copy to clipboard operation
fuerte copied to clipboard

Cannot build fuerte GeneralConnection

Open cwoodruf opened this issue 5 years ago • 7 comments

Was trying to build arangodb 3.7 on Ubuntu 16.04 from source but was getting errors when it attempts to build fuerte. Thought maybe it was something to do with libboost. Built libboost and velocypack from scratch and retried the build. However, got the following result.

self(weak_from_this())

seems to be the general issue.

calwoodruff@dldev3-cwood:~/src/fuerte/build git: master
$ cmake .. -DBOOST_ROOT=/home/calwoodruff/src/boost_1_71_0
-- FUERTE_STANDALONE_ASIO OFF
-- Found Boost: /home/calwoodruff/src/boost_1_71_0 (found version "1.71.0") found components: system thread chrono date_time atomic 
-- HINTS: 
-- HINTS: /usr/local/include
-- Found VELOCYPACK: /usr/local/lib/libvelocypack.a (found version "0.1.33") 
-- HINTS: 
-- HINTS: /usr/local/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/calwoodruff/src/fuerte/build
calwoodruff@dldev3-cwood:~/src/fuerte/build git: master
$ make && sudo make install
Scanning dependencies of target fuerte
[  5%] Building CXX object CMakeFiles/fuerte.dir/src/connection.cpp.o
[ 11%] Building CXX object CMakeFiles/fuerte.dir/src/ConnectionBuilder.cpp.o
[ 17%] Building CXX object CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In member function ‘void arangodb::fuerte::GeneralConnection<ST>::cancel()’:
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:52: error: there are no arguments to ‘weak_from_this’ that depend on a template parameter, so a declaration of ‘weak_from_this’ must be available [-fpermissive]
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                    ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:52: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘struct arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda>’:
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:16:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:182:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:51: error: ‘weak_from_this’ was not declared in this scope
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                   ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:56: error: using invalid field ‘arangodb::fuerte::GeneralConnection<ST>::cancel()::<lambda()>::__self’
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                        ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘struct arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda>’:
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:16:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:183:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:51: error: ‘weak_from_this’ was not declared in this scope
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                   ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:56: error: using invalid field ‘arangodb::fuerte::GeneralConnection<ST>::cancel()::<lambda()>::__self’
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                        ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘struct arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda>’:
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:16:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::cancel() [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:185:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:51: error: ‘weak_from_this’ was not declared in this scope
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                   ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:45:56: error: using invalid field ‘arangodb::fuerte::GeneralConnection<ST>::cancel()::<lambda()>::__self’
   asio_ns::post(*_io_context, [self(weak_from_this()), this] {
                                                        ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int)::<lambda(const auto:1&)> [with auto:1 = boost::system::error_code; arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]’:
/home/calwoodruff/src/fuerte/src/AsioSockets.h:119:13:   required from ‘arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)2u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&)::<lambda(const error_code&)> [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>; boost::asio::error_code = boost::system::error_code]’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:117:58:   required from ‘struct arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)2u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&) [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:133:5:   required from ‘void arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)2u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&) [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:128:3:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:183:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:131:20: error: ‘finishConnect’ was not declared in this scope
       finishConnect();
                    ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:136:17: error: ‘tryConnect’ was not declared in this scope
       tryConnect(retries - 1);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:139:17: error: ‘drainQueue’ was not declared in this scope
       drainQueue(Error::CouldNotConnect);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:140:25: error: ‘shutdownConnection’ was not declared in this scope
       shutdownConnection(Error::CouldNotConnect,
                         ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int)::<lambda(const auto:1&)> [with auto:1 = boost::system::error_code; arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]’:
/home/calwoodruff/src/fuerte/src/AsioSockets.h:168:11:   required from ‘arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)3u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, CallbackT)::<lambda(const error_code&)> [with CallbackT = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda(const auto:1&)>; boost::asio::error_code = boost::system::error_code]’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:167:31:   required from ‘struct arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)3u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, CallbackT) [with CallbackT = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:167:5:   required from ‘void arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)3u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, CallbackT) [with CallbackT = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda(const auto:1&)>]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:128:3:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:185:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:131:20: error: ‘finishConnect’ was not declared in this scope
       finishConnect();
                    ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:136:17: error: ‘tryConnect’ was not declared in this scope
       tryConnect(retries - 1);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:139:17: error: ‘drainQueue’ was not declared in this scope
       drainQueue(Error::CouldNotConnect);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:140:25: error: ‘shutdownConnection’ was not declared in this scope
       shutdownConnection(Error::CouldNotConnect,
                         ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp: In instantiation of ‘arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int)::<lambda(const auto:1&)> [with auto:1 = boost::system::error_code; arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]’:
/home/calwoodruff/src/fuerte/src/AsioSockets.h:41:11:   required from ‘arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&)::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)> [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::error_code = boost::system::error_code; boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator = boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>]’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:37:50:   required from ‘struct arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&) [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::ip::tcp::resolver = boost::asio::ip::basic_resolver<boost::asio::ip::tcp>]::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)>’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:52:3:   required from ‘void arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&) [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::ip::tcp::resolver = boost::asio::ip::basic_resolver<boost::asio::ip::tcp>]’
/home/calwoodruff/src/fuerte/src/AsioSockets.h:85:19:   required from ‘void arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)1u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&) [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:128:3:   required from ‘void arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]’
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:182:34:   required from here
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:131:20: error: ‘finishConnect’ was not declared in this scope
       finishConnect();
                    ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:136:17: error: ‘tryConnect’ was not declared in this scope
       tryConnect(retries - 1);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:139:17: error: ‘drainQueue’ was not declared in this scope
       drainQueue(Error::CouldNotConnect);
                 ^
/home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:140:25: error: ‘shutdownConnection’ was not declared in this scope
       shutdownConnection(Error::CouldNotConnect,
                         ^
In file included from /home/calwoodruff/src/boost_1_71_0/boost/asio/ssl.hpp:22:0,
                 from /home/calwoodruff/src/fuerte/include/fuerte/asio_ns.h:57,
                 from /home/calwoodruff/src/fuerte/include/fuerte/loop.h:32,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/home/calwoodruff/src/boost_1_71_0/boost/asio/ssl/stream.hpp: At global scope:
/home/calwoodruff/src/boost_1_71_0/boost/asio/ssl/stream.hpp:437:3: error: ‘typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code)>::return_type boost::asio::ssl::stream<Stream>::async_handshake(boost::asio::ssl::stream_base::handshake_type, HandshakeHandler&&) [with HandshakeHandler = const arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>; Stream = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code)>::return_type = void]’, declared using local type ‘const arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>’, is used but never defined [-fpermissive]
   async_handshake(handshake_type type,
   ^
In file included from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:30:0,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/home/calwoodruff/src/fuerte/src/AsioSockets.h:33:6: error: ‘void arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&) [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)2u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&) [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>; boost::asio::ip::tcp::resolver = boost::asio::ip::basic_resolver<boost::asio::ip::tcp>]’, declared using local type ‘arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)2u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, F&&) [with F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)2u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>’, is used but never defined [-fpermissive]
 void resolveConnect(detail::ConnectionConfiguration const& config,
      ^
In file included from /home/calwoodruff/src/boost_1_71_0/boost/asio/basic_datagram_socket.hpp:20:0,
                 from /home/calwoodruff/src/boost_1_71_0/boost/asio.hpp:24,
                 from /home/calwoodruff/src/fuerte/include/fuerte/asio_ns.h:55,
                 from /home/calwoodruff/src/fuerte/include/fuerte/loop.h:32,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/home/calwoodruff/src/boost_1_71_0/boost/asio/basic_socket.hpp:946:3: error: ‘typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code)>::return_type boost::asio::basic_socket<Protocol, Executor>::async_connect(const endpoint_type&, ConnectHandler&&) [with ConnectHandler = arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)3u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, CallbackT) [with CallbackT = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>; Protocol = boost::asio::local::stream_protocol; Executor = boost::asio::executor; typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code)>::return_type = void; boost::asio::basic_socket<Protocol, Executor>::endpoint_type = boost::asio::local::basic_endpoint<boost::asio::local::stream_protocol>]’, declared using local type ‘arangodb::fuerte::v1::Socket<(arangodb::fuerte::v1::SocketType)3u>::connect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, CallbackT) [with CallbackT = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)3u]::<lambda(const auto:1&)>]::<lambda(const error_code&)>’, is used but never defined [-fpermissive]
   async_connect(const endpoint_type& peer_endpoint,
   ^
In file included from /home/calwoodruff/src/boost_1_71_0/boost/asio/connect.hpp:1055:0,
                 from /home/calwoodruff/src/boost_1_71_0/boost/asio.hpp:50,
                 from /home/calwoodruff/src/fuerte/include/fuerte/asio_ns.h:55,
                 from /home/calwoodruff/src/fuerte/include/fuerte/loop.h:32,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/home/calwoodruff/src/boost_1_71_0/boost/asio/impl/connect.hpp:754:1: error: ‘typename boost::asio::async_result<typename std::decay<WriteHandler>::type, void(boost::system::error_code, Iterator)>::return_type boost::asio::async_connect(boost::asio::basic_socket<Protocol, Executor>&, Iterator, IteratorConnectHandler&&, typename std::enable_if<(! boost::asio::is_endpoint_sequence<EndpointSequence>::value)>::type*) [with Protocol = boost::asio::ip::tcp; Executor = boost::asio::executor; Iterator = boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>; IteratorConnectHandler = arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&)::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)> [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::error_code = boost::system::error_code; boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator = boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>]::<lambda(const error_code&, const iterator&)>; typename boost::asio::async_result<typename std::decay<WriteHandler>::type, void(boost::system::error_code, Iterator)>::return_type = void; typename std::enable_if<(! boost::asio::is_endpoint_sequence<EndpointSequence>::value)>::type = void]’, declared using local type ‘arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&)::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)> [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::error_code = boost::system::error_code; boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator = boost::asio::ip::basic_resolver_iterator<boost::asio::ip::tcp>]::<lambda(const error_code&, const iterator&)>’, is used but never defined [-fpermissive]
 async_connect(basic_socket<Protocol, Executor>& s, Iterator begin,
 ^
In file included from /home/calwoodruff/src/boost_1_71_0/boost/asio.hpp:84:0,
                 from /home/calwoodruff/src/fuerte/include/fuerte/asio_ns.h:55,
                 from /home/calwoodruff/src/fuerte/include/fuerte/loop.h:32,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/home/calwoodruff/src/boost_1_71_0/boost/asio/ip/basic_resolver.hpp:673:3: error: ‘typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code, boost::asio::ip::basic_resolver_results<Protocol>)>::return_type boost::asio::ip::basic_resolver<InternetProtocol, Executor>::async_resolve(std::experimental::fundamentals_v1::string_view, std::experimental::fundamentals_v1::string_view, ResolveHandler&&) [with ResolveHandler = arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&) [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::ip::tcp::resolver = boost::asio::ip::basic_resolver<boost::asio::ip::tcp>]::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)>; InternetProtocol = boost::asio::ip::tcp; Executor = boost::asio::executor; typename boost::asio::async_result<typename std::decay<_Tp>::type, void(boost::system::error_code, boost::asio::ip::basic_resolver_results<Protocol>)>::return_type = void; std::experimental::fundamentals_v1::string_view = std::experimental::fundamentals_v1::basic_string_view<char>]’, declared using local type ‘arangodb::fuerte::v1::{anonymous}::resolveConnect(const arangodb::fuerte::v1::detail::ConnectionConfiguration&, boost::asio::ip::tcp::resolver&, SocketT&, F&&) [with SocketT = boost::asio::basic_stream_socket<boost::asio::ip::tcp>; F = arangodb::fuerte::GeneralConnection<ST>::tryConnect(unsigned int) [with arangodb::fuerte::v1::SocketType ST = (arangodb::fuerte::v1::SocketType)1u]::<lambda(const auto:1&)>; boost::asio::ip::tcp::resolver = boost::asio::ip::basic_resolver<boost::asio::ip::tcp>]::<lambda(const error_code&, boost::asio::ip::basic_resolver<boost::asio::ip::tcp>::iterator)>’, is used but never defined [-fpermissive]
   async_resolve(BOOST_ASIO_STRING_VIEW_PARAM host,
   ^
CMakeFiles/fuerte.dir/build.make:88: recipe for target 'CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o' failed
make[2]: *** [CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/fuerte.dir/all' failed
make[1]: *** [CMakeFiles/fuerte.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

cwoodruf avatar Dec 17 '19 01:12 cwoodruf

Changing gcc/g++ to version 7.1 causes the following output:

calwoodruff@dldev3-cwood:~/src/fuerte/build git: master
$ cmake .. -DBOOST_ROOT=/home/calwoodruff/src/boost_1_71_0 -DCMAKE_BUILD_TYPE=Debug 
-- The CXX compiler identification is GNU 7.1.0
-- The C compiler identification is GNU 7.1.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- FUERTE_STANDALONE_ASIO OFF
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1d")  
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found Boost: /home/calwoodruff/src/boost_1_71_0 (found version "1.71.0") found components: system thread chrono date_time atomic 
-- HINTS: 
-- HINTS: /usr/local/include
-- Found VELOCYPACK: /usr/local/lib/libvelocypack.a (found version "0.1.33") 
-- HINTS: 
-- HINTS: /usr/local/include
-- Configuring done
-- Generating done
-- Build files have been written to: /home/calwoodruff/src/fuerte/build
calwoodruff@dldev3-cwood:~/src/fuerte/build git: master
$ make -j4
Scanning dependencies of target fuerte
[  5%] Building CXX object CMakeFiles/fuerte.dir/src/connection.cpp.o
[ 11%] Building CXX object CMakeFiles/fuerte.dir/src/ConnectionBuilder.cpp.o
[ 17%] Building CXX object CMakeFiles/fuerte.dir/src/helper.cpp.o
[ 23%] Building CXX object CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o
In file included from /usr/local/include/velocypack/AttributeTranslator.h:36:0,
                 from /usr/local/include/velocypack/Builder.h:38,
                 from /home/calwoodruff/src/fuerte/include/fuerte/message.h:35,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:28,
                 from /home/calwoodruff/src/fuerte/src/connection.cpp:25:
/usr/local/include/velocypack/StringRef.h: In constructor ‘constexpr arangodb::velocypack::StringRef::StringRef(const char*)’:
/usr/local/include/velocypack/StringRef.h:55:107: error: call to non-constexpr function ‘static std::size_t std::char_traits<char>::length(const char_type*)’
   constexpr explicit StringRef(char const* data) noexcept : StringRef(data, std::char_traits<char>::length(data)) {}
                                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /usr/local/include/velocypack/AttributeTranslator.h:36:0,
                 from /usr/local/include/velocypack/Builder.h:38,
                 from /home/calwoodruff/src/fuerte/include/fuerte/message.h:35,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:28,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.h:27,
                 from /home/calwoodruff/src/fuerte/src/GeneralConnection.cpp:23:
/usr/local/include/velocypack/StringRef.h: In constructor ‘constexpr arangodb::velocypack::StringRef::StringRef(const char*)’:
/usr/local/include/velocypack/StringRef.h:55:107: error: call to non-constexpr function ‘static std::size_t std::char_traits<char>::length(const char_type*)’
   constexpr explicit StringRef(char const* data) noexcept : StringRef(data, std::char_traits<char>::length(data)) {}
                                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
In file included from /usr/local/include/velocypack/AttributeTranslator.h:36:0,
                 from /usr/local/include/velocypack/Builder.h:38,
                 from /home/calwoodruff/src/fuerte/include/fuerte/message.h:35,
                 from /home/calwoodruff/src/fuerte/include/fuerte/helper.h:26,
                 from /home/calwoodruff/src/fuerte/src/helper.cpp:24:
/usr/local/include/velocypack/StringRef.h: In constructor ‘constexpr arangodb::velocypack::StringRef::StringRef(const char*)’:
/usr/local/include/velocypack/StringRef.h:55:107: error: call to non-constexpr function ‘static std::size_t std::char_traits<char>::length(const char_type*)’
   constexpr explicit StringRef(char const* data) noexcept : StringRef(data, std::char_traits<char>::length(data)) {}
                                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
CMakeFiles/fuerte.dir/build.make:62: recipe for target 'CMakeFiles/fuerte.dir/src/connection.cpp.o' failed
make[2]: *** [CMakeFiles/fuerte.dir/src/connection.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/fuerte.dir/build.make:101: recipe for target 'CMakeFiles/fuerte.dir/src/helper.cpp.o' failed
make[2]: *** [CMakeFiles/fuerte.dir/src/helper.cpp.o] Error 1
In file included from /usr/local/include/velocypack/AttributeTranslator.h:36:0,
                 from /usr/local/include/velocypack/Builder.h:38,
                 from /home/calwoodruff/src/fuerte/include/fuerte/message.h:35,
                 from /home/calwoodruff/src/fuerte/include/fuerte/connection.h:28,
                 from /home/calwoodruff/src/fuerte/src/ConnectionBuilder.cpp:25:
/usr/local/include/velocypack/StringRef.h: In constructor ‘constexpr arangodb::velocypack::StringRef::StringRef(const char*)’:
/usr/local/include/velocypack/StringRef.h:55:107: error: call to non-constexpr function ‘static std::size_t std::char_traits<char>::length(const char_type*)’
   constexpr explicit StringRef(char const* data) noexcept : StringRef(data, std::char_traits<char>::length(data)) {}
                                                                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
CMakeFiles/fuerte.dir/build.make:88: recipe for target 'CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o' failed
make[2]: *** [CMakeFiles/fuerte.dir/src/GeneralConnection.cpp.o] Error 1
CMakeFiles/fuerte.dir/build.make:75: recipe for target 'CMakeFiles/fuerte.dir/src/ConnectionBuilder.cpp.o' failed
make[2]: *** [CMakeFiles/fuerte.dir/src/ConnectionBuilder.cpp.o] Error 1
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/fuerte.dir/all' failed
make[1]: *** [CMakeFiles/fuerte.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2

cwoodruf avatar Dec 17 '19 02:12 cwoodruf

I guess my basic questions are: What is the correct tool chain for building arangodb? Can this component be left out?

cwoodruf avatar Dec 17 '19 02:12 cwoodruf

I get the same result.

Ubuntu 16.04 boost 1.71 cmake 3.16

vivitter avatar Dec 17 '19 05:12 vivitter

We copy the Fuerte code into the ArangoDB repository, maybe the cmake file in here is out of date

graetzer avatar Dec 17 '19 08:12 graetzer

Actually I think you should just update your gcc

graetzer avatar Dec 17 '19 08:12 graetzer

@graetzer what version of gcc is known to work?

cwoodruf avatar Dec 17 '19 17:12 cwoodruf

I think we use 9

graetzer avatar Dec 17 '19 23:12 graetzer