ceph: fix gcc-12 compile failure

Add two patches to fix gcc-12 compile failure.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
Chen Qi 2022-05-22 21:46:55 -07:00 committed by Bruce Ashfield
parent fb0a7b97db
commit d9189db0aa
3 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,30 @@
From 496465d9238109a93612e28682273e5bf576823b Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Sun, 22 May 2022 19:40:59 -0700
Subject: [PATCH 1/2] buffer.h: add missing header file due to gcc upgrade
The header file <memory> have been changed to be no longer included by other
heades, thus requiring explicit include. See https://gcc.gnu.org/gcc-12/porting_to.html
Upstream-Status: Pending
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/include/buffer.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/include/buffer.h b/src/include/buffer.h
index 5c8b427d..88845ee6 100644
--- a/src/include/buffer.h
+++ b/src/include/buffer.h
@@ -43,6 +43,7 @@
#include <list>
#include <vector>
#include <string>
+#include <memory>
#if __cplusplus >= 201703L
#include <string_view>
#endif // __cplusplus >= 201703L
--
2.36.0

View File

@ -0,0 +1,42 @@
From 841806de212226921eeaeb3eea054bda8ccce616 Mon Sep 17 00:00:00 2001
From: Radoslaw Zarzynski <rzarzyns@redhat.com>
Date: Wed, 19 Jan 2022 15:24:11 +0000
Subject: [PATCH 2/2] common: fix FTBFS due to dout & need_dynamic on GCC-12
For details see:
https://gist.github.com/rzarzynski/d6d2df6888923bef6a3e764f4856853f.
Special thanks to Kaleb Keithley who reported the issue
and tested the fix!
Fixes: https://tracker.ceph.com/issues/53896
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
Upstream-Status: Backport [963d756ded40f5adf2efef53893c917bec1845c1]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
src/common/dout.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/common/dout.h b/src/common/dout.h
index c7c08182..42f49915 100644
--- a/src/common/dout.h
+++ b/src/common/dout.h
@@ -99,11 +99,12 @@ namespace ceph::dout {
template<typename T>
struct dynamic_marker_t {
T value;
- operator T() const { return value; }
+ // constexpr ctor isn't needed as it's an aggregate type
+ constexpr operator T() const { return value; }
};
template<typename T>
-dynamic_marker_t<T> need_dynamic(T&& t) {
+constexpr dynamic_marker_t<T> need_dynamic(T&& t) {
return dynamic_marker_t<T>{ std::forward<T>(t) };
}
--
2.36.0

View File

@ -14,6 +14,8 @@ SRC_URI = "http://download.ceph.com/tarballs/ceph-${PV}.tar.gz \
file://ceph.conf \
file://0001-cmake-add-support-for-python3.10.patch \
file://0001-SnappyCompressor.h-fix-snappy-compiler-error.patch \
file://0001-buffer.h-add-missing-header-file-due-to-gcc-upgrade.patch \
file://0002-common-fix-FTBFS-due-to-dout-need_dynamic-on-GCC-12.patch \
"
SRC_URI[sha256sum] = "5dccdaff2ebe18d435b32bfc06f8b5f474bf6ac0432a6a07d144b7c56700d0bf"