Unable to build the latest version of seastar

94 views
Skip to first unread message

Suli Yang

<yangsuli@gmail.com>
unread,
May 30, 2022, 2:56:24 AM5/30/22
to seastar-dev
Hi,

I am having trouble building the latest version of seastar (master branch b73be37c7f0d287cc1d9f88f0f475c8ab2f55e0f). The compilation fails with errors about using deleted function 'seastar::condition_variable::condition_variable()'. 

I was able to build branch 20.05 though.

Could someone help me out here?

Thanks!

Suli

Platform: Ubuntu 20.04
g++ version: gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1) 
configure options:  ./configure.py --mode=release --prefix=/usr/local/seastar --enable-dpdk --c++-dialect gnu++17 --cflags="-Wno-attributes"
(DPDK version: 71db32d74c013f70bc455557f7ba098bb738115e) 

Detailed error message: 

> FAILED: CMakeFiles/seastar.dir/src/core/reactor.cc.o 
/usr/bin/g++  -DFMT_LOCALE -DSEASTAR_API_LEVEL=6 -DSEASTAR_DEFERRED_ACTION_REQUIRE_NOEXCEPT -DSEASTAR_HAS_MEMBARRIER -DSEASTAR_HAVE_ASAN_FIBER_SUPPORT -DSEASTAR_HAVE_DPDK -DSEASTAR_HAVE_HWLOC -DSEASTAR_HAVE_LZ4_COMPRESS_DEFAULT -DSEASTAR_HAVE_NUMA -DSEASTAR_SCHEDULING_GROUPS_COUNT=16 -I../../include -Igen/include -I../../src -Igen/src -isystem _cooking/installed/include/dpdk -O2 -g -DNDEBUG   -std=gnu++17 -U_FORTIFY_SOURCE -Wno-maybe-uninitialized -DSEASTAR_SSTRING -march=native -Wno-error=unused-result -fvisibility=hidden -UNDEBUG -Wall -Werror -Wno-array-bounds -Wno-error=deprecated-declarations -gz -Wno-attributes -std=gnu++17 -MD -MT CMakeFiles/seastar.dir/src/core/reactor.cc.o -MF CMakeFiles/seastar.dir/src/core/reactor.cc.o.d -o CMakeFiles/seastar.dir/src/core/reactor.cc.o -c ../../src/core/reactor.cc
../../src/core/reactor.cc: In constructor 'seastar::reactor::reactor(std::shared_ptr<seastar::smp>, seastar::alien::instance&, unsigned int, seastar::reactor_backend_selector, seastar::reactor_config)':
../../src/core/reactor.cc:926:90: error: use of deleted function 'seastar::condition_variable::condition_variable()'
  926 |     , _thread_pool(std::make_unique<thread_pool>(this, seastar::format("syscall-{}", id))) {
      |                                                                                          ^
In file included from ../../include/seastar/core/reactor.hh:74,
                 from ../../src/core/reactor.cc:32:
../../include/seastar/core/condition-variable.hh:203:5: note: 'seastar::condition_variable::condition_variable() noexcept' is implicitly deleted because its exception-specification does not match the implicit exception-specification ''
  203 |     condition_variable() noexcept = default;
      |     ^~~~~~~~~~~~~~~~~~

Suli Yang

<yangsuli@gmail.com>
unread,
May 30, 2022, 3:59:37 AM5/30/22
to seastar-dev

Update: I suspect the problem has something to do with the compiler does not accept the noexcept constructor, so I switched a a newer version of g++ (10.3.0).

Now I am having a different (but similar) compiling error:


82/321] Building CXX object tests/unit/CMakeFiles/test_unit_checked_ptr.dir/checked_ptr_test.cc.o
FAILED: tests/unit/CMakeFiles/test_unit_checked_ptr.dir/checked_ptr_test.cc.o
/usr/bin/g++ -DBOOST_TEST_DYN_LINK -DFMT_LOCALE -DSEASTAR_API_LEVEL=6 -DSEASTAR_DEFERRED_ACTION_REQUIRE_NOEXCEPT -DSEASTAR_HAS_MEMBARRIER -DSEASTAR_HAVE_ASAN_FIBER_SUPPORT -DSEASTAR_HAVE_DPDK -DSEASTAR_HAVE_HWLOC -DSEASTAR_HAVE_LZ4_COMPRESS_DEFAULT -DSEASTAR_HAVE_NUMA -DSEASTAR_SCHEDULING_GROUPS_COUNT=16 -DSEASTAR_TESTING_MAIN -I../../tests/unit -I../../src -I../../include -Igen/include -isystem _cooking/installed/include/dpdk -O2 -g -DNDEBUG -U_FORTIFY_SOURCE -Wno-maybe-uninitialized -DSEASTAR_SSTRING -march=native -Wno-error=unused-result -fvisibility=hidden -UNDEBUG -Wall -Werror -Wno-array-bounds -Wno-error=deprecated-declarations -gz -std=gnu++2a -MD -MT tests/unit/CMakeFiles/test_unit_checked_ptr.dir/checked_ptr_test.cc.o -MF tests/unit/CMakeFiles/test_unit_checked_ptr.dir/checked_ptr_test.cc.o.d -o tests/unit/CMakeFiles/test_unit_checked_ptr.dir/checked_ptr_test.cc.o -c ../../tests/unit/checked_ptr_test.cc
In file included from /usr/include/boost/test/included/unit_test.hpp:29,
from ../../tests/unit/checked_ptr_test.cc:25:
/usr/include/boost/test/impl/test_tools.ipp: In member function 'void boost::test_tools::tt_detail::print_log_value<const wchar_t*>::operator()(std::ostream&, const wchar_t*)':
/usr/include/boost/test/impl/test_tools.ipp:127:38: error: use of deleted function 'std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const wchar_t*) [with _Traits = std::char_traits]'
127 | ostr << ( t ? t : L"null string" );
| ^
In file included from /usr/include/c++/10/iostream:39,
from /usr/include/boost/test/unit_test_log_formatter.hpp:26,
from /usr/include/boost/test/output/compiler_log_formatter.hpp:17,
from /usr/include/boost/test/impl/compiler_log_formatter.ipp:19,
from /usr/include/boost/test/included/unit_test.hpp:18,
from ../../tests/unit/checked_ptr_test.cc:25:
/usr/include/c++/10/ostream:634:5: note: declared here
634 | operator<<(basic_ostream<char, _Traits>&, const wchar_t*) = delete;
| ^~~~~~~~

