diff --git a/0000-src-rocksdb-util-murmurhash.patch b/0000-src-rocksdb-util-murmurhash.patch deleted file mode 100644 index f67a0ff..0000000 --- a/0000-src-rocksdb-util-murmurhash.patch +++ /dev/null @@ -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; - }; diff --git a/0001-cmake-Support-ppc64.patch b/0001-cmake-Support-ppc64.patch deleted file mode 100644 index 6b09549..0000000 --- a/0001-cmake-Support-ppc64.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 2f0a7153460acc3f21462236f470ec3471fa2ee1 Mon Sep 17 00:00:00 2001 -From: Boris Ranto -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 ---- - 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 - --#if __linux__ && __powerpc64__ -+#ifdef HAVE_PPC64LE - #include - #include --#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 - diff --git a/0002-librbd-Conditionally-import-TrimRequest.cc.patch b/0002-librbd-Conditionally-import-TrimRequest.cc.patch deleted file mode 100644 index 2f02efb..0000000 --- a/0002-librbd-Conditionally-import-TrimRequest.cc.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 74a754690736f6608b0d4d9c807df0bd777a129d Mon Sep 17 00:00:00 2001 -From: Boris Ranto -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 ---- - 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::send_finish(int r) { - } // namespace operation - } // namespace librbd - -+#ifndef TEST_F - template class librbd::operation::TrimRequest; -+#endif --- -2.9.5 - diff --git a/0003-src-rocksdb-table-block.h.patch b/0003-src-rocksdb-table-block.h.patch deleted file mode 100644 index 8acb401..0000000 --- a/0003-src-rocksdb-table-block.h.patch +++ /dev/null @@ -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[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(&next_[0]), &height, sizeof(int)); - } - - // Retrieves the value passed to StashHeight. Undefined after a call diff --git a/ceph.spec b/ceph.spec index 4dbbaac..2f6b2cd 100644 --- a/ceph.spec +++ b/ceph.spec @@ -68,7 +68,7 @@ ################################################################################# Name: ceph Version: 12.2.8 -Release: 4 +Release: 5 %if 0%{?fedora} || 0%{?rhel} Epoch: 2 %else if 0%{?openeuler} @@ -86,10 +86,6 @@ Group: System/Filesystems %endif URL: http://ceph.com/ Source0: http://ceph.com/download/ceph-12.2.8.tar.gz -Patch0: 0000-src-rocksdb-util-murmurhash.patch -Patch1: 0001-cmake-Support-ppc64.patch -Patch2: 0002-librbd-Conditionally-import-TrimRequest.cc.patch -Patch3: 0003-src-rocksdb-table-block.h.patch # backport for cves Patch6000: 6000-CVE-2018-16889.patch @@ -1803,6 +1799,9 @@ exit 0 %changelog +* Sat Jan 11 2020 openEuler Buildteam - 1:12.2.8-5 +- openEuler repackage + * Mon Dec 23 2019 openEuler Buildteam - 1:12.2.8-4 - Type:bugfix - ID:NA