summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Lambiris2018-05-08 02:21:09 -0400
committerTony Lambiris2018-05-08 02:21:09 -0400
commit8e588a513140898b3b00b8b7d0a73bf1dcde2341 (patch)
tree4a75067d11977570398ca451f74f36e382d62988
parent68bc41c26eb98ea0349d73bba9fb75f90ef1c743 (diff)
downloadaur-8e588a513140898b3b00b8b7d0a73bf1dcde2341.tar.gz
Version bump, add gcc 8 patch
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD9
-rw-r--r--fix-gcc-8-warnings.patch164
3 files changed, 175 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 5fcdb31242d4..4cb2beecdd34 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = rocksdb-lite
pkgdesc = Embedded key-value store for fast storage (lite version)
- pkgver = 5.12.2
+ pkgver = 5.12.4
pkgrel = 1
url = http://rocksdb.org
arch = i686
@@ -14,8 +14,10 @@ pkgbase = rocksdb-lite
depends = snappy
depends = gcc-libs
conflicts = rocksdb
- source = https://github.com/facebook/rocksdb/archive/v5.12.2.zip
- sha256sums = a855b6dec88d1596cc78e03ab21027cf664d385e25fa7693a5813c84cec89a41
+ source = https://github.com/facebook/rocksdb/archive/v5.12.4.zip
+ source = fix-gcc-8-warnings.patch
+ sha256sums = d54b1870ed343f80f96326b7de7fd798e8ddd11f05ef413c0e3357219f08ac67
+ sha256sums = 2c5d96fbf1638d899da84b4a80ad3c6060b774ed80148f443ae40672d31df9d3
pkgname = rocksdb-lite
diff --git a/PKGBUILD b/PKGBUILD
index c96e6564a0f9..62dba7cdd659 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Tony Lambiris <tony@criticalstack.com>
pkgname=rocksdb-lite
-pkgver=5.12.2
+pkgver=5.12.4
pkgrel=1
pkgdesc='Embedded key-value store for fast storage (lite version)'
arch=(i686 x86_64)
@@ -10,8 +10,10 @@ license=('Apache')
depends=(gperftools zlib bzip2 lz4 snappy gcc-libs)
conflicts=(rocksdb)
checkdepends=(python2)
-source=(https://github.com/facebook/rocksdb/archive/v$pkgver.zip)
-sha256sums=('a855b6dec88d1596cc78e03ab21027cf664d385e25fa7693a5813c84cec89a41')
+source=(https://github.com/facebook/rocksdb/archive/v$pkgver.zip
+ fix-gcc-8-warnings.patch)
+sha256sums=('d54b1870ed343f80f96326b7de7fd798e8ddd11f05ef413c0e3357219f08ac67'
+ '2c5d96fbf1638d899da84b4a80ad3c6060b774ed80148f443ae40672d31df9d3')
prepare() {
cd rocksdb-$pkgver
@@ -19,6 +21,7 @@ prepare() {
if [ "$CARCH" == "armv6h" ]; then
sed -e 's/-momit-leaf-frame-pointer//' -i Makefile
fi
+ patch -Np1 -i ../fix-gcc-8-warnings.patch
}
build() {
diff --git a/fix-gcc-8-warnings.patch b/fix-gcc-8-warnings.patch
new file mode 100644
index 000000000000..7b9243623e4b
--- /dev/null
+++ b/fix-gcc-8-warnings.patch
@@ -0,0 +1,164 @@
+diff --git a/db/c.cc b/db/c.cc
+index 0f77949d3f..1c32ee69cb 100644
+--- a/db/c.cc
++++ b/db/c.cc
+@@ -1407,23 +1407,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;
+@@ -1668,18 +1669,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;
+@@ -3298,20 +3287,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;
+@@ -3320,19 +3310,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 efcb93c85b..d3ee1f70e6 100644
+--- a/memtable/inlineskiplist.h
++++ b/memtable/inlineskiplist.h
+@@ -287,7 +287,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
+@@ -307,30 +307,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.