From ceff6f12152785a54885a47db349a6d8dfd0ce2c Mon Sep 17 00:00:00 2001 From: David Turner Date: Wed, 17 Dec 2014 14:18:54 -0500 Subject: [PATCH] Fix Android/MIPS build. port/atomic_pointer.h was missing an implementation for MemoryBarrier() for this platform. --- port/atomic_pointer.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/port/atomic_pointer.h b/port/atomic_pointer.h index 0f6f05e..1c4c7aa 100644 --- a/port/atomic_pointer.h +++ b/port/atomic_pointer.h @@ -39,6 +39,8 @@ #define ARCH_CPU_ARM64_FAMILY 1 #elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__) #define ARCH_CPU_PPC_FAMILY 1 +#elif defined(__mips__) +#define ARCH_CPU_MIPS_FAMILY 1 #endif namespace leveldb { @@ -110,6 +112,13 @@ inline void MemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER +// MIPS +#elif defined(ARCH_CPU_MIPS_FAMILY) && defined(__GNUC__) +inline void MemoryBarrier() { + __asm__ __volatile__("sync" : : : "memory"); +} +#define LEVELDB_HAVE_MEMORY_BARRIER + #endif // AtomicPointer built using platform-specific MemoryBarrier()