summaryrefslogtreecommitdiff
path: root/databases/rocksdb-lite/files
diff options
context:
space:
mode:
Diffstat (limited to 'databases/rocksdb-lite/files')
-rw-r--r--databases/rocksdb-lite/files/patch-Makefile40
-rw-r--r--databases/rocksdb-lite/files/patch-aarch6414
-rw-r--r--databases/rocksdb-lite/files/patch-build_tools-build_detect_platform115
-rw-r--r--databases/rocksdb-lite/files/patch-db-db_test_util.cc120
-rw-r--r--databases/rocksdb-lite/files/patch-memory-arena.cc11
-rw-r--r--databases/rocksdb-lite/files/patch-memory-arena.h11
-rw-r--r--databases/rocksdb-lite/files/patch-memory-arena_test.cc11
-rw-r--r--databases/rocksdb-lite/files/patch-port-stack_trace.cc20
-rw-r--r--databases/rocksdb-lite/files/patch-powerpc6425
-rw-r--r--databases/rocksdb-lite/files/patch-third-party-gtest-1.8.1-fused-src-gtest-gtest-all.cc11
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.