Package: leveldb Version: 1.19-1 Severity: serious Tags: sid + patch Justification: FTBFS User: debian-m...@lists.debian.org Usertags: mips-patch
Hi, Package leveldb FTBFS on mips* with following error: > g++ -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong > -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I. > -I./include -std=c++0x -fno-builtin-memcmp -pthread -DOS_LINUX > -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT -DSNAPPY -O2 -g -DNDEBUG > -fPIC -c db/builder.cc -o out-shared/db/builder.o > In file included from ./port/port_posix.h:47:0, > from ./port/port.h:14, > from ./db/filename.h:14, > from db/builder.cc:7: > ./port/atomic_pointer.h: In member function 'void* > leveldb::port::AtomicPointer::Acquire_Load() const': > ./port/atomic_pointer.h:248:23: error: 'ReadMemoryBarrier' was not declared > in this scope > ReadMemoryBarrier(); > ^ > ./port/atomic_pointer.h: In member function 'void > leveldb::port::AtomicPointer::Release_Store(void*)': > ./port/atomic_pointer.h:252:24: error: 'WriteMemoryBarrier' was not declared > in this scope > WriteMemoryBarrier(); > ^ > In file included from ./port/port_posix.h:47:0, > from ./port/port.h:14, > from ./util/coding.h:17, > from ./db/dbformat.h:14, > from ./db/db_impl.h:10, > from db/db_bench.cc:8: > ./port/atomic_pointer.h: In member function 'void* > leveldb::port::AtomicPointer::Acquire_Load() const': > ./port/atomic_pointer.h:248:23: error: 'ReadMemoryBarrier' was not declared > in this scope > ReadMemoryBarrier(); > ^ > ./port/atomic_pointer.h: In member function 'void > leveldb::port::AtomicPointer::Release_Store(void*)': > ./port/atomic_pointer.h:252:24: error: 'WriteMemoryBarrier' was not declared > in this scope > WriteMemoryBarrier(); > ^ > Makefile:429: recipe for target 'out-shared/db/builder.o' failed > make[1]: *** [out-shared/db/builder.o] Error 1 build logs: https://buildd.debian.org/status/fetch.php?pkg=leveldb&arch=mips&ver=1.19-1&stamp=1472467702 https://buildd.debian.org/status/fetch.php?pkg=leveldb&arch=mips64el&ver=1.19-1&stamp=1472468168 https://buildd.debian.org/status/fetch.php?pkg=leveldb&arch=mipsel&ver=1.19-1&stamp=1472467519 The attached patch adds the missing ReadMemoryBarrier and WriteMemoryBarrier functions for mips*. With this patch I was able to build leveldb successfully on mips, mipsel and mips64el. Regards, Daniel
--- leveldb-1.19.orig/port/atomic_pointer.h +++ leveldb-1.19/port/atomic_pointer.h @@ -226,7 +226,10 @@ inline void WriteMemoryBarrier() { // MIPS #elif defined(ARCH_CPU_MIPS_FAMILY) && defined(__GNUC__) -inline void MemoryBarrier() { +inline void ReadMemoryBarrier() { + __asm__ __volatile__("sync" : : : "memory"); +} +inline void WriteMemoryBarrier() { __asm__ __volatile__("sync" : : : "memory"); } #define LEVELDB_HAVE_MEMORY_BARRIER @@ -353,6 +356,7 @@ class AtomicPointer { #undef ARCH_CPU_SPARC_FAMILY #undef ARCH_CPU_SH_FAMILY #undef ARCH_CPU_PARISC_FAMILY +#undef ARCH_CPU_MIPS_FAMILY } // namespace port } // namespace leveldb