From ddc2a441e357609e8d73a3c4529303374b3c314d Mon Sep 17 00:00:00 2001 From: "Timothy St. Clair" Date: Wed, 22 Oct 2014 16:05:34 -0500 Subject: [PATCH] Update to enable arm again --- mt_adaptor.c.patch | 32 ++++++++++++++++++++++++++++++++ zookeeper.spec | 5 ++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 mt_adaptor.c.patch diff --git a/mt_adaptor.c.patch b/mt_adaptor.c.patch new file mode 100644 index 0000000..6d7563f --- /dev/null +++ b/mt_adaptor.c.patch @@ -0,0 +1,32 @@ +Index: src/c/src/mt_adaptor.c +=================================================================== +--- src/c/src/mt_adaptor.c (revision 1447974) ++++ src/c/src/mt_adaptor.c (working copy) +@@ -484,25 +484,9 @@ + int32_t fetch_and_add(volatile int32_t* operand, int incr) + { + #ifndef WIN32 +- int32_t result; +- asm __volatile__( +- "lock xaddl %0,%1\n" +- : "=r"(result), "=m"(*(int *)operand) +- : "0"(incr) +- : "memory"); +- return result; ++ return __sync_fetch_and_add(operand, incr); + #else +- volatile int32_t result; +- _asm +- { +- mov eax, operand; //eax = v; +- mov ebx, incr; // ebx = i; +- mov ecx, 0x0; // ecx = 0; +- lock xadd dword ptr [eax], ecx; +- lock xadd dword ptr [eax], ebx; +- mov result, ecx; // result = ebx; +- } +- return result; ++ return InterlockedExchangeAdd(operand, incr); + #endif + } + diff --git a/zookeeper.spec b/zookeeper.spec index 948e129..20fdccc 100644 --- a/zookeeper.spec +++ b/zookeeper.spec @@ -17,9 +17,11 @@ Source3: zkEnv.sh Patch1: %{name}-3.4.5-zktreeutil-gcc.patch Patch2: %{name}-3.4.6-ivy-build.patch Patch3: %{name}-3.4.6-server.patch +# patch accepted in 3.5.0 +Patch4: https://issues.apache.org/jira/secure/attachment/12570030/mt_adaptor.c.patch # The native bits don't compile on ARM -ExcludeArch: %{arm} +##ExcludeArch: %%{arm} BuildRequires: autoconf BuildRequires: automake @@ -115,6 +117,7 @@ The python-%{name} package contains Python bindings for %{name}. %patch1 -p0 %patch2 -p1 %patch3 -p1 +%patch4 -p0 -F2 iconv -f iso8859-1 -t utf-8 src/c/ChangeLog > src/c/ChangeLog.conv && mv -f src/c/ChangeLog.conv src/c/ChangeLog sed -i 's/\r//' src/c/ChangeLog