Compare commits
226 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5378ce3de9 | |||
| 888704869d | |||
| 1926382ebc | |||
| 9d75cd4f29 | |||
| aaedf07964 | |||
| f33cca0cb6 | |||
| c613a7913d | |||
| 32b1af1542 | |||
| 0d92b145fb | |||
| 1fd4067b59 | |||
| 68c121780b | |||
| c63ac8cd1c | |||
| 0cef2ba27d | |||
| da92657ed9 | |||
| 339f628c14 | |||
| fe792d61ad | |||
| 945dc70d29 | |||
| e6b3456a69 | |||
| f6485b3ab1 | |||
| 2d1c189958 | |||
| af3d1fd70c | |||
| f52b5ed647 | |||
| 5c6ef2f610 | |||
| b651554bd7 | |||
| 80c32a846e | |||
| c59af85c9a | |||
| ad04d48a91 | |||
| 5cc1064abe | |||
| 0f36784c8d | |||
| 4641edbf6e | |||
| 7522ec1d1e | |||
| 4a7615cc28 | |||
| eacbe3b4a2 | |||
| 87c5192736 | |||
| 21a281eefc | |||
| 7c4f87d566 | |||
| 85d0b180fb | |||
| 2999191251 | |||
| 0434611ff3 | |||
| 4425090d12 | |||
| 4f320e6270 | |||
| 3ca3b39fdd | |||
| c46fd83b70 | |||
| 9189e1ac7a | |||
| f3cd3e3ded | |||
| 3e6e53903f | |||
| 1156a4001e | |||
| 511c2f1a19 | |||
| a4f5a49de7 | |||
| 629d997bbd | |||
| b2a3bb3cff | |||
| edd18f65bf | |||
| 944b374961 | |||
| 90dfc56cf2 | |||
| bf163e9b33 | |||
| 5897751ce1 | |||
| 73efddca7f | |||
| f9fa7d2971 | |||
| 1efbe7fbd6 | |||
| fed2cbacdf | |||
| bddfe865f2 | |||
| e56d4b2886 | |||
| b6062fd6dc | |||
| 8c6b1da0a2 | |||
| 1f11726563 | |||
| bba894de7e | |||
| 3715b23426 | |||
| f38d3f777f | |||
| 0114881ab4 | |||
| a786ef1504 | |||
| 2931b99be7 | |||
| 70e587526e | |||
| 9c86a420ea | |||
| 0c8ed285d3 | |||
| ddbcb5d66f | |||
| 8c750b960c | |||
| abdbef9e0e | |||
| 43b4197d44 | |||
| b0c18eeafc | |||
| 9c55220808 | |||
| 8a6545912f | |||
| e7a5495ba4 | |||
| 7c50250c92 | |||
| 1217c82a28 | |||
| 8d6f5530e7 | |||
| fe9cf79756 | |||
| 0d4b487537 | |||
| 13c95af02e | |||
| c8153cb68b | |||
| a82adb1178 | |||
| 0da31a640b | |||
| c5116a4d3d | |||
| f6c80111f0 | |||
| 65809728d6 | |||
| d7454e4e0a | |||
| 804031cde8 | |||
| f126724be1 | |||
| 9e94fbdfaf | |||
| b070296ace | |||
| 98f7173b37 | |||
| 4bd118debc | |||
| 78e076b5af | |||
| 976474060f | |||
| d60970c7cd | |||
| 4a2e67ce27 | |||
| 5cee54462c | |||
| 5e9e44ba9d | |||
| 03686a5492 | |||
| c4b36fdbe9 | |||
| ba585a6512 | |||
| 3aa610e268 | |||
| af4b4952f8 | |||
| cbed2814c2 | |||
| 92605c05f0 | |||
| fc46f52db9 | |||
| 7ccae1fdf3 | |||
| 1fdc7e124d | |||
| be247e2321 | |||
| 7d89214d12 | |||
| 189f095ebc | |||
| a7b4842132 | |||
| 07c18dd027 | |||
| 415b03ce74 | |||
| 3d9c93f7ab | |||
| 59dc7d2595 | |||
| bf4b7aed66 | |||
| 501243427a | |||
| 9e63d61879 | |||
| 19975cf06e | |||
| 7b01ed79a0 | |||
| f871a2726e | |||
| f52ea67e29 | |||
| df3db8be0e | |||
| da3f27e563 | |||
| d5be4a1cc6 | |||
| 950231a5bb | |||
| b774776eb5 | |||
| be7e755323 | |||
| 95e779c6c1 | |||
| 73dfbc7ffd | |||
| be70cfd29d | |||
| 2e1f76369c | |||
| 6daabd97d4 | |||
| fbd3e48156 | |||
| 6fc0065262 | |||
| df740a5e36 | |||
| cb586a7643 | |||
| 447d02458a | |||
| f0623329e5 | |||
| 624de89cce | |||
| 0e58e2f39c | |||
| 66d0b21911 | |||
| abcc0b7100 | |||
| cc4e5c3669 | |||
| 5c46ad7f7e | |||
| 5904d137cf | |||
| 21ae44b9d8 | |||
| ab7f0da7e2 | |||
| db4f36a951 | |||
| 0654a1fdc4 | |||
| 1e83c5c029 | |||
| e4cc93f966 | |||
| 26fd4ffbc6 | |||
| d463ff311e | |||
| ef8dc618c7 | |||
| fcc245cca3 | |||
| acfede696d | |||
| d6834c5aab | |||
| a09febb7ef | |||
| 9cdcdd7459 | |||
| 6c126d30be | |||
| 3913155591 | |||
| 648550e64f | |||
| 4deb491174 | |||
| d8a9bdfabe | |||
| 0d98dedd32 | |||
| 16a5d9d365 | |||
| b7bbd8375e | |||
| 7816ec5783 | |||
| e7d942d1e6 | |||
| e559532d4b | |||
| 2abb0a0f7c | |||
| ce8aeac3f1 | |||
| c5f02885fe | |||
| 0bbc5f85a7 | |||
| b0cac5e936 | |||
| a384bd1238 | |||
| c7349cff7f | |||
| f706627b65 | |||
| 0f1e9aab49 | |||
| 0c11deb6e7 | |||
| f2665f8f56 | |||
| d472f02868 | |||
| 9ccdbdeb2a | |||
| f8c0702a5e | |||
| 51d56299ba | |||
| f92c59c650 | |||
| 89637a46f7 | |||
| c3ded1ba4d | |||
| 229de7b3ab | |||
| d7375fe89d | |||
| 8ceca65767 | |||
| 295d99c80e | |||
| 8b70fc0981 | |||
| 23a12c000d | |||
| fd9573057c | |||
| 13fa69ddf9 | |||
| 315d3a8c86 | |||
| fa25767214 | |||
| 2eee2bbcbd | |||
| 5846ea0721 | |||
| 6ad252c21d | |||
| 621cf4d6f7 | |||
| a9b0fc4948 | |||
| fcfe376de3 | |||
| 5ca819502b | |||
| 34869f41a8 | |||
| aa192ecb91 | |||
| 07ddec03dc | |||
| 82de3b23ac | |||
| e14ca57795 | |||
| 840cecd85d | |||
| 2b3fa8bef4 | |||
| 4c70f88757 | |||
| 201099b1e3 | |||
| 97da17461c |
@@ -1,51 +0,0 @@
|
||||
--- ceph-13.2.1/src/spdk/lib/blob/blobstore.c.orig 2018-07-30 08:31:05.138254900 -0400
|
||||
+++ ceph-13.2.1/src/spdk/lib/blob/blobstore.c 2018-07-30 08:32:05.314254900 -0400
|
||||
@@ -393,7 +393,7 @@
|
||||
* happen for example if a bogus blobid is passed in through open.
|
||||
*/
|
||||
if (blob->id != pages[0].id) {
|
||||
- SPDK_ERRLOG("Blobid (%lu) doesn't match what's in metadata (%lu)\n",
|
||||
+ SPDK_ERRLOG("Blobid (%llu) doesn't match what's in metadata (%llu)\n",
|
||||
blob->id, pages[0].id);
|
||||
return -ENOENT;
|
||||
}
|
||||
@@ -2947,7 +2947,7 @@
|
||||
|
||||
/* START spdk_blob_resize */
|
||||
int
|
||||
-spdk_blob_resize(struct spdk_blob *_blob, uint64_t sz)
|
||||
+spdk_blob_resize(struct spdk_blob *_blob, size_t sz)
|
||||
{
|
||||
struct spdk_blob_data *blob = __blob_to_data(_blob);
|
||||
int rc;
|
||||
--- ceph-13.2.1/src/spdk/lib/lvol/lvol.c.orig 2018-07-30 09:08:38.137254900 -0400
|
||||
+++ ceph-13.2.1/src/spdk/lib/lvol/lvol.c 2018-07-30 09:10:09.642254900 -0400
|
||||
@@ -970,7 +970,7 @@
|
||||
num_clusters = divide_round_up(sz, spdk_bs_get_cluster_size(bs));
|
||||
free_clusters = spdk_bs_free_cluster_count(bs);
|
||||
if (num_clusters > free_clusters) {
|
||||
- SPDK_ERRLOG("Not enough free clusters left (%zu) on lvol store to add lvol %zu clusters\n",
|
||||
+ SPDK_ERRLOG("Not enough free clusters left (%llu) on lvol store to add lvol %llu clusters\n",
|
||||
free_clusters, num_clusters);
|
||||
return -ENOMEM;
|
||||
}
|
||||
@@ -1026,7 +1026,7 @@
|
||||
if (new_clusters > used_clusters) {
|
||||
/* Check if there is enough clusters left to resize */
|
||||
if (new_clusters - used_clusters > free_clusters) {
|
||||
- SPDK_ERRLOG("Not enough free clusters left on lvol store to resize lvol to %zu clusters\n", sz);
|
||||
+ SPDK_ERRLOG("Not enough free clusters left on lvol store to resize lvol to %llu clusters\n", sz);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
--- ceph-13.2.1/src/spdk/lib/event/reactor.c.orig 2018-07-30 09:44:01.514254900 -0400
|
||||
+++ ceph-13.2.1/src/spdk/lib/event/reactor.c 2018-07-30 09:45:02.291254900 -0400
|
||||
@@ -651,7 +651,7 @@
|
||||
char mempool_name[32];
|
||||
|
||||
socket_mask = spdk_reactor_get_socket_mask();
|
||||
- SPDK_NOTICELOG("Occupied cpu socket mask is 0x%lx\n", socket_mask);
|
||||
+ SPDK_NOTICELOG("Occupied cpu socket mask is 0x%" PRIx64 "\n", socket_mask);
|
||||
|
||||
for (i = 0; i < SPDK_MAX_SOCKET; i++) {
|
||||
if ((1ULL << i) & socket_mask) {
|
||||
@@ -0,0 +1,55 @@
|
||||
--- 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: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
--- ceph-12.1.1.orig/src/rocksdb/util/murmurhash.cc 2017-04-27 01:13:46.000000000 +0100
|
||||
+++ ceph-12.1.1.orig/src/rocksdb/util/murmurhash.cc 2017-07-25 11:37:28.910266684 +0100
|
||||
@@ -113,8 +113,8 @@ unsigned int MurmurHash2 ( const void *
|
||||
|
||||
switch(len)
|
||||
{
|
||||
- case 3: h ^= data[2] << 16;
|
||||
- case 2: h ^= data[1] << 8;
|
||||
+ case 3: h ^= data[2] << 16; // fallthrough
|
||||
+ case 2: h ^= data[1] << 8; // fallthrough
|
||||
case 1: h ^= data[0];
|
||||
h *= m;
|
||||
};
|
||||
@@ -1,127 +0,0 @@
|
||||
From 2f0a7153460acc3f21462236f470ec3471fa2ee1 Mon Sep 17 00:00:00 2001
|
||||
From: Boris Ranto <branto@redhat.com>
|
||||
Date: Mon, 31 Jul 2017 19:50:23 +0200
|
||||
Subject: [PATCH] cmake: Support ppc64
|
||||
|
||||
The ppc64 support requires a couple of changes:
|
||||
- adding the ppc64 support to cmake
|
||||
- changing optimized crc32 code to compile on ppc64le only
|
||||
- moving ifdef condition before crc32_align to avoid defined but not
|
||||
used warning
|
||||
|
||||
Signed-off-by: Boris Ranto <branto@redhat.com>
|
||||
---
|
||||
cmake/modules/SIMDExt.cmake | 15 ++++++++++++++-
|
||||
src/CMakeLists.txt | 4 +++-
|
||||
src/arch/ppc.c | 8 ++++----
|
||||
src/common/crc32c_ppc.c | 6 +++---
|
||||
4 files changed, 24 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/cmake/modules/SIMDExt.cmake b/cmake/modules/SIMDExt.cmake
|
||||
index 5330835..c47667d 100644
|
||||
--- a/cmake/modules/SIMDExt.cmake
|
||||
+++ b/cmake/modules/SIMDExt.cmake
|
||||
@@ -109,7 +109,20 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64")
|
||||
endif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(powerpc|ppc)64le")
|
||||
set(HAVE_PPC64LE 1)
|
||||
- message(STATUS " we are ppc64le")
|
||||
+ message(STATUS " we are ppc64")
|
||||
+ CHECK_C_COMPILER_FLAG("-maltivec" HAS_ALTIVEC)
|
||||
+ if(HAS_ALTIVEC)
|
||||
+ message(STATUS " HAS_ALTIVEC yes")
|
||||
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maltivec")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -maltivec")
|
||||
+ endif()
|
||||
+ CHECK_C_COMPILER_FLAG("-mcpu=power8" HAVE_POWER8)
|
||||
+ if(HAVE_POWER8)
|
||||
+ message(STATUS " HAVE_POWER8 yes")
|
||||
+ endif()
|
||||
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(power|ppc)64")
|
||||
+ set(HAVE_PPC64 1)
|
||||
+ message(STATUS " we are ppc64")
|
||||
CHECK_C_COMPILER_FLAG("-maltivec" HAS_ALTIVEC)
|
||||
if(HAS_ALTIVEC)
|
||||
message(STATUS " HAS_ALTIVEC yes")
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 66f0c14..38d1913 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -568,7 +568,9 @@ if(HAVE_INTEL)
|
||||
endif(HAVE_GOOD_YASM_ELF64)
|
||||
elseif(HAVE_POWER8)
|
||||
list(APPEND libcommon_files
|
||||
- common/crc32c_ppc.c
|
||||
+ common/crc32c_ppc.c)
|
||||
+elseif(HAVE_PPC64LE)
|
||||
+ list(APPEND libcommon_files
|
||||
common/crc32c_ppc_asm.S
|
||||
common/crc32c_ppc_fast_zero_asm.S)
|
||||
endif(HAVE_INTEL)
|
||||
diff --git a/src/arch/ppc.c b/src/arch/ppc.c
|
||||
index f21e2fe..11d3a49 100644
|
||||
--- a/src/arch/ppc.c
|
||||
+++ b/src/arch/ppc.c
|
||||
@@ -14,10 +14,10 @@ int ceph_arch_ppc_crc32 = 0;
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
-#if __linux__ && __powerpc64__
|
||||
+#ifdef HAVE_PPC64LE
|
||||
#include <sys/auxv.h>
|
||||
#include <asm/cputable.h>
|
||||
-#endif /* __linux__ && __powerpc64__ */
|
||||
+#endif /* HAVE_PPC64LE */
|
||||
|
||||
#ifndef PPC_FEATURE2_VEC_CRYPTO
|
||||
#define PPC_FEATURE2_VEC_CRYPTO 0x02000000
|
||||
@@ -31,9 +31,9 @@ int ceph_arch_ppc_probe(void)
|
||||
{
|
||||
ceph_arch_ppc_crc32 = 0;
|
||||
|
||||
-#if __linux__ && __powerpc64__
|
||||
+#ifdef HAVE_PPC64LE
|
||||
if (getauxval(AT_HWCAP2) & PPC_FEATURE2_VEC_CRYPTO) ceph_arch_ppc_crc32 = 1;
|
||||
-#endif /* __linux__ && __powerpc64__ */
|
||||
+#endif /* HAVE_PPC64LE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/src/common/crc32c_ppc.c b/src/common/crc32c_ppc.c
|
||||
index 43756e2..52fd1c4 100644
|
||||
--- a/src/common/crc32c_ppc.c
|
||||
+++ b/src/common/crc32c_ppc.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#define VMX_ALIGN 16
|
||||
#define VMX_ALIGN_MASK (VMX_ALIGN-1)
|
||||
|
||||
+#ifdef HAVE_PPC64LE
|
||||
#ifdef REFLECT
|
||||
static unsigned int crc32_align(unsigned int crc, unsigned char const *p,
|
||||
unsigned long len)
|
||||
@@ -38,7 +39,6 @@ static unsigned int crc32_align(unsigned int crc, unsigned char const *p,
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef HAVE_POWER8
|
||||
static inline unsigned long polynomial_multiply(unsigned int a, unsigned int b) {
|
||||
vector unsigned int va = {a, 0, 0, 0};
|
||||
vector unsigned int vb = {b, 0, 0, 0};
|
||||
@@ -134,7 +134,7 @@ uint32_t ceph_crc32c_ppc(uint32_t crc, unsigned char const *data, unsigned len)
|
||||
return crc;
|
||||
}
|
||||
|
||||
-#else /* HAVE_POWER8 */
|
||||
+#else /* HAVE_PPC64LE */
|
||||
|
||||
/* This symbol has to exist on non-ppc architectures (and on legacy
|
||||
* ppc systems using power7 or below) in order to compile properly
|
||||
@@ -145,4 +145,4 @@ uint32_t ceph_crc32c_ppc(uint32_t crc, unsigned char const *data, unsigned len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-#endif /* HAVE_POWER8 */
|
||||
+#endif /* HAVE_PPC64LE */
|
||||
--
|
||||
2.9.4
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 74a754690736f6608b0d4d9c807df0bd777a129d Mon Sep 17 00:00:00 2001
|
||||
From: Boris Ranto <branto@redhat.com>
|
||||
Date: Fri, 8 Dec 2017 00:21:38 +0100
|
||||
Subject: [PATCH] librbd: Conditionally import TrimRequest.cc
|
||||
|
||||
We include TrimRequest.cc in librbd tests at two places:
|
||||
- operation/test_mock_TrimRequest.cc
|
||||
- operation/test_mock_ResizeRequest.cc
|
||||
|
||||
That causes linking errors when doing the builds because some of the
|
||||
structures are defined twice.
|
||||
|
||||
Signed-off-by: Boris Ranto <branto@redhat.com>
|
||||
---
|
||||
src/librbd/operation/TrimRequest.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/librbd/operation/TrimRequest.cc b/src/librbd/operation/TrimRequest.cc
|
||||
index 28f2deb..929ca51 100644
|
||||
--- a/src/librbd/operation/TrimRequest.cc
|
||||
+++ b/src/librbd/operation/TrimRequest.cc
|
||||
@@ -362,4 +362,6 @@ void TrimRequest<I>::send_finish(int r) {
|
||||
} // namespace operation
|
||||
} // namespace librbd
|
||||
|
||||
+#ifndef TEST_F
|
||||
template class librbd::operation::TrimRequest<librbd::ImageCtx>;
|
||||
+#endif
|
||||
--
|
||||
2.9.5
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
--- 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;
|
||||
@@ -1,155 +0,0 @@
|
||||
--- ceph-12.2.3/src/rocksdb/table/block.h.orig 2018-02-22 07:49:38.044899631 -0500
|
||||
+++ ceph-12.2.3/src/rocksdb/table/block.h 2018-02-22 07:58:55.855899631 -0500
|
||||
@@ -65,7 +65,8 @@
|
||||
|
||||
// Create bitmap and set all the bits to 0
|
||||
bitmap_ = new std::atomic<uint32_t>[bitmap_size];
|
||||
- memset(bitmap_, 0, bitmap_size * kBytesPersEntry);
|
||||
+ // memset(bitmap_, 0, bitmap_size * kBytesPersEntry);
|
||||
+ { unsigned i = 0; for (; i < bitmap_size;) bitmap_[i++] = 0; }
|
||||
|
||||
RecordTick(GetStatistics(), READ_AMP_TOTAL_READ_BYTES,
|
||||
num_bits_needed << bytes_per_bit_pow_);
|
||||
--- ceph-12.2.3/src/rocksdb/db/c.cc.orig 2018-02-22 08:14:56.033899631 -0500
|
||||
+++ ceph-12.2.3/src/rocksdb/db/c.cc 2018-02-22 10:06:39.759899631 -0500
|
||||
@@ -1322,11 +1322,6 @@
|
||||
b->rep.PutLogData(Slice(blob, len));
|
||||
}
|
||||
|
||||
-void rocksdb_writebatch_iterate(
|
||||
- rocksdb_writebatch_t* b,
|
||||
- void* state,
|
||||
- void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
|
||||
- void (*deleted)(void*, const char* k, size_t klen)) {
|
||||
class H : public WriteBatch::Handler {
|
||||
public:
|
||||
void* state_;
|
||||
@@ -1339,6 +1334,12 @@
|
||||
(*deleted_)(state_, key.data(), key.size());
|
||||
}
|
||||
};
|
||||
+
|
||||
+void rocksdb_writebatch_iterate(
|
||||
+ rocksdb_writebatch_t* b,
|
||||
+ void* state,
|
||||
+ void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
|
||||
+ void (*deleted)(void*, const char* k, size_t klen)) {
|
||||
H handler;
|
||||
handler.state_ = state;
|
||||
handler.put_ = put;
|
||||
@@ -1579,18 +1580,6 @@
|
||||
void* state,
|
||||
void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
|
||||
void (*deleted)(void*, const char* k, size_t klen)) {
|
||||
- class H : public WriteBatch::Handler {
|
||||
- public:
|
||||
- void* state_;
|
||||
- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
|
||||
- void (*deleted_)(void*, const char* k, size_t klen);
|
||||
- virtual void Put(const Slice& key, const Slice& value) override {
|
||||
- (*put_)(state_, key.data(), key.size(), value.data(), value.size());
|
||||
- }
|
||||
- virtual void Delete(const Slice& key) override {
|
||||
- (*deleted_)(state_, key.data(), key.size());
|
||||
- }
|
||||
- };
|
||||
H handler;
|
||||
handler.state_ = state;
|
||||
handler.put_ = put;
|
||||
@@ -2532,13 +2521,9 @@
|
||||
delete filter;
|
||||
}
|
||||
|
||||
-rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_key, bool original_format) {
|
||||
- // Make a rocksdb_filterpolicy_t, but override all of its methods so
|
||||
- // they delegate to a NewBloomFilterPolicy() instead of user
|
||||
- // supplied C functions.
|
||||
- struct Wrapper : public rocksdb_filterpolicy_t {
|
||||
+ struct WrapperFP : public rocksdb_filterpolicy_t {
|
||||
const FilterPolicy* rep_;
|
||||
- ~Wrapper() { delete rep_; }
|
||||
+ ~WrapperFP() { delete rep_; }
|
||||
const char* Name() const override { return rep_->Name(); }
|
||||
void CreateFilter(const Slice* keys, int n,
|
||||
std::string* dst) const override {
|
||||
@@ -2549,11 +2534,16 @@
|
||||
}
|
||||
static void DoNothing(void*) { }
|
||||
};
|
||||
- Wrapper* wrapper = new Wrapper;
|
||||
+
|
||||
+rocksdb_filterpolicy_t* rocksdb_filterpolicy_create_bloom_format(int bits_per_key, bool original_format) {
|
||||
+ // Make a rocksdb_filterpolicy_t, but override all of its methods so
|
||||
+ // they delegate to a NewBloomFilterPolicy() instead of user
|
||||
+ // supplied C functions.
|
||||
+ WrapperFP* wrapper = new WrapperFP;
|
||||
wrapper->rep_ = NewBloomFilterPolicy(bits_per_key, original_format);
|
||||
wrapper->state_ = nullptr;
|
||||
wrapper->delete_filter_ = nullptr;
|
||||
- wrapper->destructor_ = &Wrapper::DoNothing;
|
||||
+ wrapper->destructor_ = &WrapperFP::DoNothing;
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
@@ -2889,10 +2879,9 @@
|
||||
delete st;
|
||||
}
|
||||
|
||||
-rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
|
||||
- struct Wrapper : public rocksdb_slicetransform_t {
|
||||
+ struct WrapperST : public rocksdb_slicetransform_t {
|
||||
const SliceTransform* rep_;
|
||||
- ~Wrapper() { delete rep_; }
|
||||
+ ~WrapperST() { delete rep_; }
|
||||
const char* Name() const override { return rep_->Name(); }
|
||||
Slice Transform(const Slice& src) const override {
|
||||
return rep_->Transform(src);
|
||||
@@ -2903,31 +2892,20 @@
|
||||
bool InRange(const Slice& src) const override { return rep_->InRange(src); }
|
||||
static void DoNothing(void*) { }
|
||||
};
|
||||
- Wrapper* wrapper = new Wrapper;
|
||||
+
|
||||
+rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
|
||||
+ WrapperST* wrapper = new WrapperST;
|
||||
wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen);
|
||||
wrapper->state_ = nullptr;
|
||||
- wrapper->destructor_ = &Wrapper::DoNothing;
|
||||
+ wrapper->destructor_ = &WrapperST::DoNothing;
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() {
|
||||
- struct Wrapper : public rocksdb_slicetransform_t {
|
||||
- const SliceTransform* rep_;
|
||||
- ~Wrapper() { delete rep_; }
|
||||
- const char* Name() const override { return rep_->Name(); }
|
||||
- Slice Transform(const Slice& src) const override {
|
||||
- return rep_->Transform(src);
|
||||
- }
|
||||
- bool InDomain(const Slice& src) const override {
|
||||
- return rep_->InDomain(src);
|
||||
- }
|
||||
- bool InRange(const Slice& src) const override { return rep_->InRange(src); }
|
||||
- static void DoNothing(void*) { }
|
||||
- };
|
||||
- Wrapper* wrapper = new Wrapper;
|
||||
+ WrapperST* wrapper = new WrapperST;
|
||||
wrapper->rep_ = rocksdb::NewNoopTransform();
|
||||
wrapper->state_ = nullptr;
|
||||
- wrapper->destructor_ = &Wrapper::DoNothing;
|
||||
+ wrapper->destructor_ = &WrapperST::DoNothing;
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
--- ceph-12.2.3/src/rocksdb/memtable/inlineskiplist.h.orig 2018-02-22 10:34:06.918899631 -0500
|
||||
+++ ceph-12.2.3/src/rocksdb/memtable/inlineskiplist.h 2018-02-22 10:34:44.145899631 -0500
|
||||
@@ -279,7 +279,7 @@
|
||||
// next_[0]. This is used for passing data from AllocateKey to Insert.
|
||||
void StashHeight(const int height) {
|
||||
assert(sizeof(int) <= sizeof(next_[0]));
|
||||
- memcpy(&next_[0], &height, sizeof(int));
|
||||
+ memcpy(static_cast<void*>(&next_[0]), &height, sizeof(int));
|
||||
}
|
||||
|
||||
// Retrieves the value passed to StashHeight. Undefined after a call
|
||||
@@ -1,127 +0,0 @@
|
||||
--- ceph-12.2.8/src/CMakeLists.txt.orig 2018-09-12 10:32:04.536254900 -0400
|
||||
+++ ceph-12.2.8/src/CMakeLists.txt 2018-09-12 10:32:22.454254900 -0400
|
||||
@@ -244,9 +244,6 @@
|
||||
endif()
|
||||
|
||||
# Python stuff
|
||||
-find_package(PythonInterp 2 REQUIRED)
|
||||
-find_package(PythonLibs 2 REQUIRED)
|
||||
-
|
||||
option(WITH_PYTHON3 "build python3 bindings" "CHECK")
|
||||
if(WITH_PYTHON3 MATCHES "check|CHECK")
|
||||
find_package(Python3Interp 3 QUIET)
|
||||
--- ceph-12.2.8/src/pybind/CMakeLists.txt.orig 2018-09-12 10:45:44.057254900 -0400
|
||||
+++ ceph-12.2.8/src/pybind/CMakeLists.txt 2018-09-12 12:36:23.604254900 -0400
|
||||
@@ -6,7 +6,6 @@
|
||||
if(WITH_PYTHON3)
|
||||
set(py_vers 3)
|
||||
endif()
|
||||
-list(APPEND py_vers 2)
|
||||
|
||||
foreach(python_version ${py_vers})
|
||||
if(${python_version} EQUAL 2)
|
||||
@@ -58,7 +57,7 @@
|
||||
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ceph_rest_api.py
|
||||
- DESTINATION ${PYTHON_INSTDIR})
|
||||
+ DESTINATION ${PYTHON${PYTHON_VERSION}_INSTDIR})
|
||||
|
||||
if(WITH_MGR)
|
||||
# Location needs to match default setting for mgr_module_path, currently:
|
||||
--- ceph-12.2.8/src/tools/setup-virtualenv.sh.orig 2018-09-13 10:57:53.530254900 -0400
|
||||
+++ ceph-12.2.8/src/tools/setup-virtualenv.sh 2018-09-13 13:02:10.455254900 -0400
|
||||
@@ -15,10 +15,12 @@
|
||||
# GNU Library Public License for more details.
|
||||
#
|
||||
|
||||
+echo ====================== setup-virtualenv $DIR ================
|
||||
+
|
||||
DIR=$1
|
||||
rm -fr $DIR
|
||||
mkdir -p $DIR
|
||||
-virtualenv --python python2.7 $DIR
|
||||
+virtualenv --python python3 $DIR
|
||||
. $DIR/bin/activate
|
||||
|
||||
if pip --help | grep -q disable-pip-version-check; then
|
||||
--- ceph-12.2.8/src/ceph.in.orig 2018-09-13 13:16:24.181254900 -0400
|
||||
+++ ceph-12.2.8/src/ceph.in 2018-09-13 13:16:33.608254900 -0400
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!@PYTHON_EXECUTABLE@
|
||||
+#!@PYTHON3_EXECUTABLE@
|
||||
# -*- mode:python -*-
|
||||
# vim: ts=4 sw=4 smarttab expandtab
|
||||
#
|
||||
diff -ur ceph-12.2.5/src/brag/client/ceph-brag ceph-12.2.5-mod/src/brag/client/ceph-brag
|
||||
--- ceph-12.2.5/src/brag/client/ceph-brag 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/brag/client/ceph-brag 2018-05-22 21:06:32.952813105 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
diff -ur ceph-12.2.5/src/ceph-create-keys ceph-12.2.5-mod/src/ceph-create-keys
|
||||
--- ceph-12.2.5/src/ceph-create-keys 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-create-keys 2018-05-22 21:09:49.103398176 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
import argparse
|
||||
import errno
|
||||
import json
|
||||
diff -ur ceph-12.2.5/src/ceph-detect-init/ceph_detect_init/main.py ceph-12.2.5-mod/src/ceph-detect-init/ceph_detect_init/main.py
|
||||
--- ceph-12.2.5/src/ceph-detect-init/ceph_detect_init/main.py 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-detect-init/ceph_detect_init/main.py 2018-05-22 21:09:14.943993086 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2015 <contact@redhat.com>
|
||||
# Copyright (C) 2015 SUSE LINUX GmbH
|
||||
diff -ur ceph-12.2.5/src/ceph-disk/ceph_disk/main.py ceph-12.2.5-mod/src/ceph-disk/ceph_disk/main.py
|
||||
--- ceph-12.2.5/src/ceph-disk/ceph_disk/main.py 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-disk/ceph_disk/main.py 2018-05-22 21:11:02.606118074 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2015, 2016, 2017 Red Hat <contact@redhat.com>
|
||||
# Copyright (C) 2014 Inktank <info@inktank.com>
|
||||
diff -ur ceph-12.2.5/src/ceph-rest-api ceph-12.2.5-mod/src/ceph-rest-api
|
||||
--- ceph-12.2.5/src/ceph-rest-api 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-rest-api 2018-05-22 21:10:50.202334095 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
# vim: ts=4 sw=4 smarttab expandtab
|
||||
|
||||
import argparse
|
||||
diff -ur ceph-12.2.5/src/ceph-volume/bin/ceph-volume ceph-12.2.5-mod/src/ceph-volume/bin/ceph-volume
|
||||
--- ceph-12.2.5/src/ceph-volume/bin/ceph-volume 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-volume/bin/ceph-volume 2018-05-22 21:07:43.104592535 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from ceph_volume import main
|
||||
|
||||
diff -ur ceph-12.2.5/src/ceph-volume/bin/ceph-volume-systemd ceph-12.2.5-mod/src/ceph-volume/bin/ceph-volume-systemd
|
||||
--- ceph-12.2.5/src/ceph-volume/bin/ceph-volume-systemd 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/ceph-volume/bin/ceph-volume-systemd 2018-05-22 21:07:46.628531163 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
from ceph_volume.systemd import main
|
||||
|
||||
diff -ur ceph-12.2.5/src/mount.fuse.ceph ceph-12.2.5-mod/src/mount.fuse.ceph
|
||||
--- ceph-12.2.5/src/mount.fuse.ceph 2018-04-23 18:18:33.000000000 +0200
|
||||
+++ ceph-12.2.5-mod/src/mount.fuse.ceph 2018-05-22 21:08:06.355187609 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
'''
|
||||
Helper to mount ceph-fuse from /etc/fstab. To use, add an entry
|
||||
like:
|
||||
@@ -1,19 +0,0 @@
|
||||
--- ceph-12.2.9/src/osd/PrimaryLogPG.cc.orig 2018-10-29 09:12:57.766116270 -0400
|
||||
+++ ceph-12.2.9/src/osd/PrimaryLogPG.cc 2018-10-29 09:32:37.146116270 -0400
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "PG.h"
|
||||
#include "PrimaryLogPG.h"
|
||||
#include "OSD.h"
|
||||
+#include <algorithm>
|
||||
#include "OpRequest.h"
|
||||
#include "ScrubStore.h"
|
||||
#include "Session.h"
|
||||
@@ -1586,7 +1587,7 @@
|
||||
pg_log.get_log().approx_size() > target) {
|
||||
dout(10) << __func__ << " approx pg log length = "
|
||||
<< pg_log.get_log().approx_size() << dendl;
|
||||
- size_t num_to_trim = std::min(pg_log.get_log().approx_size() - target,
|
||||
+ size_t num_to_trim = std::min<uint64_t>(pg_log.get_log().approx_size() - target,
|
||||
cct->_conf->osd_pg_log_trim_max);
|
||||
dout(10) << __func__ << " num_to_trim = " << num_to_trim << dendl;
|
||||
if (num_to_trim < cct->_conf->osd_pg_log_trim_min &&
|
||||
@@ -0,0 +1,11 @@
|
||||
--- 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)
|
||||
@@ -0,0 +1,27 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
--- 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"
|
||||
@@ -0,0 +1,63 @@
|
||||
--- ceph-16.2.7/src/include/buffer.h.orig 2022-01-17 12:17:19.193356237 -0500
|
||||
+++ ceph-16.2.7/src/include/buffer.h 2022-01-17 12:17:58.599639592 -0500
|
||||
@@ -38,6 +38,7 @@
|
||||
# include <sys/mman.h>
|
||||
#endif
|
||||
|
||||
+#include <memory>
|
||||
#include <iosfwd>
|
||||
#include <iomanip>
|
||||
#include <list>
|
||||
--- 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
|
||||
@@ -114,7 +114,7 @@
|
||||
#include "rgw/rgw_common.h"
|
||||
|
||||
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();
|
||||
@@ -142,7 +142,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-16.2.7/src/test/test_trans.cc.orig 2022-01-19 13:24:33.460008897 -0500
|
||||
+++ ceph-16.2.7/src/test/test_trans.cc 2022-01-19 13:24:58.211554005 -0500
|
||||
@@ -51,7 +51,7 @@
|
||||
cout << "#dev " << filename << std::endl;
|
||||
cout << "#mb " << mb << std::endl;
|
||||
|
||||
- ObjectStore *fs = new FileStore(cct.get(), filename, NULL);
|
||||
+ ObjectStore *fs = new FileStore(cct.get(), filename, "");
|
||||
if (fs->mount() < 0) {
|
||||
cout << "mount failed" << std::endl;
|
||||
return -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)
|
||||
@@ -0,0 +1,37 @@
|
||||
--- ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt.orig 2022-03-01 08:19:04.974902872 -0500
|
||||
+++ ceph-17.1.0/src/rgw/store/dbstore/sqlite/CMakeLists.txt 2022-03-11 07:55:16.236261471 -0500
|
||||
@@ -12,5 +12,5 @@
|
||||
set(SQLITE_COMPILE_FLAGS "-DSQLITE_THREADSAFE=1")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SQLITE_COMPILE_FLAGS}")
|
||||
|
||||
-add_library(sqlite_db ${sqlite_db_srcs})
|
||||
+add_library(sqlite_db STATIC ${sqlite_db_srcs})
|
||||
target_link_libraries(sqlite_db sqlite3 dbstore_lib rgw_common)
|
||||
--- ceph-17.1.0/src/rgw/store/dbstore/CMakeLists.txt.orig 2022-02-28 14:11:49.987077811 -0500
|
||||
+++ ceph-17.1.0/src/rgw/store/dbstore/CMakeLists.txt 2022-03-11 08:40:13.409682698 -0500
|
||||
@@ -16,7 +16,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/fmt/include")
|
||||
target_include_directories(dbstore_lib PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw")
|
||||
set(link_targets spawn)
|
||||
@@ -38,6 +38,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)
|
||||
@@ -47,7 +48,7 @@
|
||||
endif()
|
||||
|
||||
include_directories(${CMAKE_INCLUDE_DIR})
|
||||
-add_library(dbstore ${dbstore_mgr_srcs})
|
||||
+add_library(dbstore STATIC ${dbstore_mgr_srcs})
|
||||
target_link_libraries(dbstore ${CMAKE_LINK_LIBRARIES})
|
||||
|
||||
# testing purpose
|
||||
@@ -0,0 +1,43 @@
|
||||
--- ceph-17.2.0-359-gb2fe9ec8/cmake/modules/CheckCxxAtomic.cmake.orig 2022-06-03 08:45:32.341075140 -0400
|
||||
+++ ceph-17.2.0-359-gb2fe9ec8/cmake/modules/CheckCxxAtomic.cmake 2022-06-03 08:46:47.195775813 -0400
|
||||
@@ -10,8 +10,9 @@
|
||||
check_cxx_source_compiles("
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
+#include <cstddef>
|
||||
|
||||
-#if defined(__s390x__) || defined(__mips__)
|
||||
+#if defined(__SIZEOF_INT128__)
|
||||
// Boost needs 16-byte atomics for tagged pointers.
|
||||
// These are implemented via inline instructions on the platform
|
||||
// if 16-byte alignment can be proven, and are delegated to libatomic
|
||||
@@ -21,13 +22,27 @@
|
||||
// We specifically test access via an otherwise unknown pointer here
|
||||
// to ensure we get the most complex case. If this access can be
|
||||
// done without libatomic, then all accesses can be done.
|
||||
-bool atomic16(std::atomic<unsigned __int128> *ptr)
|
||||
+struct tagged_ptr {
|
||||
+ int* ptr;
|
||||
+ std::size_t tag;
|
||||
+};
|
||||
+
|
||||
+void atomic16(std::atomic<tagged_ptr> *ptr) __attribute__ ((used));
|
||||
+void atomic16(std::atomic<tagged_ptr> *ptr)
|
||||
{
|
||||
- return *ptr != 0;
|
||||
+ tagged_ptr p{nullptr, 1};
|
||||
+ ptr->store(p);
|
||||
+ tagged_ptr f = ptr->load();
|
||||
+ tagged_ptr new_tag{nullptr, 0};
|
||||
+ ptr->compare_exchange_strong(f, new_tag);
|
||||
}
|
||||
#endif
|
||||
|
||||
int main() {
|
||||
+#if defined(__SIZEOF_INT128__)
|
||||
+ std::atomic<tagged_ptr> ptr;
|
||||
+ atomic16(&ptr);
|
||||
+#endif
|
||||
std::atomic<uint8_t> w1;
|
||||
std::atomic<uint16_t> w2;
|
||||
std::atomic<uint32_t> w4;
|
||||
@@ -0,0 +1,11 @@
|
||||
--- 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})
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,28 @@
|
||||
From fff72cd14c58d06774cbd0274e6144b42448af03 Mon Sep 17 00:00:00 2001
|
||||
From: "Adam C. Emerson" <aemerson@redhat.com>
|
||||
Date: Mon, 7 Mar 2022 18:54:30 -0500
|
||||
Subject: [PATCH] mon: Replace deprecated use of format_to
|
||||
|
||||
The non-deprecated version takes an explicit OutputIterator.
|
||||
|
||||
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>
|
||||
---
|
||||
src/mon/LogMonitor.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc
|
||||
index 9103ddf7c5b..c196e8429fb 100644
|
||||
--- a/src/mon/LogMonitor.cc
|
||||
+++ b/src/mon/LogMonitor.cc
|
||||
@@ -411,7 +411,7 @@ void LogMonitor::log_external(const LogEntry& le)
|
||||
}
|
||||
|
||||
if (fd >= 0) {
|
||||
- fmt::format_to(file_log_buffer, "{}\n", le);
|
||||
+ fmt::format_to(std::back_inserter(file_log_buffer), "{}\n", le);
|
||||
int err = safe_write(fd, file_log_buffer.data(), file_log_buffer.size());
|
||||
file_log_buffer.clear();
|
||||
if (err < 0) {
|
||||
--
|
||||
2.36.1
|
||||
|
||||
@@ -0,0 +1,218 @@
|
||||
--- ceph-17.2.3/src/s3select/include/s3select_parquet_intrf.h.orig 2022-01-11 15:47:52.000000000 -0500
|
||||
+++ ceph-17.2.3/src/s3select/include/s3select_parquet_intrf.h 2022-08-22 10:26:06.738082924 -0400
|
||||
@@ -26,6 +26,14 @@
|
||||
#include "internal_file_decryptor.h"
|
||||
#include "encryption_internal.h"
|
||||
|
||||
+#if ARROW_VERSION_MAJOR < 9
|
||||
+#define _ARROW_FD fd_
|
||||
+#define _ARROW_FD_TYPE int
|
||||
+#else
|
||||
+#define _ARROW_FD fd_.fd()
|
||||
+#define _ARROW_FD_TYPE arrow::internal::FileDescriptor
|
||||
+#endif
|
||||
+
|
||||
/******************************************/
|
||||
/******************************************/
|
||||
class optional_yield;
|
||||
@@ -164,7 +172,7 @@
|
||||
std::mutex lock_;
|
||||
|
||||
// File descriptor
|
||||
- int fd_;
|
||||
+ _ARROW_FD_TYPE fd_;
|
||||
|
||||
FileMode::type mode_;
|
||||
|
||||
@@ -202,7 +210,7 @@
|
||||
mode_ = write_only ? FileMode::WRITE : FileMode::READWRITE;
|
||||
|
||||
if (!truncate) {
|
||||
- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_));
|
||||
+ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD));
|
||||
} else {
|
||||
size_ = 0;
|
||||
}
|
||||
@@ -222,7 +230,11 @@
|
||||
RETURN_NOT_OK(SetFileName(fd));
|
||||
is_open_ = true;
|
||||
mode_ = FileMode::WRITE;
|
||||
+ #if ARROW_VERSION_MAJOR < 9
|
||||
fd_ = fd;
|
||||
+ #else
|
||||
+ fd_ = arrow::internal::FileDescriptor{fd};
|
||||
+ #endif
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
@@ -230,7 +242,7 @@
|
||||
RETURN_NOT_OK(SetFileName(path));
|
||||
|
||||
ARROW_ASSIGN_OR_RAISE(fd_, ::arrow::internal::FileOpenReadable(file_name_));
|
||||
- ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(fd_));
|
||||
+ ARROW_ASSIGN_OR_RAISE(size_, ::arrow::internal::FileGetSize(_ARROW_FD));
|
||||
|
||||
is_open_ = true;
|
||||
mode_ = FileMode::READ;
|
||||
@@ -242,7 +254,11 @@
|
||||
RETURN_NOT_OK(SetFileName(fd));
|
||||
is_open_ = true;
|
||||
mode_ = FileMode::READ;
|
||||
+ #if ARROW_VERSION_MAJOR < 9
|
||||
fd_ = fd;
|
||||
+ #else
|
||||
+ fd_ = arrow::internal::FileDescriptor{fd};
|
||||
+ #endif
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
@@ -258,9 +274,13 @@
|
||||
// Even if closing fails, the fd will likely be closed (perhaps it's
|
||||
// already closed).
|
||||
is_open_ = false;
|
||||
+ #if ARROW_VERSION_MAJOR < 9
|
||||
int fd = fd_;
|
||||
fd_ = -1;
|
||||
RETURN_NOT_OK(::arrow::internal::FileClose(fd));
|
||||
+ #else
|
||||
+ RETURN_NOT_OK(fd_.Close());
|
||||
+ #endif
|
||||
}
|
||||
return Status::OK();
|
||||
}
|
||||
@@ -268,7 +288,7 @@
|
||||
Result<int64_t> Read(int64_t nbytes, void* out) override {
|
||||
RETURN_NOT_OK(CheckClosed());
|
||||
RETURN_NOT_OK(CheckPositioned());
|
||||
- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes);
|
||||
+ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes);
|
||||
}
|
||||
|
||||
Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) override {
|
||||
@@ -277,7 +297,7 @@
|
||||
// ReadAt() leaves the file position undefined, so require that we seek
|
||||
// before calling Read() or Write().
|
||||
need_seeking_.store(true);
|
||||
- return ::arrow::internal::FileReadAt(fd_, reinterpret_cast<uint8_t*>(out), position,
|
||||
+ return ::arrow::internal::FileReadAt(_ARROW_FD, reinterpret_cast<uint8_t*>(out), position,
|
||||
nbytes);
|
||||
}
|
||||
|
||||
@@ -286,7 +306,7 @@
|
||||
if (pos < 0) {
|
||||
return Status::Invalid("Invalid position");
|
||||
}
|
||||
- Status st = ::arrow::internal::FileSeek(fd_, pos);
|
||||
+ Status st = ::arrow::internal::FileSeek(_ARROW_FD, pos);
|
||||
if (st.ok()) {
|
||||
need_seeking_.store(false);
|
||||
}
|
||||
@@ -295,7 +315,7 @@
|
||||
|
||||
Result<int64_t> Tell() const override {
|
||||
RETURN_NOT_OK(CheckClosed());
|
||||
- return ::arrow::internal::FileTell(fd_);
|
||||
+ return ::arrow::internal::FileTell(_ARROW_FD);
|
||||
}
|
||||
|
||||
Status Write(const void* data, int64_t length) override {
|
||||
@@ -306,11 +326,11 @@
|
||||
if (length < 0) {
|
||||
return Status::IOError("Length must be non-negative");
|
||||
}
|
||||
- return ::arrow::internal::FileWrite(fd_, reinterpret_cast<const uint8_t*>(data),
|
||||
+ return ::arrow::internal::FileWrite(_ARROW_FD, reinterpret_cast<const uint8_t*>(data),
|
||||
length);
|
||||
}
|
||||
|
||||
- int fd() const override { return fd_; }
|
||||
+ int fd() const override { return _ARROW_FD; }
|
||||
|
||||
bool is_open() const override { return is_open_; }
|
||||
|
||||
@@ -345,7 +365,7 @@
|
||||
std::mutex lock_;
|
||||
|
||||
// File descriptor
|
||||
- int fd_;
|
||||
+ _ARROW_FD_TYPE fd_;
|
||||
|
||||
FileMode::type mode_;
|
||||
|
||||
@@ -411,7 +431,11 @@
|
||||
// already closed).
|
||||
is_open_ = false;
|
||||
//int fd = fd_;
|
||||
+ #if ARROW_VERSION_MAJOR < 9
|
||||
fd_ = -1;
|
||||
+ #else
|
||||
+ fd_.Close();
|
||||
+ #endif
|
||||
//RETURN_NOT_OK(::arrow::internal::FileClose(fd));
|
||||
}
|
||||
return Status::OK();
|
||||
@@ -421,7 +445,7 @@
|
||||
NOT_IMPLEMENT;
|
||||
RETURN_NOT_OK(CheckClosed());
|
||||
RETURN_NOT_OK(CheckPositioned());
|
||||
- return ::arrow::internal::FileRead(fd_, reinterpret_cast<uint8_t*>(out), nbytes);
|
||||
+ return ::arrow::internal::FileRead(_ARROW_FD, reinterpret_cast<uint8_t*>(out), nbytes);
|
||||
}
|
||||
|
||||
Result<int64_t> ReadAt(int64_t position, int64_t nbytes, void* out) {
|
||||
@@ -443,7 +467,7 @@
|
||||
return Status::OK();
|
||||
}
|
||||
|
||||
- int fd() const { return fd_; }
|
||||
+ int fd() const { return _ARROW_FD; }
|
||||
|
||||
bool is_open() const { return is_open_; }
|
||||
|
||||
@@ -467,7 +491,7 @@
|
||||
std::mutex lock_;
|
||||
|
||||
// File descriptor
|
||||
- int fd_;
|
||||
+ _ARROW_FD_TYPE fd_;
|
||||
|
||||
FileMode::type mode_;
|
||||
|
||||
@@ -609,7 +633,7 @@
|
||||
for (const auto& range : ranges) {
|
||||
RETURN_NOT_OK(internal::ValidateRange(range.offset, range.length));
|
||||
#if defined(POSIX_FADV_WILLNEED)
|
||||
- if (posix_fadvise(fd_, range.offset, range.length, POSIX_FADV_WILLNEED)) {
|
||||
+ if (posix_fadvise(_ARROW_FD, range.offset, range.length, POSIX_FADV_WILLNEED)) {
|
||||
return IOErrorFromErrno(errno, "posix_fadvise failed");
|
||||
}
|
||||
#elif defined(F_RDADVISE) // macOS, BSD?
|
||||
@@ -617,7 +641,7 @@
|
||||
off_t ra_offset;
|
||||
int ra_count;
|
||||
} radvisory{range.offset, static_cast<int>(range.length)};
|
||||
- if (radvisory.ra_count > 0 && fcntl(fd_, F_RDADVISE, &radvisory) == -1) {
|
||||
+ if (radvisory.ra_count > 0 && fcntl(_ARROW_FD, F_RDADVISE, &radvisory) == -1) {
|
||||
return IOErrorFromErrno(errno, "fcntl(fd, F_RDADVISE, ...) failed");
|
||||
}
|
||||
#endif
|
||||
@@ -970,6 +994,9 @@
|
||||
CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_,
|
||||
static_cast<int16_t>(i), meta_decryptor, data_decryptor);
|
||||
return PageReader::Open(stream, col->num_values(), col->compression(),
|
||||
+ #if ARROW_VERSION_MAJOR > 8
|
||||
+ false,
|
||||
+ #endif
|
||||
properties_.memory_pool(), &ctx);
|
||||
}
|
||||
|
||||
@@ -985,6 +1012,9 @@
|
||||
CryptoContext ctx(col->has_dictionary_page(), row_group_ordinal_,
|
||||
static_cast<int16_t>(i), meta_decryptor, data_decryptor);
|
||||
return PageReader::Open(stream, col->num_values(), col->compression(),
|
||||
+ #if ARROW_VERSION_MAJOR > 8
|
||||
+ false,
|
||||
+ #endif
|
||||
properties_.memory_pool(), &ctx);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
--- ceph-17.2.5/src/common/subsys_types.h.orig 2023-01-17 05:29:55.711592884 -0500
|
||||
+++ ceph-17.2.5/src/common/subsys_types.h 2023-01-17 05:31:05.759282197 -0500
|
||||
@@ -53,7 +53,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-17.2.5/src/msg/async/compression_onwire.h.orig 2023-01-17 07:34:31.923701878 -0500
|
||||
+++ ceph-17.2.5/src/msg/async/compression_onwire.h 2023-01-17 07:35:04.493093534 -0500
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
class TxHandler final : private Handler {
|
||||
public:
|
||||
- TxHandler(CephContext* const cct, CompressorRef compressor, int mode, std::uint64_t min_size)
|
||||
+ TxHandler(CephContext* const cct, CompressorRef compressor, int mode, uint64_t min_size)
|
||||
: Handler(cct, compressor),
|
||||
m_min_size(min_size),
|
||||
m_mode(static_cast<Compressor::CompressionMode>(mode))
|
||||
@@ -97,7 +97,7 @@
|
||||
static rxtx_t create_handler_pair(
|
||||
CephContext* ctx,
|
||||
const CompConnectionMeta& comp_meta,
|
||||
- std::uint64_t compress_min_size);
|
||||
+ uint64_t compress_min_size);
|
||||
};
|
||||
}
|
||||
|
||||
--- ceph-17.2.5/src/msg/async/crypto_onwire.h.orig 2023-01-17 07:35:35.535513714 -0500
|
||||
+++ ceph-17.2.5/src/msg/async/crypto_onwire.h 2023-01-17 07:35:46.578307452 -0500
|
||||
@@ -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-17.2.5/src/test/librados/op_speed.cc.orig 2023-01-17 08:57:37.078531022 -0500
|
||||
+++ ceph-17.2.5/src/test/librados/op_speed.cc 2023-01-17 08:57:58.259139439 -0500
|
||||
@@ -9,7 +9,7 @@
|
||||
for (int i = 0; i < to_create; ++i) {
|
||||
librados::ObjectReadOperation op;
|
||||
bufferlist bl;
|
||||
- std::uint64_t sz;
|
||||
+ uint64_t sz;
|
||||
struct timespec tm;
|
||||
std::map<std::string, ceph::buffer::list> xattrs;
|
||||
std::map<std::string, ceph::buffer::list> omap;
|
||||
--- ceph-17.2.5/src/test/mon/test_log_rss_usage.cc.orig 2023-01-17 10:14:37.552820230 -0500
|
||||
+++ ceph-17.2.5/src/test/mon/test_log_rss_usage.cc 2023-01-17 10:15:12.319202506 -0500
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
+#include <cstdint>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
--- ceph-17.2.5/src/rocksdb/db/compaction/compaction_iteration_stats.h.orig 2023-01-26 17:05:20.605333926 -0500
|
||||
+++ ceph-17.2.5/src/rocksdb/db/compaction/compaction_iteration_stats.h 2023-01-26 17:05:46.376880846 -0500
|
||||
@@ -6,6 +6,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "rocksdb/rocksdb_namespace.h"
|
||||
+#include <cstdint>
|
||||
|
||||
struct CompactionIterationStats {
|
||||
// Compaction statistics
|
||||
@@ -0,0 +1,42 @@
|
||||
From 73218e291ca68a927965bdffa7d43d0fc62c2718 Mon Sep 17 00:00:00 2001
|
||||
From: Ondrej Mosnacek <omosnace@redhat.com>
|
||||
Date: Wed, 27 Jul 2022 17:14:25 +0200
|
||||
Subject: [PATCH] selinux: prepare for anon inode controls enablement
|
||||
|
||||
We plan to start labeling anon inodes (userfaultfd and io_uring file
|
||||
descriptors) properly in selinux-policy, which means that domains using
|
||||
these will need new rules.
|
||||
|
||||
See: https://github.com/fedora-selinux/selinux-policy/pull/1351
|
||||
|
||||
Since ceph may optionally use io_uring, this patch adds the necessary
|
||||
interface call to its policy to avoid a regression. As the new interface
|
||||
call is put under a conditional, the policy package will be buildable
|
||||
against selinux-policy with or without the above PR merged, but it will
|
||||
need to be rebuilt against the updated selinux-policy to actually pick
|
||||
up the new rules.
|
||||
|
||||
I tested this on a minimal ceph cluster with 'bdev_ioring = true' added
|
||||
to ceph.conf. I got io_uring denials without this patch + with
|
||||
selinux-policy with PR#1351 and no denials with ceph rebuilt with this
|
||||
patch.
|
||||
|
||||
Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
|
||||
---
|
||||
selinux/ceph.te | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/selinux/ceph.te b/selinux/ceph.te
|
||||
index 77d35d9714b60..729bce1fc8589 100644
|
||||
--- a/selinux/ceph.te
|
||||
+++ b/selinux/ceph.te
|
||||
@@ -75,6 +75,9 @@ manage_lnk_files_pattern(ceph_t, ceph_var_run_t, ceph_var_run_t)
|
||||
|
||||
kernel_read_system_state(ceph_t)
|
||||
kernel_read_network_state(ceph_t)
|
||||
+ifdef(`kernel_io_uring_use',`
|
||||
+ kernel_io_uring_use(ceph_t)
|
||||
+')
|
||||
allow ceph_t kernel_t:system module_request;
|
||||
|
||||
corenet_all_recvfrom_unlabeled(ceph_t)
|
||||
@@ -0,0 +1,99 @@
|
||||
--- ceph-17.2.5/src/boost/libs/python/src/object/enum.cpp.orig 2023-02-23 08:45:36.498595122 -0500
|
||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/enum.cpp 2023-02-23 08:46:11.277990890 -0500
|
||||
@@ -153,7 +153,7 @@
|
||||
{
|
||||
if (enum_type_object.tp_dict == 0)
|
||||
{
|
||||
- Py_TYPE(&enum_type_object) = incref(&PyType_Type);
|
||||
+ Py_SET_TYPE(&enum_type_object, incref(&PyType_Type));
|
||||
#if PY_VERSION_HEX >= 0x03000000
|
||||
enum_type_object.tp_base = &PyLong_Type;
|
||||
#else
|
||||
--- ceph-17.2.5/src/boost/libs/python/src/object/function.cpp.orig 2023-02-23 08:44:19.995920877 -0500
|
||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/function.cpp 2023-02-23 08:45:26.426770100 -0500
|
||||
@@ -107,7 +107,7 @@
|
||||
PyObject* p = this;
|
||||
if (Py_TYPE(&function_type) == 0)
|
||||
{
|
||||
- Py_TYPE(&function_type) = &PyType_Type;
|
||||
+ Py_SET_TYPE(&function_type, &PyType_Type);
|
||||
::PyType_Ready(&function_type);
|
||||
}
|
||||
|
||||
--- ceph-17.2.5/src/boost/libs/python/src/object/life_support.cpp.orig 2023-02-23 08:43:37.511650115 -0500
|
||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/life_support.cpp 2023-02-23 08:44:10.225088588 -0500
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
if (Py_TYPE(&life_support_type) == 0)
|
||||
{
|
||||
- Py_TYPE(&life_support_type) = &PyType_Type;
|
||||
+ Py_SET_TYPE(&life_support_type, &PyType_Type);
|
||||
PyType_Ready(&life_support_type);
|
||||
}
|
||||
|
||||
--- ceph-17.2.5/src/boost/libs/python/src/object/class.cpp.orig 2023-02-23 08:46:22.394797757 -0500
|
||||
+++ ceph-17.2.5/src/boost/libs/python/src/object/class.cpp 2023-02-23 10:54:56.016527900 -0500
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <boost/python/dict.hpp>
|
||||
#include <boost/python/str.hpp>
|
||||
#include <boost/python/ssize_t.hpp>
|
||||
+#include <boost/align/detail/align.hpp>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
#include <cstddef>
|
||||
@@ -208,7 +209,7 @@
|
||||
{
|
||||
if (static_data_object.tp_dict == 0)
|
||||
{
|
||||
- Py_TYPE(&static_data_object) = &PyType_Type;
|
||||
+ Py_SET_TYPE(&static_data_object, &PyType_Type);
|
||||
static_data_object.tp_base = &PyProperty_Type;
|
||||
if (PyType_Ready(&static_data_object))
|
||||
return 0;
|
||||
@@ -316,7 +317,7 @@
|
||||
{
|
||||
if (class_metatype_object.tp_dict == 0)
|
||||
{
|
||||
- Py_TYPE(&class_metatype_object) = &PyType_Type;
|
||||
+ Py_SET_TYPE(&class_metatype_object, &PyType_Type);
|
||||
class_metatype_object.tp_base = &PyType_Type;
|
||||
if (PyType_Ready(&class_metatype_object))
|
||||
return type_handle();
|
||||
@@ -374,12 +375,7 @@
|
||||
// like, so we'll store the total size of the object
|
||||
// there. A negative number indicates that the extra
|
||||
// instance memory is not yet allocated to any holders.
|
||||
-#if PY_VERSION_HEX >= 0x02060000
|
||||
- Py_SIZE(result) =
|
||||
-#else
|
||||
- result->ob_size =
|
||||
-#endif
|
||||
- -(static_cast<int>(offsetof(instance<>,storage) + instance_size));
|
||||
+ Py_SET_SIZE(result,-static_cast<int>(offsetof(instance<>,storage) + instance_size));
|
||||
}
|
||||
return (PyObject*)result;
|
||||
}
|
||||
@@ -470,7 +466,7 @@
|
||||
{
|
||||
if (class_type_object.tp_dict == 0)
|
||||
{
|
||||
- Py_TYPE(&class_type_object) = incref(class_metatype().get());
|
||||
+ Py_SET_TYPE(&class_type_object, incref(class_metatype().get()));
|
||||
class_type_object.tp_base = &PyBaseObject_Type;
|
||||
if (PyType_Ready(&class_type_object))
|
||||
return type_handle();
|
||||
@@ -738,8 +734,13 @@
|
||||
// holder_offset should at least point into the variable-sized part
|
||||
assert(holder_offset >= offsetof(objects::instance<>,storage));
|
||||
|
||||
+ size_t allocated = holder_size + 8;
|
||||
+ void* storage = (char*)self + holder_offset;
|
||||
+ void* aligned_storage = ::boost::alignment::align(8, holder_size, storage, allocated);
|
||||
+
|
||||
// Record the fact that the storage is occupied, noting where it starts
|
||||
- Py_SIZE(self) = holder_offset;
|
||||
+ const size_t offset = reinterpret_cast<uintptr_t>(aligned_storage) - reinterpret_cast<uintptr_t>(storage) + holder_offset;
|
||||
+ Py_SET_SIZE(self, offset);
|
||||
return (char*)self + holder_offset;
|
||||
}
|
||||
else
|
||||
@@ -0,0 +1,15 @@
|
||||
--- ceph-17.2.6/cmake/modules/BuildBoost.cmake.orig 2023-04-27 14:00:28.239524778 -0400
|
||||
+++ ceph-17.2.6/cmake/modules/BuildBoost.cmake 2023-04-28 07:49:59.743342207 -0400
|
||||
@@ -63,7 +63,11 @@
|
||||
else()
|
||||
list(APPEND boost_features "address-model=32")
|
||||
endif()
|
||||
- set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
||||
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
||||
+ set(BOOST_CXXFLAGS "-fPIC -w -fcf-protection") # check on arm, etc <---XXX
|
||||
+ else()
|
||||
+ set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
|
||||
+ endif()
|
||||
list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
|
||||
|
||||
set(boost_with_libs)
|
||||
@@ -0,0 +1,61 @@
|
||||
--- 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
|
||||
@@ -0,0 +1,13 @@
|
||||
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)
|
||||
@@ -1 +1 @@
|
||||
SHA512 (ceph-12.2.9.tar.gz) = 93da6f9012fdb65e74dc1917f54839cb19a25672d53e7ee253553e93abb1a2afb51cd18b27bc82559108e2085e463a3b46003b03627e06a6e2e2312b54d86e92
|
||||
SHA512 (ceph-17.2.7.tar.gz) = 9005de7661c6a9d1054f1388cff2f48eb1af93565ebf852669de546eed594ed6a2668944b25a64c406d00f88bd2f7a6eac2ae96b04789c03ea4d248d1a683e7b
|
||||
|
||||
Reference in New Issue
Block a user