From 62ce867460733336beb93326b4a3a576d89913e1e90c5cad5d221c0a07373f12 Mon Sep 17 00:00:00 2001 From: Marguerite Su Date: Thu, 27 Dec 2012 20:02:34 +0000 Subject: [PATCH] Accepting request 146463 from home:k0da:ppc - fix up configure test to handle lack of 8 byte atomics correctly (configure-8-byte-atomics.patch) OBS-URL: https://build.opensuse.org/request/show/146463 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/kyotocabinet?expand=0&rev=11 --- configure-8-byte-atomics.patch | 87 ++++++++++++++++++++++++++++++++++ kyotocabinet.changes | 6 +++ kyotocabinet.spec | 2 + 3 files changed, 95 insertions(+) create mode 100644 configure-8-byte-atomics.patch diff --git a/configure-8-byte-atomics.patch b/configure-8-byte-atomics.patch new file mode 100644 index 0000000..f453a36 --- /dev/null +++ b/configure-8-byte-atomics.patch @@ -0,0 +1,87 @@ +From: Shawn Landden +Date: Thu, 21 Jun 2012 20:34:28 -0700 +Subject: configure: 8 byte atomics + +fix up configure test to handle lack of 8 byte atomics correctly + +as is the case with all ARM targets currently +--- + configure | 29 +++++++++++++---------------- + configure.in | 19 ++++++++++++++++--- + 2 files changed, 29 insertions(+), 19 deletions(-) + +diff --git a/configure b/configure +index a07063d..bfc6df0 100755 +--- a/configure ++++ b/configure +@@ -4012,25 +4012,22 @@ fi + # Atomic operations + if test "$enable_atomic" != "no" + then +- printf 'checking for atomic operations... ' +- cat confdefs.h - <<_ACEOF >conftest.$ac_ext +-/* end confdefs.h. */ +- ++ printf 'checking for 8 byte atomic operations... ' ++ if printf ' ++/* Some targets support 4 byte atomics, but not 8 byte atomics, ++ * and will fail at link time if they are used. ++ * ++ * http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Atomic-Builtins.html ++ * http://gcc.gnu.org/wiki/Atomic ++ */ ++#include + int + main () + { +-__sync_fetch_and_add +- ; +- return 0; +-} +-_ACEOF +-if ac_fn_cxx_try_compile "$LINENO"; then : +- MYGCCATOMIC=yes +-else +- MYGCCATOMIC=no +-fi +-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +- if test "$MYGCCATOMIC" = "yes" ++uint64_t n = 0xdeadbeaf; ++__sync_bool_compare_and_swap(&n, 0xdeadbeaf, 0); ++return n; ++}' | $CC -xc -o config.tmp - >/dev/null 2>&1 + then + MYCPPFLAGS="$MYCPPFLAGS -D_MYGCCATOMIC" + printf 'yes\n' +diff --git a/configure.in b/configure.in +index 7808806..b5f5ac0 100644 +--- a/configure.in ++++ b/configure.in +@@ -238,9 +238,22 @@ fi + # Atomic operations + if test "$enable_atomic" != "no" + then +- printf 'checking for atomic operations... ' +- AC_TRY_COMPILE([], [__sync_fetch_and_add], [MYGCCATOMIC=yes], [MYGCCATOMIC=no]) +- if test "$MYGCCATOMIC" = "yes" ++ printf 'checking for 8 byte atomic operations... ' ++ if printf ' ++/* Some targets support 4 byte atomics, but not 8 byte atomics, ++ * and will fail at link time if they are used. ++ * ++ * http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Atomic-Builtins.html ++ * http://gcc.gnu.org/wiki/Atomic ++ */ ++#include ++int ++main () ++{ ++uint64_t n = 0xdeadbeaf; ++__sync_bool_compare_and_swap(&n, 0xdeadbeaf, 0); ++return n; ++}' | $CC -xc -o config.tmp - >/dev/null 2>&1 + then + MYCPPFLAGS="$MYCPPFLAGS -D_MYGCCATOMIC" + printf 'yes\n' +-- +1.7.9.5 diff --git a/kyotocabinet.changes b/kyotocabinet.changes index 35a7506..d52a1fe 100644 --- a/kyotocabinet.changes +++ b/kyotocabinet.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Dec 27 10:34:38 UTC 2012 - dvaleev@suse.com + +- fix up configure test to handle lack of 8 byte atomics correctly + (configure-8-byte-atomics.patch) + ------------------------------------------------------------------- Sat Aug 11 14:19:14 UTC 2012 - jengelh@inai.de diff --git a/kyotocabinet.spec b/kyotocabinet.spec index 4bac2aa..58c0a7b 100644 --- a/kyotocabinet.spec +++ b/kyotocabinet.spec @@ -27,6 +27,7 @@ Url: http://fallabs.com/kyotocabinet/ Source: http://fallabs.com/kyotocabinet/pkg/kyotocabinet-%{version}.tar.gz # PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines Patch1: %{name}-fix_rpath.patch +Patch2: configure-8-byte-atomics.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc-c++ @@ -106,6 +107,7 @@ Kyoto Cabinet within a proprietary software, the commercial license is required. %prep %setup -q %patch1 -p 1 +%patch2 -p1 sed -ie "/ldconfig/d" Makefile.in sed -ie "/DOCDIR/d" Makefile.in