mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-31 01:10:08 +00:00
rocksdb: Upgrade to 5.17.2
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -1,194 +0,0 @@
|
|||||||
From 8d65d70b54d1d306a0a0b00e036bc8ddd39d8ec1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "przemyslaw.skibinski@percona.com" <przemyslaw.skibinski@percona.com>
|
|
||||||
Date: Fri, 20 Apr 2018 13:28:05 -0700
|
|
||||||
Subject: [PATCH] Fix GitHub issue #3716: gcc-8 warnings
|
|
||||||
|
|
||||||
Summary:
|
|
||||||
Fix the following gcc-8 warnings:
|
|
||||||
- conflicting C language linkage declaration [-Werror]
|
|
||||||
- writing to an object with no trivial copy-assignment [-Werror=class-memaccess]
|
|
||||||
- array subscript -1 is below array bounds [-Werror=array-bounds]
|
|
||||||
|
|
||||||
Solves https://github.com/facebook/rocksdb/issues/3716
|
|
||||||
Closes https://github.com/facebook/rocksdb/pull/3736
|
|
||||||
|
|
||||||
Differential Revision: D7684161
|
|
||||||
|
|
||||||
Pulled By: yiwu-arbug
|
|
||||||
|
|
||||||
fbshipit-source-id: 47c0423d26b74add251f1d3595211eee1e41e54a
|
|
||||||
---
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Upstream-Status: Backport [https://github.com/facebook/rocksdb/commit/dee95a1afc6c63515e7d94dec33acdb79638b6d7.patch]
|
|
||||||
|
|
||||||
db/c.cc | 77 ++++++++++++++-------------------------
|
|
||||||
memtable/inlineskiplist.h | 12 +++---
|
|
||||||
2 files changed, 33 insertions(+), 56 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/db/c.cc b/db/c.cc
|
|
||||||
index 064103ed4..0d485d096 100644
|
|
||||||
--- a/db/c.cc
|
|
||||||
+++ b/db/c.cc
|
|
||||||
@@ -1388,23 +1388,24 @@ void rocksdb_writebatch_put_log_data(
|
|
||||||
b->rep.PutLogData(Slice(blob, len));
|
|
||||||
}
|
|
||||||
|
|
||||||
+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());
|
|
||||||
+ }
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
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_;
|
|
||||||
- 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;
|
|
||||||
@@ -1649,18 +1650,6 @@ void rocksdb_writebatch_wi_iterate(
|
|
||||||
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;
|
|
||||||
@@ -3109,20 +3098,21 @@ void rocksdb_slicetransform_destroy(rocksdb_slicetransform_t* st) {
|
|
||||||
delete st;
|
|
||||||
}
|
|
||||||
|
|
||||||
+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*) { }
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
|
|
||||||
- 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;
|
|
||||||
wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen);
|
|
||||||
wrapper->state_ = nullptr;
|
|
||||||
@@ -3131,19 +3121,6 @@ rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t pref
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
wrapper->rep_ = rocksdb::NewNoopTransform();
|
|
||||||
wrapper->state_ = nullptr;
|
|
||||||
diff --git a/memtable/inlineskiplist.h b/memtable/inlineskiplist.h
|
|
||||||
index 702a7336d..eadda1dc1 100644
|
|
||||||
--- a/memtable/inlineskiplist.h
|
|
||||||
+++ b/memtable/inlineskiplist.h
|
|
||||||
@@ -280,7 +280,7 @@ struct InlineSkipList<Comparator>::Node {
|
|
||||||
// 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
|
|
||||||
@@ -300,30 +300,30 @@ struct InlineSkipList<Comparator>::Node {
|
|
||||||
assert(n >= 0);
|
|
||||||
// Use an 'acquire load' so that we observe a fully initialized
|
|
||||||
// version of the returned Node.
|
|
||||||
- return (next_[-n].load(std::memory_order_acquire));
|
|
||||||
+ return ((&next_[0] - n)->load(std::memory_order_acquire));
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetNext(int n, Node* x) {
|
|
||||||
assert(n >= 0);
|
|
||||||
// Use a 'release store' so that anybody who reads through this
|
|
||||||
// pointer observes a fully initialized version of the inserted node.
|
|
||||||
- next_[-n].store(x, std::memory_order_release);
|
|
||||||
+ (&next_[0] - n)->store(x, std::memory_order_release);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CASNext(int n, Node* expected, Node* x) {
|
|
||||||
assert(n >= 0);
|
|
||||||
- return next_[-n].compare_exchange_strong(expected, x);
|
|
||||||
+ return (&next_[0] - n)->compare_exchange_strong(expected, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
// No-barrier variants that can be safely used in a few locations.
|
|
||||||
Node* NoBarrier_Next(int n) {
|
|
||||||
assert(n >= 0);
|
|
||||||
- return next_[-n].load(std::memory_order_relaxed);
|
|
||||||
+ return (&next_[0] - n)->load(std::memory_order_relaxed);
|
|
||||||
}
|
|
||||||
|
|
||||||
void NoBarrier_SetNext(int n, Node* x) {
|
|
||||||
assert(n >= 0);
|
|
||||||
- next_[-n].store(x, std::memory_order_relaxed);
|
|
||||||
+ (&next_[0] - n)->store(x, std::memory_order_relaxed);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Insert node after prev on specific level.
|
|
||||||
--
|
|
||||||
2.17.0
|
|
||||||
|
|
||||||
@@ -6,12 +6,11 @@ LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
|
|||||||
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
|
||||||
file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
|
file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
|
||||||
|
|
||||||
SRCREV = "c60df9d9e7629fe208a9b848293a5599f83d5e77"
|
SRCREV = "f438b98e552010613cff8684a7d84191ed785148"
|
||||||
SRCBRANCH = "5.13.fb"
|
SRCBRANCH = "5.17.fb"
|
||||||
PV = "5.13.1"
|
PV = "5.17.2"
|
||||||
|
|
||||||
SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
|
SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
|
||||||
file://0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}/git"
|
S = "${WORKDIR}/git"
|
||||||
|
|||||||
Reference in New Issue
Block a user