From d200b61e2441a303a6de4be04459d61aa51f3005 Mon Sep 17 00:00:00 2001 From: Yi Zhao Date: Thu, 21 Mar 2024 20:02:21 +0800 Subject: rocksdb: upgrade 7.9.2 -> 9.0.0 ChangeLog: https://github.com/facebook/rocksdb/releases/tag/v9.0.0 * Refresh patches. * Drop backport patch. Signed-off-by: Yi Zhao Signed-off-by: Khem Raj --- ...1-Add-missing-includes-cstdint-and-cstdio.patch | 70 ---------------------- .../0001-cmake-Add-check-for-atomic-support.patch | 13 +++- ...cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch | 33 ---------- .../0001-cmake-Use-exported-target-for-bz2.patch | 29 --------- ...-sync-with-new-atomic-builtin-equivalents.patch | 11 +++- .../0002-cmake-Use-exported-target-for-bz2.patch | 34 +++++++++++ ...cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch | 33 ++++++++++ .../0004-Implement-support-for-musl-ppc64.patch | 42 +++++++++++++ ...nt-timer-implementation-for-mips-platform.patch | 32 ++++++++++ .../files/0006-Implement-timer-for-arm-v6.patch | 40 +++++++++++++ meta-oe/recipes-dbs/rocksdb/files/arm.patch | 28 --------- meta-oe/recipes-dbs/rocksdb/files/mips.patch | 20 ------- meta-oe/recipes-dbs/rocksdb/files/ppc64.patch | 30 ---------- meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb | 57 ------------------ meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb | 54 +++++++++++++++++ 15 files changed, 254 insertions(+), 272 deletions(-) delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch create mode 100644 meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/arm.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/mips.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/files/ppc64.patch delete mode 100644 meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb create mode 100644 meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb (limited to 'meta-oe/recipes-dbs') diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch deleted file mode 100644 index a177ce28b9..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6e376601c990abaa5e261d1311f92acb3b370b8f Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 24 Jan 2023 21:40:43 -0800 -Subject: [PATCH] Add missing includes and - -This is needed with GCC 13 and newer [1] - -[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html - -Upstream-Status: Backport [https://github.com/facebook/rocksdb/commit/88edfbfb5e1cac228f7cc31fbec24bb637fe54b1] -Signed-off-by: Khem Raj ---- - .../rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h | 1 + - storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h | 1 + - .../rocksdb/rocksdb/table/block_based/data_block_hash_index.h | 1 + - storage/rocksdb/rocksdb/util/slice.cc | 1 + - storage/rocksdb/rocksdb/util/string_util.h | 1 + - tpool/aio_linux.cc | 1 + - 6 files changed, 6 insertions(+) - ---- a/db/compaction/compaction_iteration_stats.h -+++ b/db/compaction/compaction_iteration_stats.h -@@ -7,6 +7,7 @@ - - #include - -+#include - #include "rocksdb/rocksdb_namespace.h" - - namespace ROCKSDB_NAMESPACE { ---- a/include/rocksdb/utilities/checkpoint.h -+++ b/include/rocksdb/utilities/checkpoint.h -@@ -8,6 +8,7 @@ - #pragma once - #ifndef ROCKSDB_LITE - -+#include - #include - #include - ---- a/table/block_based/data_block_hash_index.h -+++ b/table/block_based/data_block_hash_index.h -@@ -5,6 +5,7 @@ - - #pragma once - -+#include - #include - #include - ---- a/util/slice.cc -+++ b/util/slice.cc -@@ -12,6 +12,7 @@ - #include - - #include -+#include - - #include "rocksdb/convenience.h" - #include "rocksdb/slice_transform.h" ---- a/util/string_util.h -+++ b/util/string_util.h -@@ -6,6 +6,7 @@ - - #pragma once - -+#include - #include - #include - #include diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch index 0fe9c12766..ba6a2d4fbb 100644 --- a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch +++ b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch @@ -1,4 +1,4 @@ -From cf168ae0b7bceab8432d096719b331f18428fe39 Mon Sep 17 00:00:00 2001 +From 034a9c4ce2ae61cfcffa977f1eb8e6f68947f480 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 18 Mar 2020 15:10:37 -0700 Subject: [PATCH] cmake: Add check for atomic support @@ -18,6 +18,7 @@ Fixes | /mnt/b/yoe/build/tmp/work/mips32r2-yoe-linux/rocksdb/6.6.4-r0/recipe-sysroot-native/usr/bin/mips-yoe-linux/mips-yoe-linux-ld: librocksdb.so.6.6.4: undefined reference to `__atomic_fetch_add_8' Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/6555] + Signed-off-by: Khem Raj --- CMakeLists.txt | 5 +++ @@ -25,9 +26,11 @@ Signed-off-by: Khem Raj 2 files changed, 74 insertions(+) create mode 100644 cmake/modules/CheckAtomic.cmake +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5cfc1b4803..0a7f820a22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1057,7 +1057,12 @@ set(ROCKSDB_SHARED_LIB rocksdb-shared${A +@@ -1038,7 +1038,12 @@ set(ROCKSDB_SHARED_LIB rocksdb-shared${ARTIFACT_SUFFIX}) if(WIN32) set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib) else() @@ -40,6 +43,9 @@ Signed-off-by: Khem Raj endif() set(ROCKSDB_PLUGIN_EXTERNS "") +diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake +new file mode 100644 +index 0000000000..8b7dc8a377 --- /dev/null +++ b/cmake/modules/CheckAtomic.cmake @@ -0,0 +1,69 @@ @@ -112,3 +118,6 @@ Signed-off-by: Khem Raj + endif() +endif() + +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch deleted file mode 100644 index e521854439..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch +++ /dev/null @@ -1,33 +0,0 @@ -From cedc84a8db468d0b6652e78a8a6667e655586b53 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Thu, 26 Jan 2023 13:00:43 -0800 -Subject: [PATCH] cmake: Do not add -msse4.2 -mpclmul on clang - -When testcase is compiled with clang and -msse4.2 -mpclmul is added to -cxxflags then clang -m32 still ends up compiling the test case which is -not correct for i386, therefore depend on yocto to pass the right flags -from environemnt via cflags rather than manufecture them here - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Khem Raj ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index dbef059028..981545a4e0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -290,7 +290,7 @@ endif() - - include(CheckCXXSourceCompiles) - set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) --if(NOT MSVC) -+if(NOT MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(CMAKE_REQUIRED_FLAGS "-msse4.2 -mpclmul") - endif() - --- -2.39.1 - diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch deleted file mode 100644 index 706e0868e5..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 46a4e585175cac8d76bd0b64f0fc27c9e22f04a1 Mon Sep 17 00:00:00 2001 -From: Pascal Bach -Date: Mon, 12 Oct 2020 21:22:46 +0200 -Subject: [PATCH] cmake: Use exported target for bz2 - -Without this change, CMake puts the entire path into the generated file. -This is not portable and makes it fail in environment like Yocto. - -Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/7541] ---- - CMakeLists.txt | 9 ++------- - 1 file changed, 2 insertions(+), 7 deletions(-) - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -154,12 +154,7 @@ else() - if(WITH_BZ2) - find_package(BZip2 REQUIRED) - add_definitions(-DBZIP2) -- if(BZIP2_INCLUDE_DIRS) -- include_directories(${BZIP2_INCLUDE_DIRS}) -- else() -- include_directories(${BZIP2_INCLUDE_DIR}) -- endif() -- list(APPEND THIRDPARTY_LIBS ${BZIP2_LIBRARIES}) -+ list(APPEND THIRDPARTY_LIBS BZip2::BZip2) - endif() - - if(WITH_LZ4) diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch index c98623360f..342964cf2c 100644 --- a/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch +++ b/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch @@ -1,4 +1,4 @@ -From 114c42fba3fc86119710e8dd1bb2b7a9e39e3064 Mon Sep 17 00:00:00 2001 +From 1ba84e1b8d4c9a3ad85dc443b0df4d79c89cca4b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 17 Jun 2021 19:35:01 -0700 Subject: [PATCH] replace old sync with new atomic builtin equivalents @@ -6,13 +6,15 @@ Subject: [PATCH] replace old sync with new atomic builtin equivalents Helps compiling with gcc on newer arches e.g. riscv32 where these __sync* builtins are not implemented atleast for 64bit values -Signed-off-by: Khem Raj ---- Upstream-Status: Pending +Signed-off-by: Khem Raj +--- .../range/range_tree/lib/portability/toku_atomic.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) +diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +index aaa2298faf..9385902808 100644 --- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h @@ -77,37 +77,37 @@ template @@ -59,3 +61,6 @@ Upstream-Status: Pending } // in case you include this but not toku_portability.h +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch b/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch new file mode 100644 index 0000000000..6b46a1f300 --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/0002-cmake-Use-exported-target-for-bz2.patch @@ -0,0 +1,34 @@ +From bb3fc86f87a9acc64628e1cb32f5c8a1cfbeb880 Mon Sep 17 00:00:00 2001 +From: Pascal Bach +Date: Mon, 12 Oct 2020 21:22:46 +0200 +Subject: [PATCH] cmake: Use exported target for bz2 + +Without this change, CMake puts the entire path into the generated file. +This is not portable and makes it fail in environment like Yocto. + +Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/7541] +--- + CMakeLists.txt | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0a7f820a22..be80edb955 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -149,12 +149,7 @@ else() + if(WITH_BZ2) + find_package(BZip2 REQUIRED) + add_definitions(-DBZIP2) +- if(BZIP2_INCLUDE_DIRS) +- include_directories(${BZIP2_INCLUDE_DIRS}) +- else() +- include_directories(${BZIP2_INCLUDE_DIR}) +- endif() +- list(APPEND THIRDPARTY_LIBS ${BZIP2_LIBRARIES}) ++ list(APPEND THIRDPARTY_LIBS BZip2::BZip2) + endif() + + if(WITH_LZ4) +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch b/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch new file mode 100644 index 0000000000..e2f785d7cf --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch @@ -0,0 +1,33 @@ +From bb10f55eb77be7b7eee94cb3506c9cbef8e24099 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 26 Jan 2023 13:00:43 -0800 +Subject: [PATCH] cmake: Do not add -msse4.2 -mpclmul on clang + +When testcase is compiled with clang and -msse4.2 -mpclmul is added to +cxxflags then clang -m32 still ends up compiling the test case which is +not correct for i386, therefore depend on yocto to pass the right flags +from environemnt via cflags rather than manufecture them here + +Upstream-Status: Inappropriate [OE-Specific] + +Signed-off-by: Khem Raj +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index be80edb955..a1bbade81a 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -279,7 +279,7 @@ endif() + + include(CheckCXXSourceCompiles) + set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) +-if(NOT MSVC) ++if(NOT MSVC AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(CMAKE_REQUIRED_FLAGS "-msse4.2 -mpclmul") + endif() + +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch b/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch new file mode 100644 index 0000000000..5fcf1f7dae --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/0004-Implement-support-for-musl-ppc64.patch @@ -0,0 +1,42 @@ +From c6accd34e8169d7a6b92fc89dce5d4309978e39e Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Mar 2024 14:11:09 +0800 +Subject: [PATCH] Implement support for musl/ppc64 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + .../lock/range/range_tree/lib/portability/toku_time.h | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +index 9b83c53511..0a7488c397 100644 +--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h ++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +@@ -58,7 +58,7 @@ Copyright (c) 2006, 2015, Percona and/or its affiliates. All rights reserved. + #include + #include + #include +-#if defined(__powerpc__) ++#if defined(__powerpc__) && defined(__GLIBC__) + #include + #endif + +@@ -131,8 +131,12 @@ static inline tokutime_t toku_time_now(void) { + uint64_t result; + __asm __volatile__("mrs %[rt], cntvct_el0" : [rt] "=r"(result)); + return result; +-#elif defined(__powerpc__) ++#elif defined(__powerpc__) && defined(__GLIBC__) + return __ppc_get_timebase(); ++#elif defined(__powerpc64__) || defined(__ppc64__) ++ uint64_t result; ++ asm volatile("mfspr %0, 268" : "=r"(result)); ++ return result; + #elif defined(__s390x__) + uint64_t result; + asm volatile("stckf %0" : "=Q"(result) : : "cc"); +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch b/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch new file mode 100644 index 0000000000..2979b73d2f --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/0005-Implement-timer-implementation-for-mips-platform.patch @@ -0,0 +1,32 @@ +From 2ebc0ff33e41d23e4d3aec1a86f3d8bd4be410e7 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Mar 2024 14:14:58 +0800 +Subject: [PATCH] Implement timer implementation for mips platform + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + .../lock/range/range_tree/lib/portability/toku_time.h | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +index 0a7488c397..ad7d9f2124 100644 +--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h ++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +@@ -162,6 +162,12 @@ static inline tokutime_t toku_time_now(void) { + unsigned long result; + asm volatile ("rdtime.d\t%0,$r0" : "=r" (result)); + return result; ++#elif defined(__mips__) ++ // mips apparently only allows rdtsc for superusers, so we fall ++ // back to gettimeofday. It's possible clock_gettime would be better. ++ struct timeval tv; ++ gettimeofday(&tv, nullptr); ++ return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec; + #else + #error No timer implementation for this platform + #endif +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch b/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch new file mode 100644 index 0000000000..0ae673c425 --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/files/0006-Implement-timer-for-arm-v6.patch @@ -0,0 +1,40 @@ +From 9e274ba2762724f353227b5a3a6e4433f706468a Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 21 Mar 2024 14:16:08 +0800 +Subject: [PATCH] Implement timer for arm >= v6 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj +--- + .../range/range_tree/lib/portability/toku_time.h | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +index ad7d9f2124..bcb795b7e7 100644 +--- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h ++++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +@@ -168,6 +168,20 @@ static inline tokutime_t toku_time_now(void) { + struct timeval tv; + gettimeofday(&tv, nullptr); + return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec; ++#elif (__ARM_ARCH >= 6) ++ uint32_t pmccntr; ++ uint32_t pmuseren; ++ uint32_t pmcntenset; ++ // Read the user mode perf monitor counter access permissions. ++ asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); ++ if (pmuseren & 1) { // Allows reading perfmon counters for user mode code. ++ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); ++ if (pmcntenset & 0x80000000ul) { // Is it counting? ++ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); ++ // The counter is set up to count every 64th cycle ++ return (uint64_t)pmccntr * 64; // Should optimize to << 6 ++ } ++ } + #else + #error No timer implementation for this platform + #endif +-- +2.25.1 + diff --git a/meta-oe/recipes-dbs/rocksdb/files/arm.patch b/meta-oe/recipes-dbs/rocksdb/files/arm.patch deleted file mode 100644 index 3066aa8279..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/arm.patch +++ /dev/null @@ -1,28 +0,0 @@ -Upstream-Status: Pending - -implement timer for arm >= v6 - -Signed-off-by: Khem Raj ---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -@@ -164,6 +164,20 @@ static inline tokutime_t toku_time_now(v - struct timeval tv; - gettimeofday(&tv, nullptr); - return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec; -+#elif (__ARM_ARCH >= 6) -+ uint32_t pmccntr; -+ uint32_t pmuseren; -+ uint32_t pmcntenset; -+ // Read the user mode perf monitor counter access permissions. -+ asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren)); -+ if (pmuseren & 1) { // Allows reading perfmon counters for user mode code. -+ asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset)); -+ if (pmcntenset & 0x80000000ul) { // Is it counting? -+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr)); -+ // The counter is set up to count every 64th cycle -+ return (uint64_t)pmccntr * 64; // Should optimize to << 6 -+ } -+ } - #else - #error No timer implementation for this platform - #endif diff --git a/meta-oe/recipes-dbs/rocksdb/files/mips.patch b/meta-oe/recipes-dbs/rocksdb/files/mips.patch deleted file mode 100644 index cea70352d1..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/mips.patch +++ /dev/null @@ -1,20 +0,0 @@ -Upstream-Status: Pending - -implement timer implementation for mips platform - -Signed-off-by: Khem Raj ---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -@@ -158,6 +158,12 @@ static inline tokutime_t toku_time_now(v - uint64_t cycles; - asm volatile("rdcycle %0" : "=r"(cycles)); - return cycles; -+#elif defined(__mips__) -+ // mips apparently only allows rdtsc for superusers, so we fall -+ // back to gettimeofday. It's possible clock_gettime would be better. -+ struct timeval tv; -+ gettimeofday(&tv, nullptr); -+ return (uint64_t)tv.tv_sec * 1000000 + tv.tv_usec; - #else - #error No timer implementation for this platform - #endif diff --git a/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch b/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch deleted file mode 100644 index 273b8fe2ed..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch +++ /dev/null @@ -1,30 +0,0 @@ -Upstream-Status: Pending - -implement support for musl/ppc64 - -Signed-off-by: Khem Raj ---- a/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -+++ b/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -@@ -58,7 +58,7 @@ Copyright (c) 2006, 2015, Percona and/or - #include - #include - #include --#if defined(__powerpc__) -+#if defined(__powerpc__) && defined(__GLIBC__) - #include - #endif - -@@ -131,8 +131,12 @@ static inline tokutime_t toku_time_now(v - uint64_t result; - __asm __volatile__("mrs %[rt], cntvct_el0" : [rt] "=r"(result)); - return result; --#elif defined(__powerpc__) -+#elif defined(__powerpc__) && defined(__GLIBC__) - return __ppc_get_timebase(); -+#elif defined(__powerpc64__) || defined(__ppc64__) -+ uint64_t result; -+ asm volatile("mfspr %0, 268" : "=r"(result)); -+ return result; - #elif defined(__s390x__) - uint64_t result; - asm volatile("stckf %0" : "=Q"(result) : : "cc"); diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb deleted file mode 100644 index 8faaee40f6..0000000000 --- a/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb +++ /dev/null @@ -1,57 +0,0 @@ -SUMMARY = "RocksDB an embeddable, persistent key-value store" -DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage." -HOMEPAGE = "http://rocksdb.org/" -LICENSE = "(Apache-2.0 | GPL-2.0-only) & BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837" - -SRCREV = "444b3f4845dd01b0d127c4b420fdd3b50ad56682" -SRCBRANCH = "7.9.fb" - -SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \ - file://0001-cmake-Add-check-for-atomic-support.patch \ - file://0001-cmake-Use-exported-target-for-bz2.patch \ - file://0001-Add-missing-includes-cstdint-and-cstdio.patch \ - file://0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch \ - file://ppc64.patch \ - file://mips.patch \ - file://arm.patch \ - " - -SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" -SRC_URI:append:mips = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" -SRC_URI:append:powerpc = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" -SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" - -S = "${WORKDIR}/git" - -inherit cmake - -PACKAGECONFIG ??= "bzip2 zlib lz4 gflags" -PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" -PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4" -PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" -PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd" -PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF" -PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags" - -# Tools and tests currently don't compile on armv5 so we disable them -EXTRA_OECMAKE = "\ - -DPORTABLE=ON \ - -DWITH_TESTS=OFF \ - -DWITH_BENCHMARK_TOOLS=OFF \ - -DWITH_TOOLS=OFF \ - -DFAIL_ON_WARNINGS=OFF \ -" - -do_install:append() { - # fix for qa check buildpaths - sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake -} - -LDFLAGS:append:riscv64 = " -pthread" - -# Need toku_time_now() implemented for ppc/musl -# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h -COMPATIBLE_HOST:libc-musl:powerpc = "null" diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb new file mode 100644 index 0000000000..76d75f2b55 --- /dev/null +++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_9.0.0.bb @@ -0,0 +1,54 @@ +SUMMARY = "RocksDB an embeddable, persistent key-value store" +DESCRIPTION = "RocksDB is library that provides an embeddable, persistent key-value store for fast storage." +HOMEPAGE = "http://rocksdb.org/" +LICENSE = "(Apache-2.0 | GPL-2.0-only) & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837" + +SRCREV = "f4441966592636253fd5ab0bb9ed44fc2697fc53" +SRCBRANCH = "9.0.fb" + +SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH};protocol=https \ + file://0001-cmake-Add-check-for-atomic-support.patch \ + file://0002-cmake-Use-exported-target-for-bz2.patch \ + file://0003-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch \ + file://0004-Implement-support-for-musl-ppc64.patch \ + file://0005-Implement-timer-implementation-for-mips-platform.patch \ + file://0006-Implement-timer-for-arm-v6.patch \ + " + +SRC_URI:append:riscv32 = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" +SRC_URI:append:mips = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" +SRC_URI:append:powerpc = " file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" +SRC_URI:remove:toolchain-clang:riscv32 = "file://0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGECONFIG ??= "bzip2 zlib lz4 gflags" +PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" +PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4" +PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" +PACKAGECONFIG[zstd] = "-DWITH_ZSTD=ON,-DWITH_ZSTD=OFF,zstd" +PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF" +PACKAGECONFIG[gflags] = "-DWITH_GFLAGS=ON,-DWITH_GFLAGS=OFF,gflags" + +# Tools and tests currently don't compile on armv5 so we disable them +EXTRA_OECMAKE = "\ + -DPORTABLE=ON \ + -DWITH_TESTS=OFF \ + -DWITH_BENCHMARK_TOOLS=OFF \ + -DWITH_TOOLS=OFF \ + -DFAIL_ON_WARNINGS=OFF \ +" + +do_install:append() { + # Fix for qa check buildpaths + sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake +} + +# Need toku_time_now() implemented for ppc/musl +# see utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +COMPATIBLE_HOST:libc-musl:powerpc = "null" -- cgit v1.2.3-54-g00ecf