Compare commits

..

22 Commits

Author SHA1 Message Date
Boris Ranto 94b937a7b4 New version (1:0.94.7-1)
- Disable erasure_codelib neon build
- init-ceph.in: Allow custom cluster names during startup.
- Apply 'ceph-0.94.1-tcmalloc.patch'
- Apply 'init-ceph.in-fedora.patch'
2016-05-16 15:54:25 +02:00
Boris Ranto 109b076cb0 Rebase to version 0.94.6 2016-02-23 20:19:04 +01:00
Boris Ranto 3bd965f1b9 Allow setting custom cluster names in init script
Also, remove unused patch file.

Resolves: rhbz#1269436
2015-12-09 13:50:04 +01:00
Boris Ranto 5d0f0722ed Rebase to latest upstream version (0.94.5) 2015-10-27 16:06:00 +01:00
Boris Ranto c5765fadbd Post-rebase fix-up
The init-radosgw.sysv file was renamed to init-radosgw file in 0.94.4.
2015-10-20 14:50:41 +02:00
Boris Ranto a402d0ab0e Rebase to latest upstream version (0.94.4)
The rtdsc patch got merged upstream and is already present in the release
2015-10-20 14:50:33 +02:00
Jonathan Wakely f07c72f3c4 Rebuilt for Boost 1.59 2015-10-20 14:50:23 +02:00
Boris Ranto b08d960589 Fix file list after rebase
Resolves: rhbz#1257374
2015-08-28 09:44:37 +02:00
Boris Ranto db6fdb3f16 Rebase to latest upstream version (0.94.3)
Resolves: rhbz#1257374
2015-08-27 14:29:43 +02:00
Richard W.M. Jones 99c1224b45 Fix build against boost 1.58 (http://tracker.ceph.com/issues/11576). 2015-08-27 14:29:37 +02:00
Dennis Gilmore b16dca6d95 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 2015-08-27 14:29:28 +02:00
David Tardon b8472782c8 rebuild for Boost 1.58 2015-08-27 14:29:12 +02:00
Boris Ranto 62e994c2c7 Rebase to latest upstream version (0.94.2)
Resolves: rhbz#1229924
2015-07-16 14:22:44 +02:00
Dennis Gilmore 155d784b79 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-07-16 14:22:36 +02:00
Dan Horák b19b3aa9da - fix build on s390(x) - no gperftools there 2015-06-08 17:43:38 +02:00
Boris Ranto b12af0ad46 Disable lttng support
Resolves: rhbz#1223319
2015-05-21 11:05:07 +02:00
Boris Ranto af0a1d434b Fix arm linking issue
Resolves: rhbz#1222286
2015-05-18 20:35:31 +02:00
Boris Ranto f5efd94d7b Fix arm compilation issues 2015-04-16 13:09:24 +02:00
Boris Ranto b1fc920eb9 Rebase to latest upstream (0.94.1) and sync-up spec file 2015-04-15 11:41:56 +02:00
Ken Dreyer 48fd62dda4 add version numbers to Obsoletes
The ceph-devel and python-ceph packages were split out, but there were
no version numbers added to the Obsoletes during the split.

This means that we obsolete packages that are far newer than us. This
impacts packages coming from upstream's "gitbuilder" system (for
example), as well as any other upstream RPMs until this package split is
done upstream.

