mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-01-06 02:17:34 -08:00
sys-cluster/ceph: remove unused patches
Signed-off-by: Michael Mair-Keimberger <mm1ke@gentoo.org>
This commit is contained in:
parent
abda67b06e
commit
5b80a7fa40
@ -1,26 +0,0 @@
|
||||
diff --git a/src/boost/tools/build/src/tools/features/debug-feature.jam b/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
index 04958f9a..38b6acf1 100644
|
||||
--- a/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
+++ b/src/boost/tools/build/src/tools/features/debug-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
|
||||
feature.feature debug-symbols
|
||||
- : on off
|
||||
+ : on off none
|
||||
: propagated ;
|
||||
|
||||
feature.feature profiling
|
||||
diff --git a/src/boost/tools/build/src/tools/features/optimization-feature.jam b/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
index 761f76f1..fb2a5dec 100644
|
||||
--- a/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
+++ b/src/boost/tools/build/src/tools/features/optimization-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
|
||||
feature.feature optimization
|
||||
- : off speed space
|
||||
+ : off none speed space
|
||||
: propagated ;
|
||||
|
||||
feature.feature inlining
|
||||
@ -1,49 +0,0 @@
|
||||
https://bugs.gentoo.org/887481
|
||||
--- a/src/rgw/rgw_asio_client.cc
|
||||
+++ b/src/rgw/rgw_asio_client.cc
|
||||
@@ -39,11 +39,11 @@
|
||||
const auto& value = header->value();
|
||||
|
||||
if (field == beast::http::field::content_length) {
|
||||
- env.set("CONTENT_LENGTH", value.to_string());
|
||||
+ env.set("CONTENT_LENGTH", value);
|
||||
continue;
|
||||
}
|
||||
if (field == beast::http::field::content_type) {
|
||||
- env.set("CONTENT_TYPE", value.to_string());
|
||||
+ env.set("CONTENT_TYPE", value);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -62,26 +62,26 @@
|
||||
}
|
||||
*dest = '\0';
|
||||
|
||||
- env.set(buf, value.to_string());
|
||||
+ env.set(buf, value);
|
||||
}
|
||||
|
||||
int major = request.version() / 10;
|
||||
int minor = request.version() % 10;
|
||||
env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
|
||||
|
||||
- env.set("REQUEST_METHOD", request.method_string().to_string());
|
||||
+ env.set("REQUEST_METHOD", request.method_string());
|
||||
|
||||
// split uri from query
|
||||
auto uri = request.target();
|
||||
auto pos = uri.find('?');
|
||||
if (pos != uri.npos) {
|
||||
auto query = uri.substr(pos + 1);
|
||||
- env.set("QUERY_STRING", query.to_string());
|
||||
+ env.set("QUERY_STRING", query);
|
||||
uri = uri.substr(0, pos);
|
||||
}
|
||||
- env.set("SCRIPT_URI", uri.to_string());
|
||||
+ env.set("SCRIPT_URI", uri);
|
||||
|
||||
- env.set("REQUEST_URI", request.target().to_string());
|
||||
+ env.set("REQUEST_URI", request.target());
|
||||
|
||||
char port_buf[16];
|
||||
snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
|
||||
@ -1,13 +0,0 @@
|
||||
diff --git a/src/neorados/CMakeLists.txt b/src/neorados/CMakeLists.txt
|
||||
index c66043ac9f9..4b1013d26b7 100644
|
||||
--- a/src/neorados/CMakeLists.txt
|
||||
+++ b/src/neorados/CMakeLists.txt
|
||||
@@ -11,7 +11,7 @@ add_library(libneorados STATIC
|
||||
$<TARGET_OBJECTS:neorados_api_obj>
|
||||
$<TARGET_OBJECTS:neorados_objs>)
|
||||
target_link_libraries(libneorados PRIVATE
|
||||
- osdc ceph-common cls_lock_client fmt::fmt
|
||||
+ osdc ceph-common cls_lock_client fmt::fmt Boost::context
|
||||
${BLKID_LIBRARIES} ${CRYPTO_LIBS} ${EXTRALIBS})
|
||||
|
||||
# if(ENABLE_SHARED)
|
||||
@ -1,253 +0,0 @@
|
||||
From f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed, 20 Dec 2023 14:16:19 +0100
|
||||
Subject: [PATCH 1/2] tracing: Fix C type errors in librados tracing
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This fixes type errors like this:
|
||||
|
||||
In file included from /usr/include/lttng/tracepoint-event.h:69,
|
||||
from …-build/include/tracing/librados.h:4143,
|
||||
from …/src/tracing/librados.c:6
|
||||
:
|
||||
…-build/include/tracing/librados.h:
|
||||
In function ‘lttng_ust__event_probe__librados___rados_mon_command_exit’:
|
||||
…-build/include/tracing/librados.h:477:9: error: initialization of ‘size_t’ {aka ‘long unsigned int’} from ‘size_t *’ {aka ‘long unsigned int *’} makes integer from pointer without a cast
|
||||
477 | ceph_ctf_integerp(size_t, outslen, outslen)
|
||||
| ^~~~~~~~~~~~~~~~~
|
||||
|
||||
GCC 14 will likely treat these type mismatches as an error
|
||||
and fail the build.
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
---
|
||||
src/tracing/librados.tp | 4 ++--
|
||||
src/tracing/tracing-common.h | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp
|
||||
index 8b5e78ef15d65..8e116124b83d5 100644
|
||||
--- a/src/tracing/librados.tp
|
||||
+++ b/src/tracing/librados.tp
|
||||
@@ -2628,7 +2628,7 @@ TRACEPOINT_EVENT(librados, rados_watch3_enter,
|
||||
TP_FIELDS(
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
@@ -2658,7 +2658,7 @@ TRACEPOINT_EVENT(librados, rados_aio_watch2_enter,
|
||||
ctf_integer_hex(rados_ioctx_t, ioctx, ioctx)
|
||||
ctf_string(oid, oid)
|
||||
ctf_integer_hex(rados_completion_t, completion, completion)
|
||||
- ctf_integer_hex(uint64_t, phandle, phandle)
|
||||
+ ctf_integer_hex(uint64_t*, phandle, phandle)
|
||||
ctf_integer_hex(rados_watchcb2_t, callback, callback)
|
||||
ctf_integer(uint32_t, timeout, timeout)
|
||||
ctf_integer_hex(void*, arg, arg)
|
||||
diff --git a/src/tracing/tracing-common.h b/src/tracing/tracing-common.h
|
||||
index 3e07f9de8e85c..03449ab588615 100644
|
||||
--- a/src/tracing/tracing-common.h
|
||||
+++ b/src/tracing/tracing-common.h
|
||||
@@ -21,7 +21,7 @@
|
||||
// type should be an integer type
|
||||
// val should have type type*
|
||||
#define ceph_ctf_integerp(type, field, val) \
|
||||
- ctf_integer(type, field, (val) == NULL ? 0 : (val)) \
|
||||
+ ctf_integer(type, field, (val) == NULL ? 0 : *(val)) \
|
||||
ctf_integer(uint8_t, field##_isnull, (val) == NULL)
|
||||
|
||||
// val should have type char*
|
||||
|
||||
From a49d154f4a8e493baf2296a15c7b5c56cd25e993 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Weimer <fweimer@redhat.com>
|
||||
Date: Wed, 20 Dec 2023 14:59:19 +0100
|
||||
Subject: [PATCH 2/2] pybind: Fix C type errors in Cython-generated Python
|
||||
bindings
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Several Ceph APIs use bool * types, which correspond to
|
||||
libcpp.bool * types in Cython. The bint type has an incorrect
|
||||
size 4 and cannot be used as a replacement.
|
||||
|
||||
This prevents a compilation failure with future compilers:
|
||||
|
||||
…-build/src/pybind/rbd/rbd.c: In function ‘__pyx_pf_3rbd_3RBD_104namespace_exists’:
|
||||
…-build/src/pybind/rbd/rbd.c:42165:76: error: passing argument 3 of ‘rbd_namespace_exists’ from incompatible pointer type
|
||||
42165 | __pyx_v_ret = rbd_namespace_exists(__pyx_v__ioctx, __pyx_v__name, (&__pyx_v__exists));
|
||||
| ~^~~~~~~~~~~~~~~~~
|
||||
| |
|
||||
| int *
|
||||
In file included from …-build/src/pybind/rbd/rbd.c:1268:
|
||||
…/src/include/rbd/librbd.h:1496:45: note: expected ‘_Bool *’ but argument is of type ‘int *’
|
||||
1496 | bool *exists);
|
||||
| ^
|
||||
|
||||
Signed-off-by: Florian Weimer <fweimer@redhat.com>
|
||||
---
|
||||
src/pybind/rbd/c_rbd.pxd | 5 +++--
|
||||
src/pybind/rbd/mock_rbd.pxi | 9 +++++++--
|
||||
src/pybind/rbd/rbd.pyx | 9 +++++----
|
||||
src/pybind/rgw/mock_rgw.pxi | 9 +++++++--
|
||||
src/pybind/rgw/rgw.pyx | 3 ++-
|
||||
5 files changed, 24 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd
|
||||
index 885f7bd46abde..bda23bbc4735f 100644
|
||||
--- a/src/pybind/rbd/c_rbd.pxd
|
||||
+++ b/src/pybind/rbd/c_rbd.pxd
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
+cimport libcpp
|
||||
|
||||
cdef extern from "rados/librados.h":
|
||||
enum:
|
||||
@@ -525,7 +526,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_snap_unprotect(rbd_image_t image, const char *snap_name)
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected)
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists)
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists)
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit)
|
||||
int rbd_snap_set_limit(rbd_image_t image, uint64_t limit)
|
||||
int rbd_snap_get_timestamp(rbd_image_t image, uint64_t snap_id, timespec *timestamp)
|
||||
@@ -711,7 +712,7 @@ cdef extern from "rbd/librbd.h" nogil:
|
||||
int rbd_namespace_list(rados_ioctx_t io, char *namespace_names,
|
||||
size_t *size)
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists)
|
||||
+ libcpp.bool *exists)
|
||||
|
||||
int rbd_pool_init(rados_ioctx_t, bint force)
|
||||
|
||||
diff --git a/src/pybind/rbd/mock_rbd.pxi b/src/pybind/rbd/mock_rbd.pxi
|
||||
index 11872bd8146de..364f965fbad43 100644
|
||||
--- a/src/pybind/rbd/mock_rbd.pxi
|
||||
+++ b/src/pybind/rbd/mock_rbd.pxi
|
||||
@@ -3,6 +3,11 @@
|
||||
from libc.stdint cimport *
|
||||
from ctime cimport time_t, timespec
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
enum:
|
||||
_LIBRADOS_SNAP_HEAD "LIBRADOS_SNAP_HEAD"
|
||||
@@ -637,7 +642,7 @@ cdef nogil:
|
||||
int rbd_snap_is_protected(rbd_image_t image, const char *snap_name,
|
||||
int *is_protected):
|
||||
pass
|
||||
- int rbd_snap_exists(rbd_image_t image, const char *snapname, bint *exists):
|
||||
+ int rbd_snap_exists(rbd_image_t image, const char *snapname, libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_snap_get_limit(rbd_image_t image, uint64_t *limit):
|
||||
pass
|
||||
@@ -896,7 +901,7 @@ cdef nogil:
|
||||
size_t *size):
|
||||
pass
|
||||
int rbd_namespace_exists(rados_ioctx_t io, const char *namespace_name,
|
||||
- bint *exists):
|
||||
+ libcpp.bool *exists):
|
||||
pass
|
||||
int rbd_pool_init(rados_ioctx_t io, bint force):
|
||||
pass
|
||||
diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
|
||||
index fcb2fb3470600..f59ba23f0fe21 100644
|
||||
--- a/src/pybind/rbd/rbd.pyx
|
||||
+++ b/src/pybind/rbd/rbd.pyx
|
||||
@@ -23,6 +23,7 @@ from libc cimport errno
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from libc.string cimport strdup, memset
|
||||
+cimport libcpp
|
||||
|
||||
try:
|
||||
from collections.abc import Iterable
|
||||
@@ -1935,12 +1936,12 @@ class RBD(object):
|
||||
cdef:
|
||||
rados_ioctx_t _ioctx = convert_ioctx(ioctx)
|
||||
const char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_namespace_exists(_ioctx, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error verifying namespace')
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
def namespace_list(self, ioctx):
|
||||
"""
|
||||
@@ -3679,12 +3680,12 @@ cdef class Image(object):
|
||||
name = cstr(name, 'name')
|
||||
cdef:
|
||||
char *_name = name
|
||||
- bint _exists = False
|
||||
+ libcpp.bool _exists = False
|
||||
with nogil:
|
||||
ret = rbd_snap_exists(self.image, _name, &_exists)
|
||||
if ret != 0:
|
||||
raise make_ex(ret, 'error getting snapshot exists for %s' % self.name)
|
||||
- return bool(_exists != 0)
|
||||
+ return _exists
|
||||
|
||||
@requires_not_closed
|
||||
def get_snap_limit(self):
|
||||
diff --git a/src/pybind/rgw/mock_rgw.pxi b/src/pybind/rgw/mock_rgw.pxi
|
||||
index ca893a5bb8a16..806d4df75de05 100644
|
||||
--- a/src/pybind/rgw/mock_rgw.pxi
|
||||
+++ b/src/pybind/rgw/mock_rgw.pxi
|
||||
@@ -1,5 +1,10 @@
|
||||
# cython: embedsignature=True
|
||||
|
||||
+# Make the bool type available as libcpp.bool, for both C and C++.
|
||||
+cimport libcpp
|
||||
+cdef extern from "<stdbool.h>":
|
||||
+ pass
|
||||
+
|
||||
cdef nogil:
|
||||
ctypedef void* librgw_t
|
||||
|
||||
@@ -111,8 +116,8 @@ cdef nogil:
|
||||
|
||||
int rgw_readdir(rgw_fs *fs,
|
||||
rgw_file_handle *parent_fh, uint64_t *offset,
|
||||
- bint (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
- void *cb_arg, bint *eof, uint32_t flags) except? -9000:
|
||||
+ libcpp.bool (*cb)(const char *name, void *arg, uint64_t offset, stat *st, uint32_t st_mask, uint32_t flags) nogil except? -9000,
|
||||
+ void *cb_arg, libcpp.bool *eof, uint32_t flags) except? -9000:
|
||||
pass
|
||||
|
||||
int rgw_getattr(rgw_fs *fs,
|
||||
diff --git a/src/pybind/rgw/rgw.pyx b/src/pybind/rgw/rgw.pyx
|
||||
index 9bbcdfff586a8..d210a70bbb8e3 100644
|
||||
--- a/src/pybind/rgw/rgw.pyx
|
||||
+++ b/src/pybind/rgw/rgw.pyx
|
||||
@@ -7,6 +7,7 @@ from cpython cimport PyObject, ref, exc, array
|
||||
from libc.stdint cimport *
|
||||
from libc.stdlib cimport malloc, realloc, free
|
||||
from cstat cimport stat
|
||||
+cimport libcpp
|
||||
|
||||
IF BUILD_DOC:
|
||||
include "mock_rgw.pxi"
|
||||
@@ -373,7 +374,7 @@ cdef class LibRGWFS(object):
|
||||
cdef:
|
||||
rgw_file_handle *_dir_handler = <rgw_file_handle*>dir_handler.handler
|
||||
uint64_t _offset = offset
|
||||
- bint _eof
|
||||
+ libcpp.bool _eof
|
||||
uint32_t _flags = flags
|
||||
with nogil:
|
||||
ret = rgw_readdir(self.fs, _dir_handler, &_offset, &readdir_cb,
|
||||
@ -1,141 +0,0 @@
|
||||
From 0eace4ea9ea42412d4d6a16d24a8660642e41173 Mon Sep 17 00:00:00 2001
|
||||
From: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
||||
Date: Wed, 24 Jan 2024 17:22:44 +0000
|
||||
Subject: [PATCH] common/dout: fix FTBFS on GCC 14
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The following problem has been reported by Kaleb Keithley:
|
||||
|
||||
```
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/osd/osd_types.h: In lambda function:
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/common/dout.h:184:73: error: call to non-‘constexpr’ function ‘virtual unsigned int DoutPrefixProvider::get_subsys() const’
|
||||
184 | dout_impl(pdpp->get_cct(), ceph::dout::need_dynamic(pdpp->get_subsys()), v) \
|
||||
| ~~~~~~~~~~~~~~~~^~
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/common/dout.h:155:58: note: in definition of macro ‘dout_impl’
|
||||
155 | return (cctX->_conf->subsys.template should_gather<sub, v>()); \
|
||||
| ^~~
|
||||
/builddir/build/BUILD/ceph-18.2.1/src/osd/osd_types.h:3617:3: note: in expansion of macro ‘ldpp_dout’
|
||||
3617 | ldpp_dout(dpp, 10) << "build_prior all_probe " << all_probe << dendl;
|
||||
| ^~~~~~~~~
|
||||
```
|
||||
|
||||
For details of the problem and the idea behind the fix,
|
||||
please refer to the comment this commit brings to `dout.h`.
|
||||
|
||||
The minimized replicator that the facilitated Goldbot-based
|
||||
investigation:
|
||||
|
||||
```cpp
|
||||
namespace ceph::dout {
|
||||
|
||||
template<typename T>
|
||||
struct dynamic_marker_t {
|
||||
T value;
|
||||
// constexpr ctor isn't needed as it's an aggregate type
|
||||
constexpr operator T() const { return value; }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
constexpr dynamic_marker_t<T> need_dynamic(T&& t) {
|
||||
return dynamic_marker_t<T>{ std::forward<T>(t) };
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
struct is_dynamic : public std::false_type {};
|
||||
|
||||
template<typename T>
|
||||
struct is_dynamic<dynamic_marker_t<T>> : public std::true_type {};
|
||||
|
||||
} // ceph::dout
|
||||
|
||||
struct subsys_t {
|
||||
template <unsigned SubV, int LvlV>
|
||||
bool should_gather() const {
|
||||
return true;
|
||||
}
|
||||
bool should_gather(const unsigned sub, int level) const {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
static subsys_t subsys;
|
||||
|
||||
do { \
|
||||
const bool should_gather = [&](const auto cctX) { \
|
||||
if constexpr (ceph::dout::is_dynamic<decltype(sub)>::value || \
|
||||
ceph::dout::is_dynamic<decltype(v)>::value) { \
|
||||
std::cout << "the dynamic path" << std::endl; \
|
||||
return subsys.should_gather(sub, v); \
|
||||
} else { \
|
||||
/* The parentheses are **essential** because commas in angle \
|
||||
* brackets are NOT ignored on macro expansion! A language's \
|
||||
* limitation, sorry. */ \
|
||||
std::cout << "the static path" << std::endl; \
|
||||
/*return subsys.should_gather(sub, v);*/ \
|
||||
return (subsys.template should_gather<sub, v>()); \
|
||||
} \
|
||||
}(cct); \
|
||||
} while (0)
|
||||
|
||||
if (decltype(auto) pdpp = (dpp); pdpp) /* workaround -Wnonnull-compare for 'this' */ \
|
||||
dout_impl(42, sub, v)
|
||||
|
||||
if (decltype(auto) pdpp = (dpp); pdpp) /* workaround -Wnonnull-compare for 'this' */ \
|
||||
dout_impl(42, ceph::dout::need_dynamic(42), v)
|
||||
|
||||
int main() {
|
||||
std::random_device dev;
|
||||
std::mt19937 rng(dev());
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist6(1,6); // distribution in range [1, 6]
|
||||
|
||||
int sub = dist6(rng);
|
||||
ldpp_dout("mocked out", sub);
|
||||
//ldpp_subdout("mocked out", 4, 3);
|
||||
}
|
||||
```
|
||||
|
||||
Fixes: https://tracker.ceph.com/issues/64050
|
||||
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
|
||||
---
|
||||
src/common/dout.h | 20 +++++++++++++++-----
|
||||
1 file changed, 15 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/common/dout.h b/src/common/dout.h
|
||||
index 4cd60efff8fef..6516060c5438e 100644
|
||||
--- a/src/common/dout.h
|
||||
+++ b/src/common/dout.h
|
||||
@@ -144,17 +144,27 @@ struct is_dynamic<dynamic_marker_t<T>> : public std::true_type {};
|
||||
#else
|
||||
#define dout_impl(cct, sub, v) \
|
||||
do { \
|
||||
- const bool should_gather = [&](const auto cctX) { \
|
||||
- if constexpr (ceph::dout::is_dynamic<decltype(sub)>::value || \
|
||||
- ceph::dout::is_dynamic<decltype(v)>::value) { \
|
||||
+ const bool should_gather = [&](const auto cctX, auto sub_, auto v_) { \
|
||||
+ /* The check is performed on `sub_` and `v_` to leverage the C++'s \
|
||||
+ * guarantee on _discarding_ one of blocks of `if constexpr`, which \
|
||||
+ * includes also the checks for ill-formed code (`should_gather<>` \
|
||||
+ * must not be feed with non-const expresions), BUT ONLY within \
|
||||
+ * a template (thus the generic lambda) and under the restriction \
|
||||
+ * it's dependant on a parameter of this template). \
|
||||
+ * GCC prior to v14 was not enforcing these restrictions. */ \
|
||||
+ if constexpr (ceph::dout::is_dynamic<decltype(sub_)>::value || \
|
||||
+ ceph::dout::is_dynamic<decltype(v_)>::value) { \
|
||||
return cctX->_conf->subsys.should_gather(sub, v); \
|
||||
} else { \
|
||||
+ constexpr auto sub_helper = static_cast<decltype(sub_)>(sub); \
|
||||
+ constexpr auto v_helper = static_cast<decltype(v_)>(v); \
|
||||
/* The parentheses are **essential** because commas in angle \
|
||||
* brackets are NOT ignored on macro expansion! A language's \
|
||||
* limitation, sorry. */ \
|
||||
- return (cctX->_conf->subsys.template should_gather<sub, v>()); \
|
||||
+ return (cctX->_conf->subsys.template should_gather<sub_helper, \
|
||||
+ v_helper>()); \
|
||||
} \
|
||||
- }(cct); \
|
||||
+ }(cct, sub, v); \
|
||||
\
|
||||
if (should_gather) { \
|
||||
ceph::logging::MutableEntry _dout_e(v, sub); \
|
||||
@ -1,13 +0,0 @@
|
||||
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
|
||||
index 1d793fb442e..89e4d40c282 100644
|
||||
--- a/cmake/modules/BuildBoost.cmake
|
||||
+++ b/cmake/modules/BuildBoost.cmake
|
||||
@@ -108,7 +108,7 @@ function(do_build_boost root_dir version)
|
||||
"using ${toolset}"
|
||||
" : "
|
||||
" : ${CMAKE_CXX_COMPILER}"
|
||||
- " : <compileflags>-fPIC <compileflags>-w <compileflags>-Wno-everything"
|
||||
+ " : <compileflags>-fPIC <compileflags>-w "
|
||||
" ;\n")
|
||||
if(with_python_version)
|
||||
find_package(Python3 ${with_python_version} QUIET REQUIRED
|
||||
@ -1,19 +0,0 @@
|
||||
diff --git a/src/boost/libs/python/src/numpy/dtype.cpp b/src/boost/libs/python/src/numpy/dtype.cpp
|
||||
index 88a20a27b5..da30d1927b 100644
|
||||
--- a/src/boost/libs/python/src/numpy/dtype.cpp
|
||||
+++ b/src/boost/libs/python/src/numpy/dtype.cpp
|
||||
@@ -98,7 +98,13 @@ python::detail::new_reference dtype::convert(object const & arg, bool align)
|
||||
return python::detail::new_reference(reinterpret_cast<PyObject*>(obj));
|
||||
}
|
||||
|
||||
-int dtype::get_itemsize() const { return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;}
|
||||
+int dtype::get_itemsize() const {
|
||||
+#if NPY_ABI_VERSION < 0x02000000
|
||||
+ return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;
|
||||
+#else
|
||||
+ return PyDataType_ELSIZE(reinterpret_cast<PyArray_Descr*>(ptr()));
|
||||
+#endif
|
||||
+}
|
||||
|
||||
bool equivalent(dtype const & a, dtype const & b) {
|
||||
// On Windows x64, the behaviour described on
|
||||
Loading…
x
Reference in New Issue
Block a user