From 282ac04ab6a3f900cdd4a27905e3cc74669dadb464179ee784807bf6041663dd Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 7 Apr 2016 12:40:05 +0000 Subject: [PATCH] Accepting request 385734 from home:Andreas_Schwab:Factory - aarch64-gcc5.patch: fix build with gcc >= 5 OBS-URL: https://build.opensuse.org/request/show/385734 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libatomic_ops?expand=0&rev=19 --- aarch64-gcc5.patch | 41 +++++++++++++++++++++++++++++++++++++++++ libatomic_ops.changes | 5 +++++ libatomic_ops.spec | 4 +++- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 aarch64-gcc5.patch diff --git a/aarch64-gcc5.patch b/aarch64-gcc5.patch new file mode 100644 index 0000000..95751c9 --- /dev/null +++ b/aarch64-gcc5.patch @@ -0,0 +1,41 @@ +From 437c10b73ae4b83306f77c851cf8385172ae3759 Mon Sep 17 00:00:00 2001 +From: Frank Schaefer +Date: Tue, 9 Jun 2015 17:10:00 -0500 +Subject: [PATCH] Fix GCC 5.x compatibility for AArch64 double-wide primitives + +Small change to make aarch64 support work with gcc 5.x. Otherwise it +demands gcc -latomic and still fails test_stack. + +* src/atomic_ops/sysdeps/gcc/aarch64.h (AO_double_load, +AO_double_load_acquire, AO_double_store, AO_double_store_release, +AO_double_compare_and_swap, AO_double_compare_and_swap_acquire, +AO_double_compare_and_swap_release, AO_double_compare_and_swap_full): +Use assembly implementation even for GCC v5+ (not just GCC 4.x). +--- + src/atomic_ops/sysdeps/gcc/aarch64.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/atomic_ops/sysdeps/gcc/aarch64.h b/src/atomic_ops/sysdeps/gcc/aarch64.h +index f969f13..b7f2ef0 100644 +--- a/src/atomic_ops/sysdeps/gcc/aarch64.h ++++ b/src/atomic_ops/sysdeps/gcc/aarch64.h +@@ -30,7 +30,7 @@ + #endif + + /* TODO: Adjust version check on fixing double-wide AO support in GCC. */ +-#if __GNUC__ == 4 ++#if __GNUC__ >= 4 + + AO_INLINE AO_double_t + AO_double_load(const volatile AO_double_t *addr) +@@ -195,6 +195,6 @@ + return !result; + } + # define AO_HAVE_double_compare_and_swap_full +-#endif /* __GNUC__ == 4 */ ++#endif /* __GNUC__ >= 4 */ + + #include "generic.h" +-- +2.8.0 + diff --git a/libatomic_ops.changes b/libatomic_ops.changes index e28b9a1..d7740f5 100644 --- a/libatomic_ops.changes +++ b/libatomic_ops.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Apr 7 12:26:58 UTC 2016 - schwab@suse.de + +- aarch64-gcc5.patch: fix build with gcc >= 5 + ------------------------------------------------------------------- Thu Mar 5 09:41:01 UTC 2015 - jengelh@inai.de diff --git a/libatomic_ops.spec b/libatomic_ops.spec index 6a7512f..d8807bc 100644 --- a/libatomic_ops.spec +++ b/libatomic_ops.spec @@ -1,7 +1,7 @@ # # spec file for package libatomic_ops # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,6 +27,7 @@ Url: https://github.com/ivmai/libatomic_ops #Git-Clone: git://github.com/ivmai/libatomic_ops Source: http://www.ivmaisoft.com/_bin/atomic_ops/%name-%version.tar.gz Patch2: libatomic_ops-ppc64.patch +Patch3: aarch64-gcc5.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool @@ -56,6 +57,7 @@ that involves minimum overhead across a variety of architectures. %prep %setup -q %patch2 -p1 +%patch3 -p1 %build autoreconf -fvi