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
This commit is contained in:
Marguerite Su 2012-12-27 20:02:34 +00:00 committed by Git OBS Bridge
parent 5fd5bbeebb
commit 62ce867460
3 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,87 @@
From: Shawn Landden <shawnlandden@gmail.com>
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 <stdint.h>
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 <stdint.h>
+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

View File

@ -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

View File

@ -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