Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
From 034a9c4ce2ae61cfcffa977f1eb8e6f68947f480 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Wed, 18 Mar 2020 15:10:37 -0700
|
||||
Subject: [PATCH] cmake: Add check for atomic support
|
||||
|
||||
Detect if libatomic should be linked in or compiler and platform can
|
||||
provide the needed atomic instrinsics, this helps build on certain
|
||||
platforms like mips or clang/i386
|
||||
|
||||
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_exchange_8'
|
||||
| /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_or_8'
|
||||
| /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_compare_exchange_8'
|
||||
| /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_sub_8'
|
||||
| /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_load_8'
|
||||
| /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_store_8'
|
||||
| /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 <raj.khem@gmail.com>
|
||||
---
|
||||
CMakeLists.txt | 5 +++
|
||||
cmake/modules/CheckAtomic.cmake | 69 +++++++++++++++++++++++++++++++++
|
||||
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
|
||||
@@ -1038,7 +1038,12 @@ set(ROCKSDB_SHARED_LIB rocksdb-shared${ARTIFACT_SUFFIX})
|
||||
if(WIN32)
|
||||
set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib)
|
||||
else()
|
||||
+ # check if linking against libatomic is necessary
|
||||
+ include(CheckAtomic)
|
||||
set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||
+ if(HAVE_CXX_ATOMIC_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} atomic)
|
||||
+ endif()
|
||||
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 @@
|
||||
+# Checks if atomic operations are supported natively or if linking against
|
||||
+# libatomic is needed.
|
||||
+
|
||||
+# Check inspired by LLVMs cmake/modules/CheckAtomic.cmake
|
||||
+
|
||||
+INCLUDE(CheckCXXSourceCompiles)
|
||||
+INCLUDE(CheckLibraryExists)
|
||||
+
|
||||
+function(check_working_cxx_atomics varname)
|
||||
+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
+ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
|
||||
+ CHECK_CXX_SOURCE_COMPILES("
|
||||
+#include <atomic>
|
||||
+std::atomic<int> x;
|
||||
+int main() {
|
||||
+ return x;
|
||||
+}
|
||||
+" ${varname})
|
||||
+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
|
||||
+endfunction(check_working_cxx_atomics)
|
||||
+
|
||||
+function(check_working_cxx_atomics64 varname)
|
||||
+ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
+ set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
|
||||
+ CHECK_CXX_SOURCE_COMPILES("
|
||||
+#include <atomic>
|
||||
+#include <cstdint>
|
||||
+std::atomic<uint64_t> x (0);
|
||||
+std::atomic<double> y (0);
|
||||
+int main() {
|
||||
+ uint64_t i = x.load(std::memory_order_relaxed);
|
||||
+ return int(y);
|
||||
+}
|
||||
+" ${varname})
|
||||
+ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
|
||||
+endfunction(check_working_cxx_atomics64)
|
||||
+
|
||||
+# Check if atomics work without libatomic
|
||||
+check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||
+
|
||||
+if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
|
||||
+ check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
|
||||
+ if( HAVE_LIBATOMIC )
|
||||
+ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
||||
+ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
|
||||
+ if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
|
||||
+ message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||
+ endif()
|
||||
+ else()
|
||||
+ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
+# Check if 64bit atomics work without libatomic
|
||||
+check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
|
||||
+
|
||||
+if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
|
||||
+ check_library_exists(atomic __atomic_load_8 "" HAVE_CXX_LIBATOMICS64)
|
||||
+ if(HAVE_CXX_LIBATOMICS64)
|
||||
+ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
|
||||
+ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||
+ if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
|
||||
+ message(FATAL_ERROR "Host compiler must support std::atomic!")
|
||||
+ endif()
|
||||
+ else()
|
||||
+ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
From 1ba84e1b8d4c9a3ad85dc443b0df4d79c89cca4b Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 17 Jun 2021 19:35:01 -0700
|
||||
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
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../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 <typename T, typename U>
|
||||
__attribute__((always_inline)) static inline T toku_sync_fetch_and_add(T *addr,
|
||||
U diff) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_fetch_and_add(addr, diff);
|
||||
+ return __atomic_fetch_add(addr, diff, 5);
|
||||
}
|
||||
template <typename T, typename U>
|
||||
__attribute__((always_inline)) static inline T toku_sync_add_and_fetch(T *addr,
|
||||
U diff) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_add_and_fetch(addr, diff);
|
||||
+ return __atomic_add_fetch(addr, diff, 5);
|
||||
}
|
||||
template <typename T, typename U>
|
||||
__attribute__((always_inline)) static inline T toku_sync_fetch_and_sub(T *addr,
|
||||
U diff) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_fetch_and_sub(addr, diff);
|
||||
+ return __atomic_fetch_sub(addr, diff, 5);
|
||||
}
|
||||
template <typename T, typename U>
|
||||
__attribute__((always_inline)) static inline T toku_sync_sub_and_fetch(T *addr,
|
||||
U diff) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_sub_and_fetch(addr, diff);
|
||||
+ return __atomic_sub_fetch(addr, diff, 5);
|
||||
}
|
||||
template <typename T, typename U, typename V>
|
||||
__attribute__((always_inline)) static inline T toku_sync_val_compare_and_swap(
|
||||
T *addr, U oldval, V newval) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_val_compare_and_swap(addr, oldval, newval);
|
||||
+ return __atomic_compare_exchange(addr, oldval, newval);
|
||||
}
|
||||
template <typename T, typename U, typename V>
|
||||
__attribute__((always_inline)) static inline bool
|
||||
toku_sync_bool_compare_and_swap(T *addr, U oldval, V newval) {
|
||||
paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
|
||||
- return __sync_bool_compare_and_swap(addr, oldval, newval);
|
||||
+ return static_cast<bool>(__atomic_compare_exchange(addr, oldval, newval));
|
||||
}
|
||||
|
||||
// in case you include this but not toku_portability.h
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From bb3fc86f87a9acc64628e1cb32f5c8a1cfbeb880 Mon Sep 17 00:00:00 2001
|
||||
From: Pascal Bach <pascal.bach@nextrem.ch>
|
||||
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
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From bb10f55eb77be7b7eee94cb3506c9cbef8e24099 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
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 <raj.khem@gmail.com>
|
||||
---
|
||||
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
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
From c6accd34e8169d7a6b92fc89dce5d4309978e39e Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 21 Mar 2024 14:11:09 +0800
|
||||
Subject: [PATCH] Implement support for musl/ppc64
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../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 <stdint.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
-#if defined(__powerpc__)
|
||||
+#if defined(__powerpc__) && defined(__GLIBC__)
|
||||
#include <sys/platform/ppc.h>
|
||||
#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
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 2ebc0ff33e41d23e4d3aec1a86f3d8bd4be410e7 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
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 <raj.khem@gmail.com>
|
||||
---
|
||||
.../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
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
From 9e274ba2762724f353227b5a3a6e4433f706468a Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 21 Mar 2024 14:16:08 +0800
|
||||
Subject: [PATCH] Implement timer for arm >= v6
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
.../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
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From ed549d43c8b691cd7891c7e5c76df189feb04b4f Mon Sep 17 00:00:00 2001
|
||||
From: Yi Zhao <yi.zhao@windriver.com>
|
||||
Date: Sun, 7 Apr 2024 17:16:53 +0800
|
||||
Subject: [PATCH] Fix declaration scope of LE_LOAD32 in crc32c
|
||||
|
||||
Fix build error when __SSE4_2__ is defined:
|
||||
util/crc32c.cc: In function 'void rocksdb::crc32c::DefaultCRC32(uint64_t*, const uint8_t**)':
|
||||
util/crc32c.cc:267:53: error: 'LE_LOAD32' was not declared in this scope
|
||||
267 | *l = _mm_crc32_u32(static_cast<unsigned int>(*l), LE_LOAD32(*p));
|
||||
| ^~~~~~~~~
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/12515]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
util/crc32c.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/util/crc32c.cc b/util/crc32c.cc
|
||||
index 38a69bb50..aa13ad882 100644
|
||||
--- a/util/crc32c.cc
|
||||
+++ b/util/crc32c.cc
|
||||
@@ -242,12 +242,12 @@ static const uint32_t table3_[256] = {
|
||||
0xc747336e, 0x1a0299d6, 0x782010ef, 0xa565ba57, 0xbc65029d, 0x6120a825,
|
||||
0x0302211c, 0xde478ba4, 0x31035088, 0xec46fa30, 0x8e647309, 0x5321d9b1,
|
||||
0x4a21617b, 0x9764cbc3, 0xf54642fa, 0x2803e842};
|
||||
+#endif // !__SSE4_2__
|
||||
|
||||
// Used to fetch a naturally-aligned 32-bit word in little endian byte-order
|
||||
static inline uint32_t LE_LOAD32(const uint8_t* p) {
|
||||
return DecodeFixed32(reinterpret_cast<const char*>(p));
|
||||
}
|
||||
-#endif // !__SSE4_2__
|
||||
|
||||
static inline void DefaultCRC32(uint64_t* l, uint8_t const** p) {
|
||||
#ifndef __SSE4_2__
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
From 285d306494bde3e9c24c8cd6fea1eb380a304d03 Mon Sep 17 00:00:00 2001
|
||||
From: Bindu-Bhabu <bindudaniel1996@gmail.com>
|
||||
Date: Fri, 26 Jul 2024 15:14:45 +0530
|
||||
Subject: Add option to CMake for building static libraries
|
||||
|
||||
ROCKSDB creates a STATIC library target reference by default.
|
||||
Modify the cmake so that the STATIC library is also an option
|
||||
just like creating a SHARED library and set default to ON.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/facebook/rocksdb/pull/12890]
|
||||
|
||||
Signed-off-by: Nisha Parrakat <nisha.m.parrakat@bmw.de>
|
||||
Signed-off-by: Bindu Bhabu <bhabu.bindu@kpit.com>
|
||||
---
|
||||
CMakeLists.txt | 29 +++++++++++++++++------------
|
||||
1 file changed, 17 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 93b884dd9c1..2ca925d505c 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -98,6 +98,7 @@ if (WITH_WINDOWS_UTF8_FILENAMES)
|
||||
add_definitions(-DROCKSDB_WINDOWS_UTF8_FILENAMES)
|
||||
endif()
|
||||
option(ROCKSDB_BUILD_SHARED "Build shared versions of the RocksDB libraries" ON)
|
||||
+option(ROCKSDB_BUILD_STATIC "Build static versions of the RocksDB libraries" ON)
|
||||
|
||||
if( NOT DEFINED CMAKE_CXX_STANDARD )
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@@ -1139,11 +1140,13 @@ string(REGEX REPLACE "[^0-9: /-]+" "" GIT_DATE "${GIT_DATE}")
|
||||
set(BUILD_VERSION_CC ${CMAKE_BINARY_DIR}/build_version.cc)
|
||||
configure_file(util/build_version.cc.in ${BUILD_VERSION_CC} @ONLY)
|
||||
|
||||
-add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES} ${BUILD_VERSION_CC})
|
||||
-target_include_directories(${ROCKSDB_STATIC_LIB} PUBLIC
|
||||
- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
|
||||
-target_link_libraries(${ROCKSDB_STATIC_LIB} PRIVATE
|
||||
- ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
|
||||
+if(ROCKSDB_BUILD_STATIC)
|
||||
+ add_library(${ROCKSDB_STATIC_LIB} STATIC ${SOURCES} ${BUILD_VERSION_CC})
|
||||
+ target_include_directories(${ROCKSDB_STATIC_LIB} PUBLIC
|
||||
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>)
|
||||
+ target_link_libraries(${ROCKSDB_STATIC_LIB} PRIVATE
|
||||
+ ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
|
||||
+endif()
|
||||
|
||||
if(ROCKSDB_BUILD_SHARED)
|
||||
add_library(${ROCKSDB_SHARED_LIB} SHARED ${SOURCES} ${BUILD_VERSION_CC})
|
||||
@@ -1238,13 +1241,15 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
|
||||
|
||||
install(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/modules" COMPONENT devel DESTINATION ${package_config_destination})
|
||||
|
||||
- install(
|
||||
- TARGETS ${ROCKSDB_STATIC_LIB}
|
||||
- EXPORT RocksDBTargets
|
||||
- COMPONENT devel
|
||||
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
- INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
- )
|
||||
+ if(ROCKSDB_BUILD_STATIC)
|
||||
+ install(
|
||||
+ TARGETS ${ROCKSDB_STATIC_LIB}
|
||||
+ EXPORT RocksDBTargets
|
||||
+ COMPONENT devel
|
||||
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
|
||||
+ )
|
||||
+ endif()
|
||||
|
||||
if(ROCKSDB_BUILD_SHARED)
|
||||
install(
|
||||
Reference in New Issue
Block a user