diff options
| author | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2022-06-16 22:02:31 +0800 |
|---|---|---|
| committer | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2022-06-16 22:02:31 +0800 |
| commit | 09bd0656bb445fed1675360acc33460e6d6fde44 (patch) | |
| tree | fc5f82c7bbae44372ebf2f36e0131cb5dddb61d3 /databases/rocksdb-lite/files | |
| parent | www/rubygem-mechanize: Update to 2.8.5 (diff) | |
databases/rocksdb-lite: Convert to normal port
Diffstat (limited to 'databases/rocksdb-lite/files')
10 files changed, 378 insertions, 0 deletions
diff --git a/databases/rocksdb-lite/files/patch-Makefile b/databases/rocksdb-lite/files/patch-Makefile new file mode 100644 index 000000000000..2c820e4c7ab6 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-Makefile @@ -0,0 +1,40 @@ +--- Makefile.orig 2022-03-10 06:51:01 UTC ++++ Makefile +@@ -220,17 +220,17 @@ AM_SHARE = $(AM_V_CCLD) $(CXX) $(PLATFORM_SHARED_LDFLA + # Detect what platform we're building on. + # Export some common variables that might have been passed as Make variables + # instead of environment variables. +-dummy := $(shell (export ROCKSDB_ROOT="$(CURDIR)"; \ +- export CXXFLAGS="$(EXTRA_CXXFLAGS)"; \ +- export LDFLAGS="$(EXTRA_LDFLAGS)"; \ +- export COMPILE_WITH_ASAN="$(COMPILE_WITH_ASAN)"; \ +- export COMPILE_WITH_TSAN="$(COMPILE_WITH_TSAN)"; \ +- export COMPILE_WITH_UBSAN="$(COMPILE_WITH_UBSAN)"; \ +- export PORTABLE="$(PORTABLE)"; \ +- export ROCKSDB_NO_FBCODE="$(ROCKSDB_NO_FBCODE)"; \ +- export USE_CLANG="$(USE_CLANG)"; \ +- export LIB_MODE="$(LIB_MODE)"; \ +- "$(CURDIR)/build_tools/build_detect_platform" "$(CURDIR)/make_config.mk")) ++#dummy := $(shell (export ROCKSDB_ROOT="$(CURDIR)"; \ ++# export CXXFLAGS="$(EXTRA_CXXFLAGS)"; \ ++# export LDFLAGS="$(EXTRA_LDFLAGS)"; \ ++# export COMPILE_WITH_ASAN="$(COMPILE_WITH_ASAN)"; \ ++# export COMPILE_WITH_TSAN="$(COMPILE_WITH_TSAN)"; \ ++# export COMPILE_WITH_UBSAN="$(COMPILE_WITH_UBSAN)"; \ ++# export PORTABLE="$(PORTABLE)"; \ ++# export ROCKSDB_NO_FBCODE="$(ROCKSDB_NO_FBCODE)"; \ ++# export USE_CLANG="$(USE_CLANG)"; \ ++# export LIB_MODE="$(LIB_MODE)"; \ ++# "$(CURDIR)/build_tools/build_detect_platform" "$(CURDIR)/make_config.mk")) + # this file is generated by the previous line to set build flags and sources + include make_config.mk + +@@ -796,7 +796,7 @@ endif # PLATFORM_SHARED_EXT + blackbox_crash_test_with_ts whitebox_crash_test_with_ts + + +-all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(TESTS) ++all: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs # $(TESTS) + + all_but_some_tests: $(LIBRARY) $(BENCHMARKS) tools tools_lib test_libs $(ROCKSDBTESTS_SUBSET) + diff --git a/databases/rocksdb-lite/files/patch-aarch64 b/databases/rocksdb-lite/files/patch-aarch64 new file mode 100644 index 000000000000..31790f595624 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-aarch64 @@ -0,0 +1,14 @@ +--- CMakeLists.txt.orig 2021-06-25 21:15:04 UTC ++++ CMakeLists.txt +@@ -612,6 +612,11 @@ if(HAVE_AUXV_GETAUXVAL) + add_definitions(-DROCKSDB_AUXV_GETAUXVAL_PRESENT) + endif() + ++check_cxx_symbol_exists(elf_aux_info sys/auxv.h HAVE_ELF_AUX_INFO) ++if(HAVE_ELF_AUX_INFO) ++ add_definitions(-DROCKSDB_AUXV_GETAUXVAL_PRESENT) ++endif() ++ + include_directories(${PROJECT_SOURCE_DIR}) + include_directories(${PROJECT_SOURCE_DIR}/include) + if(WITH_FOLLY_DISTRIBUTED_MUTEX) diff --git a/databases/rocksdb-lite/files/patch-build_tools-build_detect_platform b/databases/rocksdb-lite/files/patch-build_tools-build_detect_platform new file mode 100644 index 000000000000..cbf3251be4f3 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-build_tools-build_detect_platform @@ -0,0 +1,115 @@ +Remove -fno-builtin-memcmp and -ltcmalloc + +% sed -i .orig 's| -fno-builtin-memcmp||; s| -ltcmalloc||' build_tools/build_detect_platform + +--- build_tools/build_detect_platform.orig 2022-02-17 23:56:08 UTC ++++ build_tools/build_detect_platform +@@ -145,7 +145,7 @@ PLATFORM_SHARED_VERSIONED=true + # generic port files (working on all platform by #ifdef) go directly in /port + GENERIC_PORT_FILES=`cd "$ROCKSDB_ROOT"; find port -name '*.cc' | tr "\n" " "` + +-# On GCC, we pick libc's memcmp over GCC's memcmp via -fno-builtin-memcmp ++# On GCC, we pick libc's memcmp over GCC's memcmp via + case "$TARGET_OS" in + Darwin) + PLATFORM=OS_MACOSX +@@ -166,7 +166,7 @@ case "$TARGET_OS" in + PLATFORM=OS_LINUX + COMMON_FLAGS="$COMMON_FLAGS -DOS_LINUX" + if [ -z "$USE_CLANG" ]; then +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp" ++ COMMON_FLAGS="$COMMON_FLAGS" + else + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -latomic" + fi +@@ -193,21 +193,21 @@ EOF + ;; + SunOS) + PLATFORM=OS_SOLARIS +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_SOLARIS -m64" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_SOLARIS -m64" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lrt -static-libstdc++ -static-libgcc -m64" + # PORT_FILES=port/sunos/sunos_specific.cc + ;; + AIX) + PLATFORM=OS_AIX + CC=gcc +- COMMON_FLAGS="$COMMON_FLAGS -maix64 -pthread -fno-builtin-memcmp -D_REENTRANT -DOS_AIX -D__STDC_FORMAT_MACROS" ++ COMMON_FLAGS="$COMMON_FLAGS -maix64 -pthread -D_REENTRANT -DOS_AIX -D__STDC_FORMAT_MACROS" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -pthread -lpthread -lrt -maix64 -static-libstdc++ -static-libgcc" + # PORT_FILES=port/aix/aix_specific.cc + ;; + FreeBSD) + PLATFORM=OS_FREEBSD + CXX=clang++ +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_FREEBSD" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_FREEBSD" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread" + # PORT_FILES=port/freebsd/freebsd_specific.cc + ;; +@@ -215,7 +215,7 @@ EOF + PLATFORM=OS_GNU_KFREEBSD + COMMON_FLAGS="$COMMON_FLAGS -DOS_GNU_KFREEBSD" + if [ -z "$USE_CLANG" ]; then +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp" ++ COMMON_FLAGS="$COMMON_FLAGS" + else + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -latomic" + fi +@@ -224,14 +224,14 @@ EOF + ;; + NetBSD) + PLATFORM=OS_NETBSD +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_NETBSD" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_NETBSD" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread -lgcc_s" + # PORT_FILES=port/netbsd/netbsd_specific.cc + ;; + OpenBSD) + PLATFORM=OS_OPENBSD + CXX=clang++ +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_OPENBSD" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_OPENBSD" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -pthread" + # PORT_FILES=port/openbsd/openbsd_specific.cc + FIND=gfind +@@ -239,7 +239,7 @@ EOF + ;; + DragonFly) + PLATFORM=OS_DRAGONFLYBSD +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_DRAGONFLYBSD" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_DRAGONFLYBSD" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -lpthread" + # PORT_FILES=port/dragonfly/dragonfly_specific.cc + ;; +@@ -249,7 +249,7 @@ EOF + PLATFORM_CXXFLAGS="-std=gnu++11" + COMMON_FLAGS="$COMMON_FLAGS -DCYGWIN" + if [ -z "$USE_CLANG" ]; then +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp" ++ COMMON_FLAGS="$COMMON_FLAGS" + else + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -latomic" + fi +@@ -258,7 +258,7 @@ EOF + ;; + OS_ANDROID_CROSSCOMPILE) + PLATFORM=OS_ANDROID +- COMMON_FLAGS="$COMMON_FLAGS -fno-builtin-memcmp -D_REENTRANT -DOS_ANDROID -DROCKSDB_PLATFORM_POSIX" ++ COMMON_FLAGS="$COMMON_FLAGS -D_REENTRANT -DOS_ANDROID -DROCKSDB_PLATFORM_POSIX" + PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS " # All pthread features are in the Android C library + # PORT_FILES=port/android/android.cc + CROSS_COMPILE=true +@@ -448,9 +448,9 @@ EOF + if ! test $JEMALLOC && ! test $ROCKSDB_DISABLE_TCMALLOC; then + # jemalloc is not available. Let's try tcmalloc + if echo 'int main() {}' | $CXX $PLATFORM_CXXFLAGS -x c++ - -o test.o \ +- -ltcmalloc 2>/dev/null; then +- PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS -ltcmalloc" +- JAVA_LDFLAGS="$JAVA_LDFLAGS -ltcmalloc" ++ 2>/dev/null; then ++ PLATFORM_LDFLAGS="$PLATFORM_LDFLAGS" ++ JAVA_LDFLAGS="$JAVA_LDFLAGS" + fi + fi + diff --git a/databases/rocksdb-lite/files/patch-db-db_test_util.cc b/databases/rocksdb-lite/files/patch-db-db_test_util.cc new file mode 100644 index 000000000000..472503e88f1f --- /dev/null +++ b/databases/rocksdb-lite/files/patch-db-db_test_util.cc @@ -0,0 +1,120 @@ +--- db/db_test_util.cc.orig 2021-06-25 21:15:04 UTC ++++ db/db_test_util.cc +@@ -95,9 +95,11 @@ DBTestBase::DBTestBase(const std::string path, bool en + } + + DBTestBase::~DBTestBase() { ++#ifndef NDEBUG + ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->DisableProcessing(); + ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->LoadDependency({}); + ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearAllCallBacks(); ++#endif + Close(); + Options options; + options.db_paths.emplace_back(dbname_, 0); +@@ -347,6 +349,7 @@ Options DBTestBase::GetOptions( + Options options = default_options; + BlockBasedTableOptions table_options; + bool set_block_based_table_factory = true; ++#ifndef NDEBUG + #if !defined(OS_MACOSX) && !defined(OS_WIN) && !defined(OS_SOLARIS) && \ + !defined(OS_AIX) + ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack( +@@ -354,6 +357,7 @@ Options DBTestBase::GetOptions( + ROCKSDB_NAMESPACE::SyncPoint::GetInstance()->ClearCallBack( + "NewWritableFile:O_DIRECT"); + #endif ++#endif + + bool can_allow_mmap = IsMemoryMappedAccessSupported(); + switch (option_config) { +@@ -408,7 +412,9 @@ Options DBTestBase::GetOptions( + options.use_direct_reads = true; + options.use_direct_io_for_flush_and_compaction = true; + options.compaction_readahead_size = 2 * 1024 * 1024; ++#ifndef NDEBUG + SetupSyncPointsToMockDirectIO(); ++#endif + break; + } + #endif // ROCKSDB_LITE +@@ -1124,6 +1130,7 @@ std::string DBTestBase::FilesPerLevel(int cf) { + + #endif // !ROCKSDB_LITE + ++#ifndef NDEBUG + std::vector<uint64_t> DBTestBase::GetBlobFileNumbers() { + VersionSet* const versions = dbfull()->TEST_GetVersionSet(); + assert(versions); +@@ -1148,6 +1155,7 @@ std::vector<uint64_t> DBTestBase::GetBlobFileNumbers() + + return result; + } ++#endif + + size_t DBTestBase::CountFiles() { + size_t count = 0; +@@ -1230,6 +1238,7 @@ void DBTestBase::FillLevels(const std::string& smalles + } + + void DBTestBase::MoveFilesToLevel(int level, int cf) { ++#ifndef NDEBUG + for (int l = 0; l < level; ++l) { + if (cf > 0) { + EXPECT_OK(dbfull()->TEST_CompactRange(l, nullptr, nullptr, handles_[cf])); +@@ -1237,13 +1246,16 @@ void DBTestBase::MoveFilesToLevel(int level, int cf) { + EXPECT_OK(dbfull()->TEST_CompactRange(l, nullptr, nullptr)); + } + } ++#endif + } + + #ifndef ROCKSDB_LITE + void DBTestBase::DumpFileCounts(const char* label) { + fprintf(stderr, "---\n%s:\n", label); ++#ifndef NDEBUG + fprintf(stderr, "maxoverlap: %" PRIu64 "\n", + dbfull()->TEST_MaxNextLevelOverlappingBytes()); ++#endif + for (int level = 0; level < db_->NumberLevels(); level++) { + int num = NumTableFilesAtLevel(level); + if (num > 0) { +@@ -1284,10 +1296,12 @@ void DBTestBase::GenerateNewFile(int cf, Random* rnd, + ASSERT_OK(Put(cf, Key(*key_idx), rnd->RandomString((i == 99) ? 1 : 990))); + (*key_idx)++; + } ++#ifndef NDEBUG + if (!nowait) { + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); + ASSERT_OK(dbfull()->TEST_WaitForCompact()); + } ++#endif + } + + // this will generate non-overlapping files since it keeps increasing key_idx +@@ -1296,10 +1310,12 @@ void DBTestBase::GenerateNewFile(Random* rnd, int* key + ASSERT_OK(Put(Key(*key_idx), rnd->RandomString((i == 99) ? 1 : 990))); + (*key_idx)++; + } ++#ifndef NDEBUG + if (!nowait) { + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); + ASSERT_OK(dbfull()->TEST_WaitForCompact()); + } ++#endif + } + + const int DBTestBase::kNumKeysByGenerateNewRandomFile = 51; +@@ -1309,10 +1325,12 @@ void DBTestBase::GenerateNewRandomFile(Random* rnd, bo + ASSERT_OK(Put("key" + rnd->RandomString(7), rnd->RandomString(2000))); + } + ASSERT_OK(Put("key" + rnd->RandomString(7), rnd->RandomString(200))); ++#ifndef NDEBUG + if (!nowait) { + ASSERT_OK(dbfull()->TEST_WaitForFlushMemTable()); + ASSERT_OK(dbfull()->TEST_WaitForCompact()); + } ++#endif + } + + std::string DBTestBase::IterStatus(Iterator* iter) { diff --git a/databases/rocksdb-lite/files/patch-memory-arena.cc b/databases/rocksdb-lite/files/patch-memory-arena.cc new file mode 100644 index 000000000000..db76c877c68f --- /dev/null +++ b/databases/rocksdb-lite/files/patch-memory-arena.cc @@ -0,0 +1,11 @@ +--- memory/arena.cc.orig 2021-06-25 21:15:04 UTC ++++ memory/arena.cc +@@ -29,7 +29,7 @@ const size_t Arena::kInlineSize; + + const size_t Arena::kMinBlockSize = 4096; + const size_t Arena::kMaxBlockSize = 2u << 30; +-static const int kAlignUnit = alignof(max_align_t); ++static const int kAlignUnit = alignof(std::max_align_t); + + size_t OptimizeBlockSize(size_t block_size) { + // Make sure block_size is in optimal range diff --git a/databases/rocksdb-lite/files/patch-memory-arena.h b/databases/rocksdb-lite/files/patch-memory-arena.h new file mode 100644 index 000000000000..a1dda117600a --- /dev/null +++ b/databases/rocksdb-lite/files/patch-memory-arena.h @@ -0,0 +1,11 @@ +--- memory/arena.h.orig 2018-01-31 01:15:39 UTC ++++ memory/arena.h +@@ -82,7 +82,7 @@ class Arena : public Allocator { + } + + private: +- char inline_block_[kInlineSize] __attribute__((__aligned__(alignof(max_align_t)))); ++ char inline_block_[kInlineSize] __attribute__((__aligned__(alignof(std::max_align_t)))); + // Number of bytes allocated in one block + const size_t kBlockSize; + // Array of new[] allocated memory blocks diff --git a/databases/rocksdb-lite/files/patch-memory-arena_test.cc b/databases/rocksdb-lite/files/patch-memory-arena_test.cc new file mode 100644 index 000000000000..ccbdef9fc0b7 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-memory-arena_test.cc @@ -0,0 +1,11 @@ +--- memory/arena_test.cc.orig 2018-01-31 01:15:39 UTC ++++ memory/arena_test.cc +@@ -91,7 +91,7 @@ static void ApproximateMemoryUsageTest(s + ASSERT_EQ(kZero, arena.ApproximateMemoryUsage()); + + // allocate inline bytes +- const size_t kAlignUnit = alignof(max_align_t); ++ const size_t kAlignUnit = alignof(std::max_align_t); + EXPECT_TRUE(arena.IsInInlineBlock()); + arena.AllocateAligned(kAlignUnit); + EXPECT_TRUE(arena.IsInInlineBlock()); diff --git a/databases/rocksdb-lite/files/patch-port-stack_trace.cc b/databases/rocksdb-lite/files/patch-port-stack_trace.cc new file mode 100644 index 000000000000..3b83846c5101 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-port-stack_trace.cc @@ -0,0 +1,20 @@ +--- port/stack_trace.cc.orig 2021-06-25 21:15:04 UTC ++++ port/stack_trace.cc +@@ -135,7 +135,7 @@ void PrintStack(int first_frames_to_skip) { + void* frames[kMaxFrames]; + + auto num_frames = backtrace(frames, kMaxFrames); +- PrintStack(&frames[first_frames_to_skip], num_frames - first_frames_to_skip); ++ PrintStack(&frames[first_frames_to_skip], (int) (num_frames - first_frames_to_skip)); + } + + void PrintAndFreeStack(void* callstack, int num_frames) { +@@ -148,7 +148,7 @@ void* SaveStack(int* num_frames, int first_frames_to_s + void* frames[kMaxFrames]; + + auto count = backtrace(frames, kMaxFrames); +- *num_frames = count - first_frames_to_skip; ++ *num_frames = (int) (count - first_frames_to_skip); + void* callstack = malloc(sizeof(void*) * *num_frames); + memcpy(callstack, &frames[first_frames_to_skip], sizeof(void*) * *num_frames); + return callstack; diff --git a/databases/rocksdb-lite/files/patch-powerpc64 b/databases/rocksdb-lite/files/patch-powerpc64 new file mode 100644 index 000000000000..1cebaf2dbac2 --- /dev/null +++ b/databases/rocksdb-lite/files/patch-powerpc64 @@ -0,0 +1,25 @@ +--- utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h.orig 2021-12-10 22:56:20 UTC ++++ utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +@@ -58,7 +58,7 @@ Copyright (c) 2006, 2015, Percona and/or its affiliate + #include <stdint.h> + #include <sys/time.h> + #include <time.h> +-#if defined(__powerpc__) ++#if defined(__powerpc__) && defined(__linux__) + #include <sys/platform/ppc.h> + #endif + +@@ -132,7 +132,13 @@ static inline tokutime_t toku_time_now(void) { + __asm __volatile__("mrs %[rt], cntvct_el0" : [ rt ] "=r"(result)); + return result; + #elif defined(__powerpc__) ++#ifdef __linux__ + return __ppc_get_timebase(); ++#elif defined(__FreeBSD__) ++ int64_t tbr; ++ asm volatile("mfspr %0, 268" : "=r"(tbr)); ++ return tbr; ++#endif + #elif defined(__s390x__) + uint64_t result; + asm volatile("stckf %0" : "=Q"(result) : : "cc"); diff --git a/databases/rocksdb-lite/files/patch-third-party-gtest-1.8.1-fused-src-gtest-gtest-all.cc b/databases/rocksdb-lite/files/patch-third-party-gtest-1.8.1-fused-src-gtest-gtest-all.cc new file mode 100644 index 000000000000..73b2d08ed88a --- /dev/null +++ b/databases/rocksdb-lite/files/patch-third-party-gtest-1.8.1-fused-src-gtest-gtest-all.cc @@ -0,0 +1,11 @@ +--- third-party/gtest-1.8.1/fused-src/gtest/gtest-all.cc.orig 2020-05-27 23:38:10 UTC ++++ third-party/gtest-1.8.1/fused-src/gtest/gtest-all.cc +@@ -35,7 +35,7 @@ + + // This line ensures that gtest.h can be compiled on its own, even + // when it's fused. +-#include "gtest/gtest.h" ++#include "gtest.h" + + // The following lines pull in the real gtest *.cc files. + // Copyright 2005, Google Inc. |
