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)
openSUSE Build Service is sponsored by