All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH] rocksdb: Update to 6.12.7
@ 2020-11-15 23:08 Khem Raj
  0 siblings, 0 replies; only message in thread
From: Khem Raj @ 2020-11-15 23:08 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Khem Raj

Add a patch to fix build on riscv32

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...0001-folly-Use-SYS_futex-for-syscall.patch | 47 +++++++++++++++++++
 meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb    |  7 +--
 2 files changed, 51 insertions(+), 3 deletions(-)
 create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0001-folly-Use-SYS_futex-for-syscall.patch

diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-folly-Use-SYS_futex-for-syscall.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-folly-Use-SYS_futex-for-syscall.patch
new file mode 100644
index 0000000000..aa291daa3e
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-folly-Use-SYS_futex-for-syscall.patch
@@ -0,0 +1,47 @@
+From ddcc8a9f7e0f0bfee96f2f0a0c10f21f9fa9b05d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Nov 2020 15:02:28 -0800
+Subject: [PATCH] folly: Use SYS_futex for syscall
+
+glibc defines SYS_futex and on newer 32bit CPUs like RISCV-32, arc there
+is no 32bit time_t therefore define SYS_futex in terms of SYS_futex_time64
+
+Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/7676]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ third-party/folly/folly/detail/Futex.cpp | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/third-party/folly/folly/detail/Futex.cpp b/third-party/folly/folly/detail/Futex.cpp
+index 62d6ea2b2..a914a8c73 100644
+--- a/third-party/folly/folly/detail/Futex.cpp
++++ b/third-party/folly/folly/detail/Futex.cpp
+@@ -48,9 +48,15 @@ namespace {
+ #define FUTEX_CLOCK_REALTIME 256
+ #endif
+ 
++/// Newer 32bit CPUs eg. RISCV-32 are defaulting to 64bit time_t from get go and
++/// therefore do not define __NR_futex
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++# define SYS_futex SYS_futex_time64
++#endif
++
+ int nativeFutexWake(const void* addr, int count, uint32_t wakeMask) {
+   long rv = syscall(
+-      __NR_futex,
++      SYS_futex,
+       addr, /* addr1 */
+       FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG, /* op */
+       count, /* val */
+@@ -112,7 +118,7 @@ FutexResult nativeFutexWaitImpl(
+   // Unlike FUTEX_WAIT, FUTEX_WAIT_BITSET requires an absolute timeout
+   // value - http://locklessinc.com/articles/futex_cheat_sheet/
+   long rv = syscall(
+-      __NR_futex,
++      SYS_futex,
+       addr, /* addr1 */
+       op, /* op */
+       expected, /* val */
+-- 
+2.29.2
+
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
index 7ebc5ab1da..117a16b9e8 100644
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
@@ -6,13 +6,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
 
-SRCREV = "48bfca38f6f175435052a59791922a1a453d9609"
-SRCBRANCH = "6.11.fb"
-PV = "6.11.4"
+SRCREV = "f3e33549c151f30ac4eb7c22356c6d0331f37652"
+SRCBRANCH = "6.12.fb"
+PV = "6.12.7"
 
 SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
            file://0001-cmake-Add-check-for-atomic-support.patch \
            file://0001-cmake-Use-exported-target-for-bz2.patch \
+           file://0001-folly-Use-SYS_futex-for-syscall.patch \
           "
 
 S = "${WORKDIR}/git"
-- 
2.29.2


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-15 23:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-15 23:08 [meta-oe][PATCH] rocksdb: Update to 6.12.7 Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.