summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch')
-rw-r--r--import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch124
1 files changed, 0 insertions, 124 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch b/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch
deleted file mode 100644
index c4747fa27..000000000
--- a/import-layers/yocto-poky/meta/recipes-core/glibc/glibc/0002-Add-atomic-operations-required-by-the-new-condition-.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From b85e30e655027132c4326d2fdde010c517165aaf Mon Sep 17 00:00:00 2001
-From: Catalin Enache <catalin.enache@windriver.com>
-Date: Fri, 30 Jun 2017 14:27:34 +0300
-Subject: [PATCH 2/6] Add atomic operations required by the new condition
- variable.
-
- * include/atomic.h (atomic_fetch_and_relaxed,
- atomic_fetch_and_release, atomic_fetch_or_release,
- atomic_fetch_xor_release): New.
-
-Upstream-Status: Backport
-
-Author: Torvald Riegel <triegel@redhat.com>
-Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
----
- ChangeLog | 6 ++++++
- include/atomic.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 53 insertions(+)
-
-diff --git a/ChangeLog b/ChangeLog
-index cb87279..96b6da2 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,9 @@
-+2016-08-09 Torvald Riegel <triegel@redhat.com>
-+
-+ * include/atomic.h (atomic_fetch_and_relaxed,
-+ atomic_fetch_and_release, atomic_fetch_or_release,
-+ atomic_fetch_xor_release): New.
-+
- 2016-08-05 Torvald Riegel <triegel@redhat.com>
-
- * include/atomic.h (atomic_exchange_relaxed): New.
-diff --git a/include/atomic.h b/include/atomic.h
-index 129ee24..5a8e7e7 100644
---- a/include/atomic.h
-+++ b/include/atomic.h
-@@ -611,9 +611,15 @@ void __atomic_link_error (void);
- ({ __atomic_check_size((mem)); \
- __atomic_fetch_add ((mem), (operand), __ATOMIC_ACQ_REL); })
-
-+# define atomic_fetch_and_relaxed(mem, operand) \
-+ ({ __atomic_check_size((mem)); \
-+ __atomic_fetch_and ((mem), (operand), __ATOMIC_RELAXED); })
- # define atomic_fetch_and_acquire(mem, operand) \
- ({ __atomic_check_size((mem)); \
- __atomic_fetch_and ((mem), (operand), __ATOMIC_ACQUIRE); })
-+# define atomic_fetch_and_release(mem, operand) \
-+ ({ __atomic_check_size((mem)); \
-+ __atomic_fetch_and ((mem), (operand), __ATOMIC_RELEASE); })
-
- # define atomic_fetch_or_relaxed(mem, operand) \
- ({ __atomic_check_size((mem)); \
-@@ -621,6 +627,13 @@ void __atomic_link_error (void);
- # define atomic_fetch_or_acquire(mem, operand) \
- ({ __atomic_check_size((mem)); \
- __atomic_fetch_or ((mem), (operand), __ATOMIC_ACQUIRE); })
-+# define atomic_fetch_or_release(mem, operand) \
-+ ({ __atomic_check_size((mem)); \
-+ __atomic_fetch_or ((mem), (operand), __ATOMIC_RELEASE); })
-+
-+# define atomic_fetch_xor_release(mem, operand) \
-+ ({ __atomic_check_size((mem)); \
-+ __atomic_fetch_xor ((mem), (operand), __ATOMIC_RELEASE); })
-
- #else /* !USE_ATOMIC_COMPILER_BUILTINS */
-
-@@ -724,12 +737,24 @@ void __atomic_link_error (void);
- atomic_exchange_and_add_acq ((mem), (operand)); })
- # endif
-
-+/* XXX Fall back to acquire MO because archs do not define a weaker
-+ atomic_and_val. */
-+# ifndef atomic_fetch_and_relaxed
-+# define atomic_fetch_and_relaxed(mem, operand) \
-+ atomic_fetch_and_acquire ((mem), (operand))
-+# endif
- /* XXX The default for atomic_and_val has acquire semantics, but this is not
- documented. */
- # ifndef atomic_fetch_and_acquire
- # define atomic_fetch_and_acquire(mem, operand) \
- atomic_and_val ((mem), (operand))
- # endif
-+# ifndef atomic_fetch_and_release
-+/* XXX This unnecessarily has acquire MO. */
-+# define atomic_fetch_and_release(mem, operand) \
-+ ({ atomic_thread_fence_release (); \
-+ atomic_and_val ((mem), (operand)); })
-+# endif
-
- /* XXX The default for atomic_or_val has acquire semantics, but this is not
- documented. */
-@@ -743,6 +768,28 @@ void __atomic_link_error (void);
- # define atomic_fetch_or_relaxed(mem, operand) \
- atomic_fetch_or_acquire ((mem), (operand))
- # endif
-+/* XXX Contains an unnecessary acquire MO because archs do not define a weaker
-+ atomic_or_val. */
-+# ifndef atomic_fetch_or_release
-+# define atomic_fetch_or_release(mem, operand) \
-+ ({ atomic_thread_fence_release (); \
-+ atomic_fetch_or_acquire ((mem), (operand)); })
-+# endif
-+
-+# ifndef atomic_fetch_xor_release
-+# define atomic_fetch_xor_release(mem, operand) \
-+ ({ __typeof (*(mem)) __atg104_old; \
-+ __typeof (mem) __atg104_memp = (mem); \
-+ __typeof (*(mem)) __atg104_op = (operand); \
-+ \
-+ do \
-+ __atg104_old = (*__atg104_memp); \
-+ while (__builtin_expect \
-+ (atomic_compare_and_exchange_bool_rel ( \
-+ __atg104_memp, __atg104_old ^ __atg104_op, __atg104_old), 0));\
-+ \
-+ __atg104_old; })
-+#endif
-
- #endif /* !USE_ATOMIC_COMPILER_BUILTINS */
-
---
-2.10.2
-
OpenPOWER on IntegriCloud