Comments (6)
Same result when cooking fmt and upgrading to 10.2.1
robin@WS-DA-7773X:/data/dev/Kataklysmos/build$ ninja
[3/3] Linking CXX executable my_app
FAILED: my_app
: && /usr/bin/c++ -O3 -DNDEBUG CMakeFiles/my_app.dir/src/main.cpp.o -o my_app /data/dev/Kataklysmos/external/seastar/build/release/libseastar.a /usr/lib/x86_64-linux-gnu/libboost_program_options.so /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/x86_64-linux-gnu/libboost_chrono.so /usr/lib/x86_64-linux-gnu/libboost_date_time.so /usr/lib/x86_64-linux-gnu/libboost_atomic.so /usr/lib/x86_64-linux-gnu/libcares.so /data/dev/Kataklysmos/external/seastar/build/release/_cooking/installed/lib/libfmt.a /usr/lib/x86_64-linux-gnu/liblz4.so -ldl /usr/lib/x86_64-linux-gnu/libgnutls.so -latomic /usr/lib/x86_64-linux-gnu/libsctp.so /usr/lib/x86_64-linux-gnu/libprotobuf.so /usr/lib/x86_64-linux-gnu/libyaml-cpp.so /usr/lib/x86_64-linux-gnu/libhwloc.so /usr/lib/x86_64-linux-gnu/liburing.so /usr/lib/x86_64-linux-gnu/libnuma.so && :
/usr/bin/ld: CMakeFiles/my_app.dir/src/main.cpp.o: in function `std::_Function_handler<seastar::future<void> (), main::{lambda()#1}>::_M_invoke(std::_Any_data const&) [clone .cold]':
main.cpp:(.text.unlikely+0x40): undefined reference to `seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, seastar::internal::source_location)'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
from seastar.
Seems to be somehow related to boost?
./configure.py --mode=release --cook fmt --cook Boost --cook valgrind --c++-standard=20 --enable-dpdk
Works at least (with the Valgrind fix).
I haven't had the nerve to test whether removing --cook Boost
will fix the issue...
from seastar.
@robinchrist hi Robin, so there are two issues here:
undefined reference to
seastar::logger::failed_to_log()` with GCCcall to consteval function 'seastar::logger::format_info<>::format_info<char[13], 0>' is not a constant express
with Clang
may i learn the version of GCC and the version of Clang which you are using? have you tried to build both you application and Seastar with Clang?
the first issue is a mysterious to me. because this symbol should be included in libseastar.a
, could you paste the output of
$ nm -C build/release/libseastar.a | grep failed_to_log
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
0000000000001200 T seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
0000000000003e50 t seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>::operator()(seastar::internal::log_buf::inserter_iterator)
0000000000003e20 t seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>::~lambda_log_writer()
00000000000012a0 t seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>::~lambda_log_writer()
00000000000000a0 d typeinfo for seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>
0000000000000079 r typeinfo name for seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>
0000000000000078 d vtable for seastar::logger::lambda_log_writer<seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)::$_0>
U seastar::logger::failed_to_log(std::__exception_ptr::exception_ptr, fmt::v10::basic_string_view<char>, std::source_location)
from seastar.
It seems like this was related to C++17?
I can't reproduce it anymore after updating Seastar (because of #2180)
What is working:
- Build with two different compilers (gcc 13.2.0 builds Seastar with C++20, Clang 16 builds the app with C++20 and vice versa, Clang 16 builds Seastar with C++20 and gcc 13.2.0 builds the app with C++20)
- Build with gcc and two different C++ versions (Seastar with C++23, app forced to C++20 via cmake - for both gcc 13.2.0)
- Build Seastar & app with Clang 16 and C++20
What is NOT working:
- Build Seastar with Clang 16 and C++23
- Build with two different compiler and C++ versions (Seastar with gcc 13.2.0 and C++23, app with Clang and C++20)
Seem like Clang 16 has some issues with C++23.
from seastar.
see https://github.com/scylladb/seastar/blob/master/doc/compatibility.md#compilers . we don't support Clang 16.
from seastar.
we don't support Clang 16.
Yeah that's not a problem. The results I posted above were merely findings with the stuff that is currently on my dev machine and as a reference for others who might run into the same issue, not a "bug report" that Clang 16 is not working 😄
from seastar.
Related Issues (20)
- Abandoned generator leaks memory HOT 1
- metrics: trying to add summaries is unsafe HOT 1
- cgroups v1 isn't supported HOT 8
- use undeprecated functions in c-ares HOT 4
- Cross-shard realloc shrink crashes
- Additional data when segfaulting
- Dynamic metric aggregation
- create_scheduling_group / scheduling_group_key_create not exception safe when SG key data constructor throws
- add a unit test for json2code
- create_scheduling_group / scheduling_group_key_create are not safe to run in parallel HOT 1
- add test for prometheus (aggregation)
- [project unrelated] Question about solving __common_cmp_cat duplicate definition problem HOT 1
- High lowres clock drift > 1s in debug mode HOT 4
- add an integration test with scylla HOT 1
- the workflow of "Tests (clang++-18, C++23, release, --enable-dpdk) fails due to dpdk build failure HOT 3
- seastar allocator causes infinite recursive call if seastar is compiled as a shared library
- io_uring reactor backend not available when importing and using seastar as a module HOT 2
- circleci CI was removed but it's still being reported HOT 9
- should revert ba395a22e1951a1572be2a570092524d91996c67 once clang 18.1.6 is in f40
- Update the benchmark HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from seastar.