Source: leveldb Version: 0+20110926.git26db4d9-1 Severity: serious Justification: fails to build from source Tags: patch
Hi, leveldb ftbfs on s390. https://buildd.debian.org/status/fetch.php?pkg=leveldb&arch=s390&ver=0%2B20110926.git26db4d9-1&stamp=1317749307 ----- In file included from ./port/port_posix.h:28:0, from ./port/port.h:14, from ./db/filename.h:14, from db/builder.cc:7: ./port/atomic_pointer.h: In function 'void leveldb::port::ReadMemoryBarrier()': ./port/atomic_pointer.h:161:3: error: expected primary-expression before 'volatile' ./port/atomic_pointer.h:161:3: error: expected ';' before 'volatile' ./port/atomic_pointer.h: In function 'void leveldb::port::WriteMemoryBarrier()': ./port/atomic_pointer.h:164:3: error: expected primary-expression before 'volatile' ./port/atomic_pointer.h:164:3: error: expected ';' before 'volatile' make[1]: *** [db/builder.o] Error 1 make[1]: *** Waiting for unfinished jobs.... ----- Because there is not asm keyword in front of volatile. (Sorry, this patch was provided by me.) I created new patch. Please check and apply. Best regards, Nobuhiro -- Nobuhiro Iwamatsu iwamatsu at {nigauri.org / debian.org} GPG ID: 40AD1FA6
From bc03fac68e487d0aa367b93794177178a1f9f1ab Mon Sep 17 00:00:00 2001 From: Nobuhiro Iwamatsu <iwama...@debian.org> Date: Wed, 28 Sep 2011 12:29:28 +0900 Subject: [PATCH 5/9] Add support S390 Signed-off-by: Nobuhiro Iwamatsu <iwama...@debian.org> --- port/atomic_pointer.h | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/port/atomic_pointer.h b/port/atomic_pointer.h index 6d0b15f..03a1815 100644 --- a/port/atomic_pointer.h +++ b/port/atomic_pointer.h @@ -42,6 +42,8 @@ #define ARCH_CPU_IA64_FAMILY 1 #elif defined(__alpha__) #define ARCH_CPU_ALPHA_FAMILY 1 +#elif defined(__s390x__) || defined(__s390__) +#define ARCH_CPU_S390_FAMILY 1 #endif namespace leveldb { @@ -144,6 +146,17 @@ inline void WriteMemoryBarrier() { } #define LEVELDB_HAVE_MEMORY_BARRIER +// S390 +#elif defined(ARCH_CPU_S390_FAMILY) + +inline void ReadMemoryBarrier() { + asm volatile("bcr 15,0" : : : "memory"); +} +inline void WriteMemoryBarrier() { + asm volatile("bcr 15,0" : : : "memory"); +} +#define LEVELDB_HAVE_MEMORY_BARRIER + #endif // AtomicPointer built using platform-specific MemoryBarrier() @@ -201,6 +214,7 @@ class AtomicPointer { #undef ARCH_CPU_PPC_FAMILY #undef ARCH_CPU_IA64_FAMILY #undef ARCH_CPU_ALPHA_FAMILY +#undef ARCH_CPU_S390_FAMILY } // namespace leveldb::port } // namespace leveldb -- 1.7.6.3