summaryrefslogtreecommitdiff
path: root/dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch')
-rw-r--r--dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch b/dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch
new file mode 100644
index 000000000000..66cabfa55821
--- /dev/null
+++ b/dev-libs/libatomic_ops/files/libatomic_ops-7.6.4-gcc7.patch
@@ -0,0 +1,40 @@
+Upstream commit: https://github.com/ivmai/libatomic_ops/commit/759fa976432e4f09b4a436774fff7119da050042
+
+From 759fa976432e4f09b4a436774fff7119da050042 Mon Sep 17 00:00:00 2001
+From: Ivan Maidanski <ivmai@mail.ru>
+Date: Thu, 29 Mar 2018 01:42:38 +0300
+Subject: [PATCH] Fix 'undefined reference to __atomic_load/store/cas_16' error
+ (gcc-7/x64)
+
+Issue #34 (libatomic_ops).
+
+* src/atomic_ops/sysdeps/gcc/x86.h [!AO_DISABLE_GCC_ATOMICS
+&& !__APPLE_CC__ && !__clang__ && AO_GNUC_PREREQ(7, 0)
+&& !AO_PREFER_BUILTIN_ATOMICS && !AO_THREAD_SANITIZER
+&& !__MINGW32__] (AO_SKIPATOMIC_double_compare_and_swap_ANY,
+AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY): Define macro; add comment.
+---
+ src/atomic_ops/sysdeps/gcc/x86.h | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/atomic_ops/sysdeps/gcc/x86.h b/src/atomic_ops/sysdeps/gcc/x86.h
+index d7c06c5..b4ca39f 100644
+--- a/src/atomic_ops/sysdeps/gcc/x86.h
++++ b/src/atomic_ops/sysdeps/gcc/x86.h
+@@ -67,7 +67,15 @@
+ # define AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
+ # endif
+ # endif /* __x86_64__ */
+-# endif /* __clang__ */
++
++# elif AO_GNUC_PREREQ(7, 0) && !defined(AO_PREFER_BUILTIN_ATOMICS) \
++ && !defined(AO_THREAD_SANITIZER) && !defined(__MINGW32__)
++ /* gcc-7.x/x64 (gcc-7.2, at least) requires -latomic flag in case */
++ /* of double-word atomic operations use (but not in case of TSan). */
++ /* TODO: Revise it for the future gcc-7 releases. */
++# define AO_SKIPATOMIC_double_compare_and_swap_ANY
++# define AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
++# endif /* __GNUC__ && !__clang__ */
+
+ # ifdef AO_SKIPATOMIC_DOUBLE_LOAD_STORE_ANY
+ # define AO_SKIPATOMIC_double_load