Avi Kivity

<avi@scylladb.com>
unread,
May 30, 2022, 5:59:30 AM5/30/22
to Suli Yang, seastar-dev

This is a problem with boost. What version of boost are you using?

--
You received this message because you are subscribed to the Google Groups "seastar-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to seastar-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/seastar-dev/8940a7fb-ead7-4544-87c1-d614b6e748b3n%40googlegroups.com.

杨苏立 Yang Su Li

<yangsuli@gmail.com>
unread,
May 30, 2022, 8:14:38 AM5/30/22
to Avi Kivity, seastar-dev
Hi Avi,

I am using boost 1.71.0 

dpkg -s libboost-dev | grep 'Version'

Version: 1.71.0.0ubuntu2


Does seastar only work with specific versions of g++/boost etc? Where could I find such information?


Thanks!


Suli

--
Suli Yang

Department of Computer Sciences
University of Wisconsin Madison

1220 West Dayton Street
Madison WI 53715

tcha...@gmail.com

<tchaikov@gmail.com>
unread,
May 30, 2022, 10:06:54 AM5/30/22
to seastar-dev
On Monday, May 30, 2022 at 8:14:38 PM UTC+8 yang...@gmail.com wrote:
Hi Avi,

I am using boost 1.71.0 

dpkg -s libboost-dev | grep 'Version'

Version: 1.71.0.0ubuntu2


Does seastar only work with specific versions of g++/boost etc? Where could I find such information?


Suli, it seems that you need bosot v1.73 and up to compile Seastar with C++20. see https://github.com/boostorg/test/commit/8ac88c62dcc809d42daf8b6bef10f7adecc46dd1
 
@Avi, probably we could bump up the required boost version to at least 1.73? if we don't have any regular test compiling Seastar with older boost. i see our CI is using GCC-11 + boost v1.74  + C++{17,20} though. see [0,1]

---

Avi Kivity

<avi@scylladb.com>
unread,
May 30, 2022, 10:40:43 AM5/30/22
to tcha...@gmail.com, seastar-dev


On 30/05/2022 17.06, tcha...@gmail.com wrote:


On Monday, May 30, 2022 at 8:14:38 PM UTC+8 yang...@gmail.com wrote:
Hi Avi,

I am using boost 1.71.0 

dpkg -s libboost-dev | grep 'Version'

Version: 1.71.0.0ubuntu2


Does seastar only work with specific versions of g++/boost etc? Where could I find such information?


Suli, it seems that you need bosot v1.73 and up to compile Seastar with C++20. see https://github.com/boostorg/test/commit/8ac88c62dcc809d42daf8b6bef10f7adecc46dd1
 
@Avi, probably we could bump up the required boost version to at least 1.73? if we don't have any regular test compiling Seastar with older boost. i see our CI is using GCC-11 + boost v1.74  + C++{17,20} though. see [0,1]


Ok. It's just two years old ([2]), but if it's 1.72 is broken in such a basic way, we don't want to deal with it.


Possibly we can make the requirement dependent on the C++ standard, but probably not worth the effort.


This will make it impossible to develop on Ubuntu 20.04 LTS, but given that 22.04 LTS is out, maybe that's okay.


[2] https://www.boost.org/users/history/version_1_73_0.html


杨苏立 Yang Su Li

<yangsuli@gmail.com>
unread,
May 31, 2022, 1:56:38 AM5/31/22
to tcha...@gmail.com, seastar-dev
Hi,

I am able to compile seastar successfully after switching to gcc11 and boost 1.74. 

Thanks a lot for your help.

Suli

You received this message because you are subscribed to a topic in the Google Groups "seastar-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/seastar-dev/IoJHom0qEPc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to seastar-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/seastar-dev/548b3bc6-438f-44e7-9177-b4109da7bdbcn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages