File ceph-crimson-fix-missing-include.patch of Package ceph
From b6da1c2c16cb5e2ca4fb8a39032a04d258f0f719 Mon Sep 17 00:00:00 2001
From: Matan Breizman <mbreizma@redhat.com>
Date: Thu, 26 Jun 2025 11:04:46 +0300
Subject: [PATCH 1/4] crimson/common/smp_helpers: fix missing include
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With 550b2b8ade7e10078ab9610442d039b65cce6a2b introducing coroutines in
smp_helpers header, GCC 15 FTBFS with:
```
FAILED: src/crimson/CMakeFiles/crimson.dir/net/ProtocolV2.cc.o
In file included from /home/zhscn/project/ceph/src/crimson/net/io_handler.h:11,
from /home/zhscn/project/ceph/src/crimson/net/ProtocolV2.h:9,
from /home/zhscn/project/ceph/src/crimson/net/ProtocolV2.cc:4:
/home/zhscn/project/ceph/src/crimson/common/smp_helpers.h: In function ‘decltype (seastar::futurize_invoke(f)) crimson::invoke_on_all_seq(F)’:
/home/zhscn/project/ceph/src/crimson/common/smp_helpers.h:64:7: error: coroutines require a traits template; cannot find ‘std::coroutine_traits’ [-Wtemplate-body]
64 | co_await crimson::submit_to(core, [&f] { return seastar::futurize_invoke(f);});
| ^~~~~~~~
/home/zhscn/project/ceph/src/crimson/common/smp_helpers.h:64:7: note: perhaps ‘#include <coroutine>’ is missing
```
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
---
src/crimson/common/smp_helpers.h | 1 +
1 file changed, 1 insertion(+)
--- a/src/crimson/common/smp_helpers.h
+++ b/src/crimson/common/smp_helpers.h
@@ -15,6 +15,7 @@
#include "common/likely.h"
#include "crimson/common/errorator.h"
#include "crimson/common/utility.h"
+#include "crimson/common/coroutine.h"
namespace crimson {
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -406,20 +406,22 @@ if(WITH_CRIMSON)
build_dpdk(${CMAKE_BINARY_DIR}/src/dpdk)
endif()
endif()
- list(APPEND Seastar_CXX_FLAGS
- "-DSEASTAR_NO_EXCEPTION_HACK"
- "-Wno-error"
- "-Wno-sign-compare"
- "-Wno-attributes"
- "-Wno-pessimizing-move"
- "-Wno-address-of-packed-member"
- "-Wno-non-virtual-dtor")
- set(Seastar_CXX_FLAGS "${Seastar_CXX_FLAGS}" CACHE STRING "" FORCE)
add_subdirectory(seastar)
# create the directory so cmake won't complain when looking at the imported
# target: Seastar exports this directory created at build-time
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/seastar/gen/include")
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/seastar/gen/src")
+ target_compile_options(seastar
+ PUBLIC
+ # required by any target that links to seastar
+ "-Wno-non-virtual-dtor"
+ PRIVATE
+ "-DSEASTAR_NO_EXCEPTION_HACK"
+ "-Wno-error"
+ "-Wno-sign-compare"
+ "-Wno-attributes"
+ "-Wno-pessimizing-move"
+ "-Wno-address-of-packed-member")
add_subdirectory(crimson)
endif()
--- a/src/crimson/CMakeLists.txt
+++ b/src/crimson/CMakeLists.txt
@@ -3,7 +3,6 @@ set(crimson_cflag_definitions "WITH_CRIM
set_target_properties(crimson::cflags PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "${crimson_cflag_definitions}"
- INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CXX>:-Wno-non-virtual-dtor>
INTERFACE_LINK_LIBRARIES Seastar::seastar)
set(crimson_common_srcs
@@ -127,26 +126,17 @@ target_compile_definitions(crimson-commo
"CEPH_INSTALL_FULL_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
"CEPH_INSTALL_DATADIR=\"${CEPH_INSTALL_DATADIR}\"")
-set(crimson_common_deps
- Boost::iostreams
- Boost::random
- json_spirit)
-
-set(crimson_common_public_deps crimson::cflags)
-if(WITH_JAEGER)
- list(APPEND crimson_common_public_deps jaeger_base)
-endif()
-
-if(NOT WITH_SYSTEM_BOOST)
- list(APPEND crimson_common_deps ${ZLIB_LIBRARIES})
-endif()
-
target_link_libraries(crimson-common
PUBLIC
- ${crimson_common_public_deps}
+ $<$<BOOL:${WITH_JAEGER}>:jaeger_base>
+ crimson::cflags
PRIVATE
crc32 arch
- ${crimson_common_deps}
+ Boost::iostreams
+ Boost::random
+ json_spirit
+ $<$<NOT:$<BOOL:${WITH_SYSTEM_BOOST}>>:${ZLIB_LIBRARIES}>
+ $<$<BOOL:${WITH_BREAKPAD}>:Breakpad::client>
OpenSSL::Crypto)
set(crimson_auth_srcs
--- a/src/crimson/os/alienstore/CMakeLists.txt
+++ b/src/crimson/os/alienstore/CMakeLists.txt
@@ -33,10 +33,6 @@ endif()
add_library(crimson-alien-common STATIC
${crimson_alien_common_srcs})
-add_library(alien::cflags INTERFACE IMPORTED)
-set_target_properties(alien::cflags PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Seastar::seastar,INTERFACE_INCLUDE_DIRECTORIES>)
-
set(alien_store_srcs
alien_store.cc
thread_pool.cc
@@ -74,12 +70,11 @@ endif()
# For crimson-alienstore WITH_CRIMSON is not defined
target_link_libraries(crimson-alienstore
PRIVATE
- alien::cflags
+ seastar
${FMT_LIB}
kv
heap_profiler
crimson-alien-common
${BLKID_LIBRARIES}
${UDEV_LIBRARIES}
- seastar
blk)