I am using Ubuntu 18.04. I already have behavioral-model working on my machine since its used by p4c. Thus, the machine has all dependencies that the behavioral-model needs. But, still, using the behavioral-model in sai-p4-bm, I run into build problems.
I had to change simple_switch.h to fix the compilation 'override' error.
I also had to comment out code in simple_switch.cpp to fix its compilation.
See log below.
/SimpleSwitch_server.o
primitives.cpp: In member function ‘virtual void exit_::operator()()’:
primitives.cpp:148:15: error: invalid use of incomplete type ‘class bm::Packet’
get_packet().mark_for_exit();
~~~~~~~~~~^~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
primitives.cpp: In member function ‘virtual void add_header::operator()(bm::Header&)’:
primitives.cpp:172:7: error: invalid use of incomplete type ‘class bm::Packet’
packet.set_register(0, packet.get_register(0) + hdr.get_nbytes_packet());
^~~~~~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
primitives.cpp:172:30: error: invalid use of incomplete type ‘class bm::Packet’
packet.set_register(0, packet.get_register(0) + hdr.get_nbytes_packet());
^~~~~~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
primitives.cpp: In member function ‘virtual void remove_header::operator()(bm::Header&)’:
primitives.cpp:192:7: error: invalid use of incomplete type ‘class bm::Packet’
packet.set_register(0, packet.get_register(0) - hdr.get_nbytes_packet());
^~~~~~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
primitives.cpp:192:30: error: invalid use of incomplete type ‘class bm::Packet’
packet.set_register(0, packet.get_register(0) - hdr.get_nbytes_packet());
^~~~~~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
primitives.cpp: In member function ‘virtual void modify_field_with_hash_based_offset::operator()(bm::Data&, const bm::Data&, const bm::NamedCalculation&, const bm::Data&)’:
primitives.cpp:268:8: error: invalid use of incomplete type ‘const class bm::NamedCalculation’
(hash.output(get_packet()) % size.get<uint64_t>()) + base.get<uint64_t>();
^~~~
In file included from primitives.cpp:21:0:
../behavioral-model/include/bm/bm_sim/actions.h:95:7: note: forward declaration of ‘class bm::NamedCalculation’
class NamedCalculation;
^~~~~~~~~~~~~~~~
primitives.cpp: In member function ‘virtual void execute_meter::operator()(bm::MeterArray&, const bm::Data&, bm::Field&)’:
primitives.cpp:286:13: error: invalid use of incomplete type ‘class bm::MeterArray’
dst.set(meter_array.execute_meter(get_packet(), idx.get_uint()));
^~~~~~~~~~~
In file included from primitives.cpp:21:0:
../behavioral-model/include/bm/bm_sim/actions.h:96:7: note: forward declaration of ‘class bm::MeterArray’
class MeterArray;
^~~~~~~~~~
primitives.cpp: In member function ‘virtual void count::operator()(bm::CounterArray&, const bm::Data&)’:
primitives.cpp:294:5: error: invalid use of incomplete type ‘class bm::CounterArray’
counter_array.get_counter(idx.get_uint()).increment_counter(get_packet());
^~~~~~~~~~~~~
In file included from primitives.cpp:21:0:
../behavioral-model/include/bm/bm_sim/actions.h:97:7: note: forward declaration of ‘class bm::CounterArray’
class CounterArray;
^~~~~~~~~~~~
primitives.cpp: In member function ‘virtual void truncate_::operator()(const bm::Data&)’:
primitives.cpp:352:15: error: invalid use of incomplete type ‘class bm::Packet’
get_packet().truncate(truncated_length.get<size_t>());
~~~~~~~~~~^~
In file included from ../behavioral-model/include/bm/bm_sim/actions.h:83:0,
from primitives.cpp:21:
../behavioral-model/include/bm/bm_sim/phv.h:74:16: note: forward declaration of ‘class bm::Packet’
friend class Packet;
^~~~~~
Makefile:701: recipe for target 'primitives.lo' failed
make[2]: *** [primitives.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from simple_switch.cpp:31:0:
simple_switch.h:78:7: error: ‘int SimpleSwitch::receive(int, const char*, int)’ marked ‘override’, but does not override
int receive(int port_num, const char *buffer, int len) override;
^~~~~~~
simple_switch.h:80:8: error: ‘void SimpleSwitch::start_and_return()’ marked ‘override’, but does not override
void start_and_return() override;
^~~~~~~~~~~~~~~~
simple_switch.h:82:8: error: ‘void SimpleSwitch::reset_target_state()’ marked ‘override’, but does not override
void reset_target_state() override;
^~~~~~~~~~~~~~~~~~
simple_switch.cpp: In member function ‘std::unique_ptr<bm::Packet> SimpleSwitch::copy_ingress_pkt(const std::unique_ptr<bm::Packet>&, SimpleSwitch::PktInstanceType, bm::p4object_id_t)’:
simple_switch.cpp:279:25: error: ‘begin’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:279:25: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:87:5: note: ‘std::begin’
begin(_Tp (&__arr)[_Nm])
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:22:38: note: ‘boost::mpl::begin’
template< typename Sequence > struct begin;
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
simple_switch.cpp:279:25: error: ‘end’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:279:25: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:97:5: note: ‘std::end’
end(_Tp (&__arr)[_Nm])
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note: ‘boost::mpl::end’
template< typename Sequence > struct end;
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
simple_switch.cpp: In member function ‘void SimpleSwitch::egress_thread(size_t)’:
simple_switch.cpp:486:31: error: ‘begin’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:486:31: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:87:5: note: ‘std::begin’
begin(_Tp (&__arr)[_Nm])
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:22:38: note: ‘boost::mpl::begin’
template< typename Sequence > struct begin;
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
simple_switch.cpp:486:31: error: ‘end’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:486:31: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:97:5: note: ‘std::end’
end(_Tp (&__arr)[_Nm])
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note: ‘boost::mpl::end’
template< typename Sequence > struct end;
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
simple_switch.cpp:525:31: error: ‘begin’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:525:31: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:87:5: note: ‘std::begin’
begin(_Tp (&__arr)[_Nm])
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:22:38: note: ‘boost::mpl::begin’
template< typename Sequence > struct begin;
^~~~~
In file included from /usr/include/boost/range/functions.hpp:18:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/begin.hpp:106:61: note: ‘boost::range_adl_barrier::begin’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
^~~~~
simple_switch.cpp:525:31: error: ‘end’ was not declared in this scope
for (const auto &p : *field_list) {
^~~~~~~~~~
simple_switch.cpp:525:31: note: suggested alternatives:
In file included from /usr/include/c++/7/string:51:0,
from ../behavioral-model/include/bm/bm_sim/parser.h:27,
from simple_switch.cpp:21:
/usr/include/c++/7/bits/range_access.h:97:5: note: ‘std::end’
end(_Tp (&__arr)[_Nm])
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
In file included from /usr/include/boost/mpl/begin_end.hpp:17:0,
from /usr/include/boost/mpl/iter_fold_if.hpp:18,
from /usr/include/boost/mpl/find_if.hpp:19,
from /usr/include/boost/multiprecision/number.hpp:13,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/mpl/begin_end_fwd.hpp:23:38: note: ‘boost::mpl::end’
template< typename Sequence > struct end;
^~~
In file included from /usr/include/boost/range/functions.hpp:19:0,
from /usr/include/boost/range/iterator_range_core.hpp:38,
from /usr/include/boost/lexical_cast.hpp:30,
from /usr/include/boost/multiprecision/detail/number_base.hpp:18,
from /usr/include/boost/multiprecision/detail/default_ops.hpp:10,
from /usr/include/boost/multiprecision/detail/generic_interconvert.hpp:9,
from /usr/include/boost/multiprecision/number.hpp:22,
from /usr/include/boost/multiprecision/gmp.hpp:9,
from ../behavioral-model/include/bm/bm_sim/bignum.h:25,
from ../behavioral-model/include/bm/bm_sim/data.h:34,
from ../behavioral-model/include/bm/bm_sim/stateful.h:46,
from ../behavioral-model/include/bm/bm_sim/parser.h:36,
from simple_switch.cpp:21:
/usr/include/boost/range/end.hpp:100:61: note: ‘boost::range_adl_barrier::end’
inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
^~~
In file included from thrift/src/SimpleSwitch_server.cpp:42:0:
./simple_switch.h:78:7: error: ‘int SimpleSwitch::receive(int, const char*, int)’ marked ‘override’, but does not override
int receive(int port_num, const char *buffer, int len) override;
^~~~~~~
./simple_switch.h:80:8: error: ‘void SimpleSwitch::start_and_return()’ marked ‘override’, but does not override
void start_and_return() override;
^~~~~~~~~~~~~~~~
./simple_switch.h:82:8: error: ‘void SimpleSwitch::reset_target_state()’ marked ‘override’, but does not override
void reset_target_state() override;
^~~~~~~~~~~~~~~~~~
Makefile:701: recipe for target 'simple_switch.lo' failed
make[2]: *** [simple_switch.lo] Error 1
Makefile:701: recipe for target 'thrift/src/SimpleSwitch_server.lo' failed
make[2]: *** [thrift/src/SimpleSwitch_server.lo] Error 1
make[2]: Leaving directory '/home/hemant/SAI-P4-BM/p4-switch/sai-p4-target'
Makefile:472: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/hemant/SAI-P4-BM/p4-switch/sai-p4-target'
Makefile:396: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1