Add version numbers to the Obsoletes. I've chosen to use a
version+release number that's lower than what we currently ship in
Fedora (0.87-1), but newer than what we shipped in the last Fedora
update (0.80.6-1).
2015-04-14 17:11:34 +02:00
Boris Ranto 085130783d Fix several issues with spec file
- Perform a hardened build
- Use git-formatted patches
- Add patch for pthreads rwlock unlock problem
- Do not remove conf files on uninstall
- Remove the cleanup function, it is only necessary for f20 and f21
2015-03-04 16:12:18 +01:00
Boris Ranto aece707d1a Rebase to 0.87.1 2015-03-02 13:22:46 +01:00
31 changed files with 1026 additions and 3915 deletions
@@ -0,0 +1,29 @@
From 8ac49f54ad774324c1de344cd18620df7fa52256 Mon Sep 17 00:00:00 2001
From: Boris Ranto <branto@redhat.com>
Date: Wed, 15 Apr 2015 14:06:24 +0200
Subject: [PATCH] Disable erasure_codelib neon build
---
src/erasure-code/jerasure/Makefile.am | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am
index 9ca4fbb..147d57e 100644
--- a/src/erasure-code/jerasure/Makefile.am
+++ b/src/erasure-code/jerasure/Makefile.am
@@ -75,9 +75,9 @@ if LINUX
libec_jerasure_neon_la_LDFLAGS += -export-symbols-regex '.*__erasure_code_.*'
endif
-if HAVE_NEON
-erasure_codelib_LTLIBRARIES += libec_jerasure_neon.la
-endif
+#if HAVE_NEON
+#erasure_codelib_LTLIBRARIES += libec_jerasure_neon.la
+#endif
libec_jerasure_sse3_la_SOURCES = ${jerasure_sources}
libec_jerasure_sse3_la_CFLAGS = ${AM_CFLAGS} \
--
2.5.5
-55
View File
@@ -1,55 +0,0 @@
--- ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s.orig 2020-05-26 08:34:32.226201974 -0400
+++ ceph-15.2.2/src/common/crc32c_intel_fast_zero_asm.s 2020-05-26 17:19:32.497201974 -0400
@@ -1,5 +1,5 @@
;
-; Copyright 2012-2013 Intel Corporation All Rights Reserved.
+; Copyright 2012-2015 Intel Corporation All Rights Reserved.
; All rights reserved.
;
; http://opensource.org/licenses/BSD-3-Clause
@@ -59,6 +59,19 @@
xor rbx, rbx ;; rbx = crc1 = 0;
xor r10, r10 ;; r10 = crc2 = 0;
+ cmp len, %%bSize*3*2
+ jbe %%non_prefetch
+
+ %assign i 0
+ %rep %%bSize/8 - 1
+ crc32 rax, bufptmp ;; update crc0
+ crc32 rbx, bufptmp ;; update crc1
+ crc32 r10, bufptmp ;; update crc2
+ %assign i (i+8)
+ %endrep
+ jmp %%next %+ %1
+
+%%non_prefetch:
%assign i 0
%rep %%bSize/8 - 1
crc32 rax, bufptmp ;; update crc0
@@ -66,6 +79,8 @@
crc32 r10, bufptmp ;; update crc2
%assign i (i+8)
%endrep
+
+%%next %+ %1:
crc32 rax, bufptmp ;; update crc0
crc32 rbx, bufptmp ;; update crc1
; SKIP ;crc32 r10, bufptmp ;; update crc2
@@ -180,12 +195,15 @@
%define crc_init_dw r8d
%endif
-
+ endbranch
push rdi
push rbx
mov rax, crc_init ;; rax = crc_init;
+ cmp len, 8
+ jb less_than_8
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 1) ALIGN: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -0,0 +1,37 @@
From 726127dbd6d51c97495e73c3216c27dd38a31ed3 Mon Sep 17 00:00:00 2001
From: Anthony Alba <ascanio.alba7@gmail.com>
Date: Mon, 30 Nov 2015 16:44:31 +0800
Subject: [PATCH] init-ceph.in: Allow custom cluster names during startup.
Signed-off-by: Richard Chan <richard@treeboxsolutions.com>
---
src/init-ceph.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/init-ceph.in b/src/init-ceph.in
index e4cea7e..1f19ffa 100644
--- a/src/init-ceph.in
+++ b/src/init-ceph.in
@@ -288,7 +288,7 @@ for name in $what; do
lockfile=""
fi
- get_conf asok "$run_dir/ceph-$type.$id.asok" "admin socket"
+ get_conf asok "$run_dir/$cluster-$type.$id.asok" "admin socket"
case "$command" in
start)
@@ -404,8 +404,8 @@ for name in $what; do
# these keys. it's also true for legacy installs
# via mkcephfs, which is fine too; there is no harm
# in creating these keys.
- get_conf mon_data "/var/lib/ceph/mon/ceph-$id" "mon data"
- if [ "$mon_data" = "/var/lib/ceph/mon/ceph-$id" -a "$asok" = "/var/run/ceph/ceph-mon.$id.asok" ]; then
+ get_conf mon_data "/var/lib/ceph/mon/$cluster-$id" "mon data"
+ if [ "$mon_data" = "/var/lib/ceph/mon/$cluster-$id" -a "$asok" = "/var/run/ceph/$cluster-mon.$id.asok" ]; then
echo Starting ceph-create-keys on $host...
cmd2="$SBINDIR/ceph-create-keys --cluster $cluster -i $id 2> /dev/null &"
do_cmd "$cmd2"
--
2.5.5
@@ -0,0 +1,26 @@
From ebff005e9998122c9e89052fbca06f4962180240 Mon Sep 17 00:00:00 2001
From: Boris Ranto <branto@redhat.com>
Date: Mon, 16 May 2016 15:47:20 +0200
Subject: [PATCH] Apply 'ceph-0.94.1-tcmalloc.patch'
Signed-off-by: Boris Ranto <branto@redhat.com>
---
src/rocksdb/configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/rocksdb/configure.ac b/src/rocksdb/configure.ac
index 855c6a8..fe914aa 100644
--- a/src/rocksdb/configure.ac
+++ b/src/rocksdb/configure.ac
@@ -19,7 +19,7 @@ AC_CHECK_LIB([snappy], [snappy_compress], [HAVE_LIBSNAPPY=yes], [AC_MSG_FAILURE(
AC_CHECK_LIB([z], [gzread], [HAVE_LIBZ=yes], [AC_MSG_FAILURE([libz not found])])
AC_CHECK_LIB([bz2], [BZ2_bzCompressInit], [HAVE_LIBBZ2=yes], [AC_MSG_FAILURE([libbz2 not found])])
AC_CHECK_LIB([rt], [clock_gettime], [HAVE_LIBRT=yes], [AC_MSG_FAILURE([librt not found])])
-AC_CHECK_LIB([tcmalloc], [malloc], [HAVE_LIBTCMALLOC=yes],[AC_MSG_FAILURE([no tcmalloc found ])])
+AC_CHECK_LIB([tcmalloc], [malloc], [HAVE_LIBTCMALLOC=yes],[AC_MSG_RESULT([no tcmalloc found ])])
OLD_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -std=c++11"
--
2.5.5
-10
View File
@@ -1,10 +0,0 @@
--- ceph-15.1.0/src/common/bit_str.h.orig 2020-02-03 09:47:20.047149798 -0500
+++ ceph-15.1.0/src/common/bit_str.h 2020-02-03 09:47:50.213149798 -0500
@@ -17,6 +17,7 @@
#include <cstdint>
#include <iosfwd>
#include <functional>
+#include <ostream>
namespace ceph {
class Formatter;
@@ -0,0 +1,32 @@
From ecc0e801e378310dbb0e60ae7eb1f19179bd3e9e Mon Sep 17 00:00:00 2001
From: Boris Ranto <branto@redhat.com>
Date: Mon, 16 May 2016 15:48:23 +0200
Subject: [PATCH] Apply 'init-ceph.in-fedora.patch'
Signed-off-by: Boris Ranto <branto@redhat.com>
---
src/init-ceph.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/init-ceph.in b/src/init-ceph.in
index 1f19ffa..78eaf97 100644
--- a/src/init-ceph.in
+++ b/src/init-ceph.in
@@ -1,11 +1,11 @@
#!/bin/sh
# Start/stop ceph daemons
-# chkconfig: 2345 60 80
+# chkconfig: - 60 80
### BEGIN INIT INFO
# Provides: ceph
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
+# Default-Start:
+# Default-Stop:
# Required-Start: $remote_fs $named $network $time
# Required-Stop: $remote_fs $named $network $time
# Short-Description: Start Ceph distributed file system daemons at boot time
--
2.5.5
-11
View File
@@ -1,11 +0,0 @@
--- ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake.orig 2021-02-01 08:45:39.316108287 -0500
+++ ceph-16.1.0-43-g6b74fb5c/cmake/modules/Finduring.cmake 2021-02-01 08:45:59.813665378 -0500
@@ -5,7 +5,7 @@
# uring_FOUND - True if uring found.
find_path(URING_INCLUDE_DIR liburing.h)
-find_library(URING_LIBRARIES liburing.a liburing)
+find_library(URING_LIBRARIES liburing.so liburing)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
@@ -1,27 +0,0 @@
From 1999108aeb1f6f93a19ea7bb64c6ae8b87d1b264 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:33:13 -0800
Subject: [PATCH] CET: Add CET marker to crc32c_intel_fast_zero_asm.s
Add .note.gnu.property section to crc32c_intel_fast_zero_asm.s to mark
for IBT and SHSTK compatibility.
---
src/common/crc32c_intel_fast_zero_asm.s | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/common/crc32c_intel_fast_zero_asm.s b/src/common/crc32c_intel_fast_zero_asm.s
index 216ecf639f3..2e291d858f3 100644
--- a/src/common/crc32c_intel_fast_zero_asm.s
+++ b/src/common/crc32c_intel_fast_zero_asm.s
@@ -654,4 +654,8 @@ slversion crc32_iscsi_zero_00, 00, 02, 0014
%ifidn __OUTPUT_FORMAT__, elf64
; inform linker that this doesn't require executable stack
section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
%endif
--
2.34.1
@@ -1,172 +0,0 @@
From bbcc1a69f787881f16156f3c789052942a564103 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:35:49 -0800
Subject: [PATCH] isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
for IBT and SHSTK compatibility.
---
crc/crc32_gzip_refl_by16_10.asm | 9 +++++++++
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
crc/crc32_gzip_refl_by8_02.asm | 9 +++++++++
crc/crc32_ieee_01.asm | 8 ++++++++
crc/crc32_ieee_02.asm | 9 +++++++++
crc/crc32_ieee_by16_10.asm | 9 +++++++++
crc/crc32_ieee_by4.asm | 9 +++++++++
crc/crc32_iscsi_00.asm | 8 ++++++++
crc/crc32_iscsi_01.asm | 8 ++++++++
9 files changed, 78 insertions(+)
diff --git a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
index 40236f6..b16874d 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by16_10.asm
@@ -566,3 +566,12 @@ global no_ %+ FUNCTION_NAME
no_ %+ FUNCTION_NAME %+ :
%endif
%endif ; (AS_FEATURE_LEVEL) >= 10
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8.asm b/src/isa-l/crc/crc32_gzip_refl_by8.asm
index 62f7e7d..97b0c4a 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by8.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by8.asm
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_gzip_refl_by8, 01, 00, 002c
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
index 80d849e..1d5a75f 100644
--- a/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
+++ b/src/isa-l/crc/crc32_gzip_refl_by8_02.asm
@@ -553,3 +553,12 @@ pshufb_shf_table:
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
dq 0x0706050403020100, 0x000e0d0c0b0a0908
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_01.asm b/src/isa-l/crc/crc32_ieee_01.asm
index 32495ed..cfc443b 100644
--- a/src/isa-l/crc/crc32_ieee_01.asm
+++ b/src/isa-l/crc/crc32_ieee_01.asm
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_ieee_01, 01, 06, 0011
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_02.asm b/src/isa-l/crc/crc32_ieee_02.asm
index 8a472b0..dd7096a 100644
--- a/src/isa-l/crc/crc32_ieee_02.asm
+++ b/src/isa-l/crc/crc32_ieee_02.asm
@@ -649,3 +649,12 @@ pshufb_shf_table:
; dq 0x060504030201008f, 0x0e0d0c0b0a090807 ; shl 1 (16-15) / shr15
dq 0x8786858483828100, 0x8f8e8d8c8b8a8988
dq 0x0706050403020100, 0x000e0d0c0b0a0908
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_by16_10.asm b/src/isa-l/crc/crc32_ieee_by16_10.asm
index 200fd93..2afd597 100644
--- a/src/isa-l/crc/crc32_ieee_by16_10.asm
+++ b/src/isa-l/crc/crc32_ieee_by16_10.asm
@@ -582,3 +582,12 @@ global no_ %+ FUNCTION_NAME
no_ %+ FUNCTION_NAME %+ :
%endif
%endif ; (AS_FEATURE_LEVEL) >= 10
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_ieee_by4.asm b/src/isa-l/crc/crc32_ieee_by4.asm
index 39bed5a..847d0bd 100644
--- a/src/isa-l/crc/crc32_ieee_by4.asm
+++ b/src/isa-l/crc/crc32_ieee_by4.asm
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
;;; func core, ver, snum
slversion crc32_ieee_by4, 05, 02, 0017
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_iscsi_00.asm b/src/isa-l/crc/crc32_iscsi_00.asm
index 4f81e3a..3d6b2d1 100644
--- a/src/isa-l/crc/crc32_iscsi_00.asm
+++ b/src/isa-l/crc/crc32_iscsi_00.asm
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
;;; func core, ver, snum
slversion crc32_iscsi_00, 00, 04, 0014
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/isa-l/crc/crc32_iscsi_01.asm b/src/isa-l/crc/crc32_iscsi_01.asm
index 2a81517..c048413 100644
--- a/src/isa-l/crc/crc32_iscsi_01.asm
+++ b/src/isa-l/crc/crc32_iscsi_01.asm
@@ -588,3 +588,11 @@ K_table:
;;; func core, ver, snum
slversion crc32_iscsi_01, 01, 04, 0015
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
--
2.34.1
@@ -1,100 +0,0 @@
From 72e6d27e08c86c16e8931739a5e6ecbc06b102d5 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Thu, 20 Jan 2022 05:40:56 -0800
Subject: [PATCH] spdk/isa-l/CET: Add CET marker to x86-64 crc32 assembly codes
Add .note.gnu.property section to x86-64 crc32 assembly codes to mark
for IBT and SHSTK compatibility.
---
crc/crc32_gzip_refl_by8.asm | 9 +++++++++
crc/crc32_ieee_01.asm | 8 ++++++++
crc/crc32_ieee_by4.asm | 9 +++++++++
crc/crc32_iscsi_00.asm | 8 ++++++++
crc/crc32_iscsi_01.asm | 8 ++++++++
5 files changed, 42 insertions(+)
diff --git a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
index 62f7e7d..97b0c4a 100644
--- a/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
+++ b/src/spdk/isa-l/crc/crc32_gzip_refl_by8.asm
@@ -622,3 +622,12 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_gzip_refl_by8, 01, 00, 002c
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_ieee_01.asm b/src/spdk/isa-l/crc/crc32_ieee_01.asm
index 32495ed..cfc443b 100644
--- a/src/spdk/isa-l/crc/crc32_ieee_01.asm
+++ b/src/spdk/isa-l/crc/crc32_ieee_01.asm
@@ -653,3 +653,11 @@ dq 0x0706050403020100, 0x000e0d0c0b0a0908
;;; func core, ver, snum
slversion crc32_ieee_01, 01, 06, 0011
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_ieee_by4.asm b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
index 39bed5a..847d0bd 100644
--- a/src/spdk/isa-l/crc/crc32_ieee_by4.asm
+++ b/src/spdk/isa-l/crc/crc32_ieee_by4.asm
@@ -563,3 +563,12 @@ SHUF_MASK dq 0x08090A0B0C0D0E0F, 0x0001020304050607
;;; func core, ver, snum
slversion crc32_ieee_by4, 05, 02, 0017
+
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_00.asm b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
index 4f81e3a..3d6b2d1 100644
--- a/src/spdk/isa-l/crc/crc32_iscsi_00.asm
+++ b/src/spdk/isa-l/crc/crc32_iscsi_00.asm
@@ -669,3 +669,11 @@ DD 0x54851c7f,0x89e3d7c4,0xeba4fdf8,0x36c23643
;;; func core, ver, snum
slversion crc32_iscsi_00, 00, 04, 0014
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
diff --git a/src/spdk/isa-l/crc/crc32_iscsi_01.asm b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
index 2a81517..c048413 100644
--- a/src/spdk/isa-l/crc/crc32_iscsi_01.asm
+++ b/src/spdk/isa-l/crc/crc32_iscsi_01.asm
@@ -588,3 +588,11 @@ K_table:
;;; func core, ver, snum
slversion crc32_iscsi_01, 01, 04, 0015
+%ifidn __OUTPUT_FORMAT__, elf64
+; inform linker that this doesn't require executable stack
+section .note.GNU-stack noalloc noexec nowrite progbits
+; inform linker that this is compatible with IBT and SHSTK
+section .note.gnu.property note alloc noexec align=8
+DD 0x00000004,0x00000010,0x00000005,0x00554e47
+DD 0xc0000002,0x00000004,0x00000003,0x00000000
+%endif
--
2.34.1
-23
View File
@@ -1,23 +0,0 @@
--- ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp.orig 2021-12-07 08:02:04.682972474 -0500
+++ ceph-16.2.6-681-gfdc003bc/src/tracing/bluestore.tp 2021-12-07 08:03:13.840771852 -0500
@@ -1,3 +1,9 @@
+
+#ifdef __x86_64__
+#undef STAP_SDT_ARG_CONSTRAINT
+#define STAP_SDT_ARG_CONSTRAINT norx
+#endif
+
#include "include/int_types.h"
TRACEPOINT_EVENT(bluestore, transaction_state_duration,
--- ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp.orig 2021-12-07 09:50:16.467579483 -0500
+++ ceph-16.2.6-681-gfdc003bc/src/tracing/librbd.tp 2021-12-07 09:50:47.620026940 -0500
@@ -1,3 +1,8 @@
+#ifdef __x86_64__
+#undef STAP_SDT_ARG_CONSTRAINT
+#define STAP_SDT_ARG_CONSTRAINT norx
+#endif
+
#include "tracing/tracing-common.h"
#include "include/rbd/librbd.h"
#include "include/int_types.h"
-42
View File
@@ -1,42 +0,0 @@
--- ceph-16.2.7/src/common/LogEntry.cc.orig 2022-01-17 13:52:10.799134159 -0500
+++ ceph-16.2.7/src/common/LogEntry.cc 2022-01-17 13:52:47.244469274 -0500
@@ -183,7 +183,7 @@
return "crit";
default:
ceph_abort();
- return 0;
+ return "";
}
}
--- ceph-16.2.7/src/test/librados/tier_cxx.cc.orig 2022-01-19 09:30:47.209459506 -0500
+++ ceph-16.2.7/src/test/librados/tier_cxx.cc 2022-01-19 10:02:47.783240298 -0500
@@ -120,7 +120,7 @@
}
void check_fp_oid_refcount(librados::IoCtx& ioctx, std::string foid, uint64_t count,
- std::string fp_algo = NULL)
+ std::string fp_algo = "")
{
bufferlist t;
int size = foid.length();
@@ -148,7 +148,7 @@
ASSERT_LE(count, refs.count());
}
-string get_fp_oid(string oid, std::string fp_algo = NULL)
+string get_fp_oid(string oid, std::string fp_algo = "")
{
if (fp_algo == "sha1") {
unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE + 1];
--- ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h.orig 2022-02-11 17:21:40.268627997 -0500
+++ ceph-17.0.0-10335-gfd206722/src/s3select/include/s3select_functions.h 2022-02-11 17:21:57.155325437 -0500
@@ -466,7 +466,7 @@
std::string print(int ident) override
{
- return std::string(0);
+ return std::string("");
}
void push_argument(base_statement* arg)
@@ -1,19 +0,0 @@
--- ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt.orig 2023-05-10 08:23:50.000000000 -0400
+++ ceph-18.0.0-3078-gc4847bf8/src/rgw/driver/dbstore/CMakeLists.txt 2023-05-11 08:21:13.794152904 -0400
@@ -24,7 +24,7 @@
dbstore_mgr.cc
)
-add_library(dbstore_lib ${dbstore_srcs})
+add_library(dbstore_lib STATIC ${dbstore_srcs})
target_include_directories(dbstore_lib
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"
@@ -49,6 +49,7 @@
# add pthread library
set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} pthread)
+set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} global)
find_package(gtest QUIET)
if(WITH_TESTS)
@@ -1,11 +0,0 @@
--- ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake.orig 2022-04-08 11:27:53.593570634 -0400
+++ ceph-17.1.0-175-g086c8f84/src/arrow/cpp/cmake_modules/ThirdpartyToolchain.cmake 2022-04-08 11:28:20.778087653 -0400
@@ -1991,7 +1991,7 @@
if((NOT ARROW_SIMD_LEVEL STREQUAL "NONE") OR (NOT ARROW_RUNTIME_SIMD_LEVEL STREQUAL "NONE"
))
- set(xsimd_SOURCE "BUNDLED")
+ set(xsimd_SOURCE "SYSTEM")
resolve_dependency(xsimd)
# TODO: Don't use global includes but rather target_include_directories
include_directories(SYSTEM ${XSIMD_INCLUDE_DIR})
-42
View File
@@ -1,42 +0,0 @@
--- ceph-18.1.2/src/common/subsys_types.h.orig 2023-06-27 15:59:59.000000000 -0400
+++ ceph-18.1.2/src/common/subsys_types.h 2023-07-04 19:36:55.941238973 -0400
@@ -54,7 +54,7 @@
#undef DEFAULT_SUBSYS
}
-constexpr static std::uint8_t
+constexpr static uint8_t
ceph_subsys_get_max_default_level(const std::size_t subidx) {
const auto item = ceph_subsys_get_as_array()[subidx];
return std::max(item.log_level, item.gather_level);
--- ceph-18.1.2/src/msg/async/crypto_onwire.h.orig 2023-06-27 15:59:59.000000000 -0400
+++ ceph-18.1.2/src/msg/async/crypto_onwire.h 2023-07-04 19:36:55.957238704 -0400
@@ -95,7 +95,7 @@
// Transmitter can append extra bytes of ciphertext at the -final step.
// This method return how much was added, and thus let client translate
// plaintext size into ciphertext size to grab from wire.
- virtual std::uint32_t get_extra_size_at_final() = 0;
+ virtual uint32_t get_extra_size_at_final() = 0;
// Instance of RxHandler must be reset before doing any decrypt-update
// step. This applies also to situation when decrypt-final was already
--- ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h.orig 2023-05-24 15:55:23.000000000 -0400
+++ ceph-18.1.2/src/rocksdb/table/block_based/data_block_hash_index.h 2023-07-04 19:36:55.971238469 -0400
@@ -8,6 +8,7 @@
#include <cstdint>
#include <string>
#include <vector>
+#include <cstdint>
#include "rocksdb/slice.h"
--- ceph-18.1.2/src/rocksdb/util/string_util.h.orig 2023-05-24 15:55:23.000000000 -0400
+++ ceph-18.1.2/src/rocksdb/util/string_util.h 2023-07-04 19:36:55.991238133 -0400
@@ -11,6 +11,7 @@
#include <string>
#include <unordered_map>
#include <vector>
+#include <cstdint>
#include "rocksdb/rocksdb_namespace.h"
@@ -1,32 +0,0 @@
--- ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h.orig 2023-01-18 16:35:03.398700052 -0500
+++ ceph-18.0.0-1810-g728e8ac0/src/osd/scrubber/scrub_backend.h 2023-01-18 16:37:55.882677965 -0500
@@ -183,20 +183,20 @@
// note: 'if' chain, as hard to consistently (on all compilers) avoid some
// warnings for a switch plus multiple return paths
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_usable) {
- return format_to(ctx.out(),
- "{{shard-not-usable:{}}}",
- as_auth.error_text);
+ return fmt::format_to(ctx.out(),
+ "{{shard-not-usable:{}}}",
+ as_auth.error_text.c_str());
}
if (as_auth.possible_auth == shard_as_auth_t::usable_t::not_found) {
- return format_to(ctx.out(), "{{shard-not-found}}");
+ return fmt::format_to(ctx.out(), "{{shard-not-found}}");
}
- return format_to(ctx.out(),
- "{{shard-usable: soid:{} {{txt:{}}} }}",
- as_auth.oi.soid,
- as_auth.error_text);
+ return fmt::format_to(ctx.out(),
+ "{{shard-usable: soid:{} {{txt:{}}} }}",
+ as_auth.oi.soid,
+ as_auth.error_text.c_str());
} else {
- return format_to(
+ return fmt::format_to(
ctx.out(),
"usable:{} soid:{} {{txt:{}}}",
(as_auth.possible_auth == shard_as_auth_t::usable_t::usable) ? "yes"
@@ -1,199 +0,0 @@
--- ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc.orig 2023-02-08 16:01:53.800709761 -0500
+++ ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc 2023-02-11 05:06:14.954254050 -0500
@@ -507,11 +507,11 @@
}
}
- dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {}",
+ dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {:p}",
__func__,
ret_auth.auth_shard,
ho,
- ret_auth.auth_oi)
+ (void*)&ret_auth.auth_oi)
<< dendl;
return ret_auth;
@@ -1171,23 +1171,23 @@
if (auth.digest_present && candidate.digest_present &&
auth.digest != candidate.digest) {
- format_to(std::back_inserter(out),
- "data_digest {:#x} != data_digest {:#x} from shard {}",
- candidate.digest,
- auth.digest,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "data_digest {:#x} != data_digest {:#x} from shard {}",
+ candidate.digest,
+ auth.digest,
+ auth_shard);
error = true;
obj_result.set_data_digest_mismatch();
}
if (auth.omap_digest_present && candidate.omap_digest_present &&
auth.omap_digest != candidate.omap_digest) {
- format_to(std::back_inserter(out),
- "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
- sep(error),
- candidate.omap_digest,
- auth.omap_digest,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
+ sep(error),
+ candidate.omap_digest,
+ auth.omap_digest,
+ auth_shard);
obj_result.set_omap_digest_mismatch();
}
@@ -1195,24 +1195,24 @@
if (m_is_replicated) {
if (auth_oi.is_data_digest() && candidate.digest_present &&
auth_oi.data_digest != candidate.digest) {
- format_to(std::back_inserter(out),
- "{}data_digest {:#x} != data_digest {:#x} from auth oi {}",
- sep(error),
- candidate.digest,
- auth_oi.data_digest,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}data_digest {:#x} != data_digest {:#x} from auth oi {:p}",
+ sep(error),
+ candidate.digest,
+ auth_oi.data_digest,
+ (void*)&auth_oi);
shard_result.set_data_digest_mismatch_info();
}
// for replicated:
if (auth_oi.is_omap_digest() && candidate.omap_digest_present &&
auth_oi.omap_digest != candidate.omap_digest) {
- format_to(std::back_inserter(out),
- "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {}",
- sep(error),
- candidate.omap_digest,
- auth_oi.omap_digest,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {:p}",
+ sep(error),
+ candidate.omap_digest,
+ auth_oi.omap_digest,
+ (void*)&auth_oi);
shard_result.set_omap_digest_mismatch_info();
}
}
@@ -1241,7 +1241,7 @@
auth_bl.push_back(auth_attr->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
obj_result.set_object_info_inconsistency();
}
}
@@ -1261,7 +1261,7 @@
auth_bl.push_back(auth_attr->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
obj_result.set_snapset_inconsistency();
}
}
@@ -1284,7 +1284,7 @@
auth_bl.push_back(auth_hi->second);
if (!can_bl.contents_equal(auth_bl)) {
- format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
+ fmt::format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
obj_result.set_hinfo_inconsistency();
}
}
@@ -1296,22 +1296,22 @@
uint64_t oi_size = logical_to_ondisk_size(auth_oi.size);
if (oi_size != candidate.size) {
- format_to(std::back_inserter(out),
- "{}size {} != size {} from auth oi {}",
- sep(error),
- candidate.size,
- oi_size,
- auth_oi);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} != size {} from auth oi {:p}",
+ sep(error),
+ candidate.size,
+ oi_size,
+ (void*)&auth_oi);
shard_result.set_size_mismatch_info();
}
if (auth.size != candidate.size) {
- format_to(std::back_inserter(out),
- "{}size {} != size {} from shard {}",
- sep(error),
- candidate.size,
- auth.size,
- auth_shard);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} != size {} from shard {}",
+ sep(error),
+ candidate.size,
+ auth.size,
+ auth_shard);
obj_result.set_size_mismatch();
}
@@ -1320,11 +1320,11 @@
if (candidate.size > m_conf->osd_max_object_size &&
!obj_result.has_size_too_large()) {
- format_to(std::back_inserter(out),
- "{}size {} > {} is too large",
- sep(error),
- candidate.size,
- m_conf->osd_max_object_size);
+ fmt::format_to(std::back_inserter(out),
+ "{}size {} > {} is too large",
+ sep(error),
+ candidate.size,
+ m_conf->osd_max_object_size);
obj_result.set_size_too_large();
}
@@ -1340,10 +1340,10 @@
auto cand = candidate.attrs.find(k);
if (cand == candidate.attrs.end()) {
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
obj_result.set_attr_name_mismatch();
} else if (cand->second.cmp(v)) {
- format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
obj_result.set_attr_value_mismatch();
}
}
@@ -1356,7 +1356,7 @@
auto in_auth = auth.attrs.find(k);
if (in_auth == auth.attrs.end()) {
- format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
+ fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
obj_result.set_attr_name_mismatch();
}
}
@@ -1823,8 +1823,7 @@
SnapMapReaderI& snaps_getter)
{
using result_t = Scrub::SnapMapReaderI::result_t;
- dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset)
- << dendl;
+ // dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset) << dendl;
auto p = snapset.clone_snaps.find(hoid.snap);
if (p == snapset.clone_snaps.end()) {
@@ -1,151 +0,0 @@
--- ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h.orig 2023-04-05 11:09:51.000000000 -0400
+++ ceph-17.2.6/src/kv/rocksdb_cache/ShardedCache.h 2023-04-21 16:22:26.665067333 -0400
@@ -15,7 +15,7 @@
#include <mutex>
#include "rocksdb/version.h"
-#include "rocksdb/cache.h"
+#include "rocksdb/advanced_cache.h"
#include "include/ceph_hash.h"
#include "common/PriorityCache.h"
//#include "hash.h"
@@ -26,7 +26,8 @@
namespace rocksdb_cache {
-using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
+// using DeleterFn = void (*)(const rocksdb::Slice& key, void* value);
+using DeleterFn = void (*)(rocksdb::Cache::ObjectPtr obj, rocksdb::MemoryAllocator* allocator);
// Single cache shard interface.
class CacheShard {
@@ -34,11 +35,19 @@
CacheShard() = default;
virtual ~CacheShard() = default;
- virtual rocksdb::Status Insert(const rocksdb::Slice& key, uint32_t hash, void* value,
- size_t charge,
- DeleterFn deleter,
- rocksdb::Cache::Handle** handle, rocksdb::Cache::Priority priority) = 0;
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, uint32_t hash) = 0;
+ virtual rocksdb::Status Insert(const rocksdb::Slice& key,
+ rockdb::ObjectPtr obj,
+ const rocksdb::CacheItemHelper* helper,
+ size_t charge,
+ rocksdb:Handle** handle = nullptr,
+ Rocksdb::Priority priority = Rocksdb::Priority::LOW)
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key,
+ const rocksdb::CacheItemHelper* helper = nullptr,
+ rocksdb::CreateContext* create_context = nullptr,
+ rocksdb::Priority priority = rocksdb::Priority::LOW,
+ bool wait = true,
+ rocksdb::Statistics* stats = nullptr);
+
virtual bool Ref(rocksdb::Cache::Handle* handle) = 0;
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) = 0;
virtual void Erase(const rocksdb::Slice& key, uint32_t hash) = 0;
@@ -68,8 +77,8 @@
virtual const char* Name() const override = 0;
virtual rocksdb::Status Insert(const rocksdb::Slice& key, void* value, size_t charge,
DeleterFn,
- rocksdb::Cache::Handle** handle, Priority priority) override;
- virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats) override;
+ rocksdb::Cache::Handle** handle, Priority priority);
+ virtual rocksdb::Cache::Handle* Lookup(const rocksdb::Slice& key, rocksdb::Statistics* stats);
virtual bool Ref(rocksdb::Cache::Handle* handle) override;
virtual bool Release(rocksdb::Cache::Handle* handle, bool force_erase = false) override;
virtual void* Value(Handle* handle) override = 0;
@@ -84,14 +93,17 @@
virtual size_t GetPinnedUsage() const override;
virtual size_t GetCharge(Handle* handle) const = 0;
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
- virtual DeleterFn GetDeleter(Handle* handle) const override;
+ virtual DeleterFn GetDeleter(Handle* handle) const;
#endif
virtual void DisownData() override = 0;
#if (ROCKSDB_MAJOR >= 7 || (ROCKSDB_MAJOR == 6 && ROCKSDB_MINOR >= 22))
+ virtual const rocksdb::CacheItemHelper* GetCacheItemHelper(rocksdb::Cache::Handle* handle) const;
virtual void ApplyToAllEntries(
- const std::function<void(const rocksdb::Slice& key, void* value, size_t charge,
- DeleterFn deleter)>& callback,
- const ApplyToAllEntriesOptions& opts) override;
+ const std::function<void(const rocksdb::Slice& key,
+ rocksdb::Cache::ObjectPtr obj,
+ size_t charge,
+ const rocksdb::CacheItemHelper* helper)>& callback,
+ const rocksdb::ApplyToAllEntriesOptions& opts);
#else
virtual void ApplyToAllCacheEntries(void (*callback)(void*, size_t),
bool thread_safe) override;
--- ceph-17.2.6/src/kv/RocksDBStore.cc.orig 2023-04-05 11:09:51.000000000 -0400
+++ ceph-17.2.6/src/kv/RocksDBStore.cc 2023-04-20 16:19:29.280669881 -0400
@@ -903,6 +903,19 @@
// base_name - name of column without shard suffix: "-"+number
// options - additional options to apply
// cf_opt - column family options to update
+
+rocksdb::Status GetColumnFamilyOptionsFromMap(
+ const rocksdb::ColumnFamilyOptions& base_options,
+ const std::unordered_map<std::string, std::string>& opts_map,
+ rocksdb::ColumnFamilyOptions* new_options, bool input_strings_escaped,
+ bool ignore_unknown_options) {
+ rocksdb::ConfigOptions config_options;
+ config_options.ignore_unknown_options = ignore_unknown_options;
+ config_options.input_strings_escaped = input_strings_escaped;
+ return rocksdb::GetColumnFamilyOptionsFromMap(config_options, base_options, opts_map,
+ new_options);
+}
+
int RocksDBStore::update_column_family_options(const std::string& base_name,
const std::string& more_options,
rocksdb::ColumnFamilyOptions* cf_opt)
@@ -916,7 +929,7 @@
<< " options=" << more_options << dendl;
return r;
}
- status = rocksdb::GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt);
+ status = GetColumnFamilyOptionsFromMap(*cf_opt, options_map, cf_opt, false, false);
if (!status.ok()) {
dout(5) << __func__ << " invalid column family optionsp; column family="
<< base_name << " options=" << more_options << dendl;
@@ -937,6 +950,20 @@
return 0;
}
+rocksdb::Status GetBlockBasedTableOptionsFromMap(
+ const rocksdb::BlockBasedTableOptions& table_options,
+ const std::unordered_map<std::string, std::string>& opts_map,
+ rocksdb::BlockBasedTableOptions* new_table_options, bool input_strings_escaped,
+ bool ignore_unknown_options) {
+ rocksdb::ConfigOptions config_options;
+ config_options.input_strings_escaped = input_strings_escaped;
+ config_options.ignore_unknown_options = ignore_unknown_options;
+ config_options.invoke_prepare_options = false;
+
+ return rocksdb::GetBlockBasedTableOptionsFromMap(config_options, table_options,
+ opts_map, new_table_options);
+}
+
int RocksDBStore::apply_block_cache_options(const std::string& column_name,
const std::string& block_cache_opt,
rocksdb::ColumnFamilyOptions* cf_opt)
@@ -981,7 +1008,7 @@
}
rocksdb::BlockBasedTableOptions column_bbt_opts;
- status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts);
+ status = GetBlockBasedTableOptionsFromMap(bbt_opts, cache_options_map, &column_bbt_opts, false, false);
if (!status.ok()) {
dout(5) << __func__ << " invalid block cache options; column=" << column_name
<< " options=" << block_cache_opt << dendl;
--- ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h.orig 2023-04-21 10:11:00.180387609 -0400
+++ ceph-17.2.6/src/kv/rocksdb_cache/BinnedLRUCache.h 2023-04-21 10:17:15.527816193 -0400
@@ -121,7 +121,7 @@
void Free() {
ceph_assert((refs == 1 && InCache()) || (refs == 0 && !InCache()));
if (deleter) {
- (*deleter)(key(), value);
+ (*deleter)(this, nullptr);
}
delete[] key_data;
delete this;
-17
View File
@@ -1,17 +0,0 @@
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc.orig 2023-03-14 18:22:35.636864260 -0400
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_amqp.cc 2023-03-14 18:24:36.362756771 -0400
@@ -2,10 +2,10 @@
// vim: ts=8 sw=2 smarttab ft=cpp
#include "rgw_amqp.h"
-#include <amqp.h>
-#include <amqp_ssl_socket.h>
-#include <amqp_tcp_socket.h>
-#include <amqp_framing.h>
+#include <rabbitmq-c/amqp.h>
+#include <rabbitmq-c/ssl_socket.h>
+#include <rabbitmq-c/tcp_socket.h>
+#include <rabbitmq-c/framing.h>
#include "include/ceph_assert.h"
#include <sstream>
#include <cstring>
-61
View File
@@ -1,61 +0,0 @@
--- ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc.orig 2023-03-14 18:46:02.037195570 -0400
+++ ceph-18.0.0-2726-g7cea3740/src/rgw/rgw_asio_client.cc 2023-03-14 18:55:14.446438244 -0400
@@ -39,11 +39,13 @@
const auto& value = header->value();
if (field == beast::http::field::content_length) {
- env.set("CONTENT_LENGTH", value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set("CONTENT_LENGTH", scratch.c_str());
continue;
}
if (field == beast::http::field::content_type) {
- env.set("CONTENT_TYPE", value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set("CONTENT_TYPE", scratch.c_str());
continue;
}
@@ -62,26 +64,37 @@
}
*dest = '\0';
- env.set(buf, value.to_string());
+ std::string scratch{value.data(), value.size()};
+ env.set(buf, scratch.c_str());
}
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());
+ {
+ std::string scratch {request.method_string().data(),request.method_string().size()};
+ env.set("REQUEST_METHOD", scratch.c_str());
+ }
// 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());
+ std::string scratch{query.data(), query.size()};
+ env.set("QUERY_STRING", scratch.c_str());
uri = uri.substr(0, pos);
}
- env.set("SCRIPT_URI", uri.to_string());
+ {
+ std::string scratch {uri.data(), uri.size()};
+ env.set("SCRIPT_URI", scratch.c_str());
+ }
- env.set("REQUEST_URI", request.target().to_string());
+ {
+ std::string scratch {request.target().data(), request.target().size()};
+ env.set("REQUEST_URI", scratch.c_str());
+ }
char port_buf[16];
snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());
-24
View File
@@ -1,24 +0,0 @@
--- ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake.orig 2023-04-28 18:30:19.133064577 -0400
+++ ceph-18.0.0-2950-g1c931bc4/cmake/modules/BuildBoost.cmake 2023-04-28 18:31:55.290354383 -0400
@@ -104,12 +104,21 @@
set(user_config ${CMAKE_BINARY_DIR}/user-config.jam)
# edit the user-config.jam so b2 will be able to use the specified
# toolset and python
+if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+ file(WRITE ${user_config}
+ "using ${toolset}"
+ " : "
+ " : ${CMAKE_CXX_COMPILER}"
+ " : <compileflags>-fPIC <compileflags>-w <compileflags>-fcf-protection <compileflags>-Wno-everything"
+ " ;\n")
+else()
file(WRITE ${user_config}
"using ${toolset}"
" : "
" : ${CMAKE_CXX_COMPILER}"
" : <compileflags>-fPIC <compileflags>-w <compileflags>-Wno-everything"
" ;\n")
+endif()
if(with_python_version)
find_package(Python3 ${with_python_version} QUIET REQUIRED
COMPONENTS Development)
-61
View File
@@ -1,61 +0,0 @@
--- ceph-17.2.6/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.009605033 -0400
+++ ceph-17.2.6/src/boost/libs/context/src/asm/make_x86_64_sysv_elf_gas.S 2023-04-30 14:28:32.239465067 -0400
@@ -80,3 +80,18 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+
--- ceph-17.2.6/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.008605050 -0400
+++ ceph-17.2.6/src/boost/libs/context/src/asm/jump_x86_64_sysv_elf_gas.S 2023-04-30 14:27:50.145210847 -0400
@@ -89,3 +89,17 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
--- ceph-17.2.6/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S.orig 2023-04-30 14:25:35.009605033 -0400
+++ ceph-17.2.6/src/boost/libs/context/src/asm/ontop_x86_64_sysv_elf_gas.S 2023-04-30 14:29:30.402434597 -0400
@@ -92,3 +92,17 @@
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
+
+.section .note.gnu.property
+.align=8
+
+ .byte 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x00, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x01, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .byte 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
+ .byte 0x05, 0x00, 0x00, 0x00, 0x47, 0x4E, 0x55, 0x00
+ .byte 0x02, 0x00, 0x00, 0xC0, 0x04, 0x00, 0x00, 0x00
+ .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-24
View File
@@ -1,24 +0,0 @@
--- ceph-18.1.2/src/pybind/rbd/rbd.pyx.orig 2023-07-21 13:30:08.156825317 -0400
+++ ceph-18.1.2/src/pybind/rbd/rbd.pyx 2023-07-24 09:09:27.930137117 -0400
@@ -371,10 +371,10 @@
cdef rados_ioctx_t convert_ioctx(rados.Ioctx ioctx) except? NULL:
return <rados_ioctx_t>ioctx.io
-cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) with gil:
+cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
return (<object>ptr)(offset, total)
-cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr):
+cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept:
return 0
def cstr(val, name, encoding="utf-8", opt=False):
@@ -426,7 +426,7 @@
cdef class Completion
-cdef void __aio_complete_cb(rbd_completion_t completion, void *args) with gil:
+cdef void __aio_complete_cb(rbd_completion_t completion, void *args) noexcept with gil:
"""
Callback to oncomplete() for asynchronous operations
"""
-18
View File
@@ -1,18 +0,0 @@
--- ceph/src/CMakeLists.txt.orig 2023-11-01 11:53:53.618167190 -0400
+++ ceph/src/CMakeLists.txt 2023-11-01 13:52:51.292643490 -0400
@@ -625,6 +625,7 @@
add_subdirectory(perfglue)
add_library(rados_snap_set_diff_obj OBJECT librados/snap_set_diff.cc)
+add_dependencies(rados_snap_set_diff_obj legacy-option-headers)
option(WITH_LIBRADOSSTRIPER "build with libradosstriper support" ON)
@@ -881,6 +882,7 @@
add_library(krbd STATIC krbd.cc
$<TARGET_OBJECTS:parse_secret_objs>)
target_link_libraries(krbd keyutils::keyutils)
+ add_dependencies(krbd legacy-option-headers)
endif()
add_subdirectory(librbd)
if(WITH_FUSE)
-11
View File
@@ -1,11 +0,0 @@
--- ceph-18.2.4/src/include/rados/rgw_file.h.orig 2024-09-23 12:05:39.942703570 -0400
+++ ceph-18.2.4/src/include/rados/rgw_file.h 2024-09-23 12:05:55.800441732 -0400
@@ -27,7 +27,7 @@
#define LIBRGW_FILE_VER_MAJOR 1
#define LIBRGW_FILE_VER_MINOR 2
-#define LIBRGW_FILE_VER_EXTRA 0
+#define LIBRGW_FILE_VER_EXTRA 1
#define LIBRGW_FILE_VERSION(maj, min, extra) ((maj << 16) + (min << 8) + extra)
#define LIBRGW_FILE_VERSION_CODE LIBRGW_FILE_VERSION(LIBRGW_FILE_VER_MAJOR, LIBRGW_FILE_VER_MINOR, LIBRGW_FILE_VER_EXTRA)
-14
View File
@@ -1,14 +0,0 @@
--- ceph-18.2.4/CMakeLists.txt.orig 2025-04-08 12:58:08.231622137 -0400
+++ ceph-18.2.4/CMakeLists.txt 2025-04-08 12:58:17.021471996 -0400
@@ -739,11 +739,3 @@
option(WITH_GRAFANA "install grafana dashboards" OFF)
add_subdirectory(monitoring/ceph-mixin)
-include(CTags)
-option(CTAG_EXCLUDES "Exclude files/directories when running ctag.")
-add_tags(ctags
- SRC_DIR src
- TAG_FILE tags
- EXCLUDE_OPTS ${CTAG_EXCLUDES}
- EXCLUDES "*.js" "*.css" ".tox" "python-common/build")
-add_custom_target(tags DEPENDS ctags)
-58
View File
@@ -1,58 +0,0 @@
commit f9aea9105b6c1a8d7bff0ec0675f84f2ffb1db6f
Author: Florian Weimer <fweimer@redhat.com>
Date: Wed Dec 20 14:16:19 2023 +0100
tracing: Fix C type errors in librados tracing
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>
diff --git a/src/tracing/librados.tp b/src/tracing/librados.tp
index 8b5e78ef15..8e116124b8 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 3e07f9de8e..03449ab588 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*
-178
View File
@@ -1,178 +0,0 @@
commit a49d154f4a8e493baf2296a15c7b5c56cd25e993
Author: Florian Weimer <fweimer@redhat.com>
Date: Wed Dec 20 14:59:19 2023 +0100
pybind: Fix C type errors in Cython-generated Python bindings
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>
diff --git a/src/pybind/rbd/c_rbd.pxd b/src/pybind/rbd/c_rbd.pxd
index 885f7bd46a..bda23bbc47 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 11872bd814..364f965fba 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 fcb2fb3470..f59ba23f0f 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 ca893a5bb8..806d4df75d 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 9bbcdfff58..d210a70bbb 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,
+899 -2541
View File
File diff suppressed because it is too large Load Diff
@@ -1,13 +0,0 @@
diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
index 2e92132366..3cb1e3d958 100644
--- a/cmake/modules/BuildBoost.cmake
+++ b/cmake/modules/BuildBoost.cmake
@@ -62,7 +62,7 @@ function(do_build_boost version)
else()
list(APPEND boost_features "address-model=32")
endif()
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
+ set(BOOST_CXXFLAGS "-fPIC -w -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -ftemplate-depth-1024 -fno-new-ttp-matching -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free") # check on arm, etc <---XXX
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
set(boost_with_libs)
+3 -1
View File
@@ -1 +1,3 @@
SHA512 (ceph-18.2.6.tar.gz) = 06bef880543a3c444783ed4a3927fd94a7b05180d35d356372f36679f1e00c3ee2cf3b0c15732fdc0c1ba55c922e07b7fa66274cb12a196914c79faa99859f13
e7c35581f8d36d34f7cde16a862e54fb ceph-0.94.5.tar.bz2
566cdeae80ee639dcb265ac284a59b48 ceph-0.94.6.tar.gz
a8fd1046805551e301cb835f418ade72 ceph-0.94.7.tar.gz