diff mbox series

[1/7] Use atomic_exchange_release/acquire

Message ID AM5PR0801MB16681495F3515BCF62C0C02583809@AM5PR0801MB1668.eurprd08.prod.outlook.com
State New
Headers show
Series [1/7] Use atomic_exchange_release/acquire | expand

Commit Message

Wilco Dijkstra July 6, 2022, 3:10 p.m. UTC
Rename atomic_exchange_rel/acq to use the standard atomic_exchange_release/acquire builtins.

---
diff mbox series

Patch

diff --git a/assert/assert.c b/assert/assert.c
index 133a183bc337075e06447e4c8e5cfba180aaf7bf..6fe29c49ca577e12ab69172df129dcdce1ed6baf 100644
--- a/assert/assert.c
+++ b/assert/assert.c
@@ -74,7 +74,7 @@  __assert_fail_base (const char *fmt, const char *assertion, const char *file,
 
 	  /* We have to free the old buffer since the application might
 	     catch the SIGABRT signal.  */
-	  struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf);
+	  struct abort_msg_s *old = atomic_exchange_acquire (&__abort_msg, buf);
 
 	  if (old != NULL)
 	    __munmap (old, old->size);
diff --git a/hurd/hurdlock.c b/hurd/hurdlock.c
index 4f3bd3e54c6b296cfdd64b549d3f2e4669decbe2..ca407bdb1e8dea8e3979a2e8eb83acad30724ce2 100644
--- a/hurd/hurdlock.c
+++ b/hurd/hurdlock.c
@@ -89,7 +89,7 @@  __lll_abstimed_lock (void *ptr,
 
   while (1)
     {
-      if (atomic_exchange_acq ((int *)ptr, 2) == 0)
+      if (atomic_exchange_acquire ((int *)ptr, 2) == 0)
         return 0;
       else if (! valid_nanoseconds (tsp->tv_nsec))
         return EINVAL;
diff --git a/mach/lowlevellock.h b/mach/lowlevellock.h
index a4f6af4c29d80268697477fb107d99590d3fe6d3..d0adbd42e0b4ed29984d5ce86946d3d0f5fc3dc9 100644
--- a/mach/lowlevellock.h
+++ b/mach/lowlevellock.h
@@ -78,7 +78,7 @@  extern kern_return_t __gsync_wait_intr
          || atomic_compare_and_exchange_bool_acq (__iptr, 1, 0) != 0)   \
        while (1)   \
          {   \
-           if (atomic_exchange_acq (__iptr, 2) == 0)   \
+           if (atomic_exchange_acquire (__iptr, 2) == 0)   \
              break;   \
            __lll_wait (__iptr, 2, __flags);   \
          }   \
@@ -102,7 +102,7 @@  extern kern_return_t __gsync_wait_intr
 #define __lll_unlock(ptr, flags)   \
   ({   \
      int *__iptr = (int *)(ptr);   \
-     if (atomic_exchange_rel (__iptr, 0) == 2)   \
+     if (atomic_exchange_release (__iptr, 0) == 2)   \
        __lll_wake (__iptr, (flags));   \
      (void)0;   \
    })
diff --git a/malloc/malloc.c b/malloc/malloc.c
index c15df0dc3ae3207a24831d2291f67b532b8caefd..1b2a19c38ac4fd0af0c0b4a953ac6580101916ca 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -4743,7 +4743,7 @@  static void malloc_consolidate(mstate av)
   maxfb = &fastbin (av, NFASTBINS - 1);
   fb = &fastbin (av, 0);
   do {
-    p = atomic_exchange_acq (fb, NULL);
+    p = atomic_exchange_acquire (fb, NULL);
     if (p != 0) {
       do {
 	{
diff --git a/manual/llio.texi b/manual/llio.texi
index e55b02d8bd839827a352c751f11ad18114c32ed3..92bfd93e067ce2a782369084ed7dae099300f418 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -2538,7 +2538,7 @@  aiocb64}, since the LFS transparently replaces the old interface.
 @c     munmap ok
 @c    THREAD_COPY_STACK_GUARD ok
 @c    THREAD_COPY_POINTER_GUARD ok
-@c    atomic_exchange_acq ok
+@c    atomic_exchange_acquire ok
 @c    lll_futex_wake ok
 @c    deallocate_stack @asulock @ascuheap @aculock @acsmem
 @c     lll_lock (state_cache_lock) @asulock @aculock
@@ -2570,7 +2570,7 @@  aiocb64}, since the LFS transparently replaces the old interface.
 @c      atomic_increment ok
 @c      clone ok
 @c      atomic_decrement ok
-@c      atomic_exchange_acq ok
+@c      atomic_exchange_acquire ok
 @c      lll_futex_wake ok
 @c      deallocate_stack dup
 @c      sched_setaffinity ok
@@ -2590,7 +2590,7 @@  aiocb64}, since the LFS transparently replaces the old interface.
 @c    start_thread ok
 @c     HP_TIMING_NOW ok
 @c     ctype_init @mtslocale
-@c     atomic_exchange_acq ok
+@c     atomic_exchange_acquire ok
 @c     lll_futex_wake ok
 @c     sigemptyset ok
 @c     sigaddset ok
diff --git a/manual/memory.texi b/manual/memory.texi
index 5cb1dbd281006148f23cfa38c5703fb79089ba78..abc867eaebff732b2d7cc086d9f5e3430d425295 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -451,7 +451,7 @@  this function is in @file{stdlib.h}.
 @c    clear_fastchunks ok
 @c    unsorted_chunks dup ok
 @c    fastbin dup ok
-@c    atomic_exchange_acq ok
+@c    atomic_exchange_acquire ok
 @c    check_inuse_chunk dup ok/disabled
 @c    chunk_at_offset dup ok
 @c    chunksize dup ok
diff --git a/misc/tst-atomic.c b/misc/tst-atomic.c
index 4f9d2c1a46b363d346dbc2fa0962ae196844a43a..13acf0da8f1ab41774175401a68ce28a0eb7ed30 100644
--- a/misc/tst-atomic.c
+++ b/misc/tst-atomic.c
@@ -96,14 +96,6 @@  do_test (void)
       ret = 1;
     }
 
-  mem = 64;
-  if (atomic_exchange_acq (&mem, 31) != 64
-      || mem != 31)
-    {
-      puts ("atomic_exchange_acq test failed");
-      ret = 1;
-    }
-
   mem = 2;
   if (atomic_exchange_and_add (&mem, 11) != 2
       || mem != 13)
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 308db65cd4c148f8a119ed9025af194946aa2c80..870a8fcb34eb43b58c2260fee6a4624f0fbbd469 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -415,7 +415,7 @@  start_thread (void *arg)
   unwind_buf.priv.data.cleanup = NULL;
 
   /* Allow setxid from now onwards.  */
-  if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0) == -2))
+  if (__glibc_unlikely (atomic_exchange_acquire (&pd->setxid_futex, 0) == -2))
     futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
 
   if (__glibc_likely (! not_first_call))
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
index db99175dbba1cbd5e6fbdd273a0995ed8ed7920b..27c5f539a636a1530155f843aadc69ada73432f3 100644
--- a/nptl/pthread_mutex_unlock.c
+++ b/nptl/pthread_mutex_unlock.c
@@ -171,7 +171,7 @@  __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
          The unlock operation must be the last access to the mutex to not
          violate the mutex destruction requirements (see __lll_unlock).  */
       private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
-      if (__glibc_unlikely ((atomic_exchange_rel (&mutex->__data.__lock, 0)
+      if (__glibc_unlikely ((atomic_exchange_release (&mutex->__data.__lock, 0)
 			     & FUTEX_WAITERS) != 0))
 	futex_wake ((unsigned int *) &mutex->__data.__lock, 1, private);
 
diff --git a/sysdeps/aarch64/atomic-machine.h b/sysdeps/aarch64/atomic-machine.h
index 52b3fb2047cbf2518644b1595ed9a11cddcc89d2..459deeec18713a374bbe186bf84b0c366896a8d7 100644
--- a/sysdeps/aarch64/atomic-machine.h
+++ b/sysdeps/aarch64/atomic-machine.h
@@ -103,28 +103,6 @@ 
   __atomic_val_bysize (__arch_compare_and_exchange_val, int,    \
                        mem, new, old, __ATOMIC_RELEASE)
 
-
-/* Atomic exchange (without compare).  */
-
-# define __arch_exchange_8_int(mem, newval, model)	\
-  __atomic_exchange_n (mem, newval, model)
-
-# define __arch_exchange_16_int(mem, newval, model)	\
-  __atomic_exchange_n (mem, newval, model)
-
-# define __arch_exchange_32_int(mem, newval, model)	\
-  __atomic_exchange_n (mem, newval, model)
-
-#  define __arch_exchange_64_int(mem, newval, model)	\
-  __atomic_exchange_n (mem, newval, model)
-
-# define atomic_exchange_acq(mem, value)				\
-  __atomic_val_bysize (__arch_exchange, int, mem, value, __ATOMIC_ACQUIRE)
-
-# define atomic_exchange_rel(mem, value)				\
-  __atomic_val_bysize (__arch_exchange, int, mem, value, __ATOMIC_RELEASE)
-
-
 /* Atomically add value and return the previous (unincremented) value.  */
 
 # define __arch_exchange_and_add_8_int(mem, value, model)	\
diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
index 8d62b31e23d53ff2789bb32a828eac2254434679..08aa2eff891b7be32243e9955d998892807c7b2e 100644
--- a/sysdeps/aarch64/nptl/tls.h
+++ b/sysdeps/aarch64/nptl/tls.h
@@ -98,7 +98,7 @@  typedef struct
 # define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h
index ddf7de0705b37be20dbd7c981ff79e36659e0439..8f5b69ad3b1b0c557fa1bae55278547572a374cc 100644
--- a/sysdeps/alpha/nptl/tls.h
+++ b/sysdeps/alpha/nptl/tls.h
@@ -95,7 +95,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/arc/nptl/tls.h b/sysdeps/arc/nptl/tls.h
index 15adfc94918dda2364ab5321d3a6ce5693ba4ad4..7fc6602b236fa2455f8de4a0540442ae85d27c98 100644
--- a/sysdeps/arc/nptl/tls.h
+++ b/sysdeps/arc/nptl/tls.h
@@ -103,7 +103,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h
index 02d9be202d77b9ec871a52be5a4e49feffc300b1..7657ca3dccc2d929c71236d42fc060a4b4902e2b 100644
--- a/sysdeps/arm/nptl/tls.h
+++ b/sysdeps/arm/nptl/tls.h
@@ -89,7 +89,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/csky/nptl/tls.h b/sysdeps/csky/nptl/tls.h
index cd135d546444e2e8f8ce0d53d5a16e2b13709bb9..58d6ab0fb2ae90de50cffd5b4a98426c6a793050 100644
--- a/sysdeps/csky/nptl/tls.h
+++ b/sysdeps/csky/nptl/tls.h
@@ -118,7 +118,7 @@  typedef struct
 # define THREAD_GSCOPE_RESET_FLAG() \
   do									      \
     { int __res								      \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	      \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	      \
 			       THREAD_GSCOPE_FLAG_UNUSED);		      \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				      \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);    \
diff --git a/sysdeps/hppa/nptl/pthread_spin_init.c b/sysdeps/hppa/nptl/pthread_spin_init.c
index aca5e01fced74695b38d94fa66026df15607be01..f2a2009daa17043541a13bb1f64b5b255c83050c 100644
--- a/sysdeps/hppa/nptl/pthread_spin_init.c
+++ b/sysdeps/hppa/nptl/pthread_spin_init.c
@@ -23,7 +23,7 @@  __pthread_spin_init (pthread_spinlock_t *lock, int pshared)
 {
   /* CONCURRENCTY NOTES:
 
-     The atomic_exchange_rel synchronizes-with the atomic_exhange_acq in
+     The atomic_exchange_release synchronizes-with the atomic_exhange_acq in
      pthread_spin_lock.
 
      On hppa we must not use a plain `stw` to reset the guard lock.  This
@@ -40,7 +40,7 @@  __pthread_spin_init (pthread_spinlock_t *lock, int pshared)
      Therefore if a variable is used in an atomic macro it must always be
      manipulated with atomic macros in order for memory ordering rules to
      be preserved.  */
-  atomic_exchange_rel (lock, 0);
+  atomic_exchange_release (lock, 0);
   return 0;
 }
 versioned_symbol (libc, __pthread_spin_init, pthread_spin_init,
diff --git a/sysdeps/hppa/nptl/pthread_spin_unlock.c b/sysdeps/hppa/nptl/pthread_spin_unlock.c
index 5639ec84ec3e058438f0407b3f5da4cb62de1b37..885ce2b2ba7b679a8ec06ef24d8e4cdff22c2798 100644
--- a/sysdeps/hppa/nptl/pthread_spin_unlock.c
+++ b/sysdeps/hppa/nptl/pthread_spin_unlock.c
@@ -23,7 +23,7 @@  __pthread_spin_unlock (pthread_spinlock_t *lock)
 {
   /* CONCURRENCTY NOTES:
 
-     The atomic_exchange_rel synchronizes-with the atomic_exhange_acq in
+     The atomic_exchange_release synchronizes-with the atomic_exhange_acq in
      pthread_spin_lock.
 
      On hppa we must not use a plain `stw` to reset the guard lock.  This
@@ -40,7 +40,7 @@  __pthread_spin_unlock (pthread_spinlock_t *lock)
      Therefore if a variable is used in an atomic macro it must always be
      manipulated with atomic macros in order for memory ordering rules to
      be preserved.  */
-  atomic_exchange_rel (lock, 0);
+  atomic_exchange_release (lock, 0);
   return 0;
 }
 versioned_symbol (libc, __pthread_spin_unlock, pthread_spin_unlock,
diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h
index 204960d524246af3e8be40ecad20ffb567f2dc6d..e6b0bd5c7182b497aaf0d2bb08f62551a223c403 100644
--- a/sysdeps/hppa/nptl/tls.h
+++ b/sysdeps/hppa/nptl/tls.h
@@ -123,7 +123,7 @@  static inline void __set_cr27(struct pthread *cr27)
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h
index 8ccedb73e610095337b8a082ee0742866ac4e2f8..d2411b3c1ac29733c0bb3683d83388e2e0e8e277 100644
--- a/sysdeps/ia64/nptl/tls.h
+++ b/sysdeps/ia64/nptl/tls.h
@@ -147,7 +147,7 @@  register struct pthread *__thread_self __asm__("r13");
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h
index 30d58e36e9552d1776fffe071653c78a8012408b..742e1b6767d99fa6011ac1d207264c7b82e53787 100644
--- a/sysdeps/m68k/nptl/tls.h
+++ b/sysdeps/m68k/nptl/tls.h
@@ -122,7 +122,7 @@  extern void * __m68k_read_tp (void);
 #define THREAD_GSCOPE_RESET_FLAG()					\
   do									\
     { int __res								\
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	\
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	\
 			       THREAD_GSCOPE_FLAG_UNUSED);		\
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				\
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
diff --git a/sysdeps/microblaze/nptl/tls.h b/sysdeps/microblaze/nptl/tls.h
index 40a6acd71e710c35f2b8ef2495fdeb34906f9517..588fd1c5d63ee4e6a1b284cc19e216b6730a2091 100644
--- a/sysdeps/microblaze/nptl/tls.h
+++ b/sysdeps/microblaze/nptl/tls.h
@@ -100,7 +100,7 @@  typedef struct
 # define THREAD_GSCOPE_RESET_FLAG()                                         \
   do                                                                        \
     { int __res                                                             \
-      = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,              \
+      = atomic_exchange_release (&THREAD_SELF->header.gscope_flag,          \
                              THREAD_GSCOPE_FLAG_UNUSED);                    \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)                                 \
         lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);  \
diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h
index 03a5b24abd5d1d6254418e79cb231b03cee72d99..2aa7cb4bb8d0b5a31889aa33d5751104ff1e4f45 100644
--- a/sysdeps/mips/nptl/tls.h
+++ b/sysdeps/mips/nptl/tls.h
@@ -150,7 +150,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h
index 18080275ef7458c80c7826fc0fa0f6a4fadac320..cb231e2a4bbfa52495c4c017a7d3e1c6dd7937ca 100644
--- a/sysdeps/nios2/nptl/tls.h
+++ b/sysdeps/nios2/nptl/tls.h
@@ -130,7 +130,7 @@  register struct pthread *__thread_self __asm__("r23");
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/nptl/futex-internal.h b/sysdeps/nptl/futex-internal.h
index cf54c27ed9d5780cd9a9166878fdc5a204c0b64f..f64728b3988aeede7e5f29ef286abaca0d705744 100644
--- a/sysdeps/nptl/futex-internal.h
+++ b/sysdeps/nptl/futex-internal.h
@@ -319,7 +319,7 @@  __futex_clocklock64 (int *futex, clockid_t clockid,
 {
   if (__glibc_unlikely (atomic_compare_and_exchange_bool_acq (futex, 1, 0)))
     {
-      while (atomic_exchange_acq (futex, 2) != 0)
+      while (atomic_exchange_acquire (futex, 2) != 0)
         {
 	  int err = 0;
           err = __futex_abstimed_wait64 ((unsigned int *) futex, 2, clockid,
diff --git a/sysdeps/nptl/lowlevellock.h b/sysdeps/nptl/lowlevellock.h
index b429d9aa780f3c5ca6e4ae0f8e4e31e6ef8950f2..29aa9adb89e5f6291b30b9435201d597b58cb595 100644
--- a/sysdeps/nptl/lowlevellock.h
+++ b/sysdeps/nptl/lowlevellock.h
@@ -119,7 +119,7 @@  libc_hidden_proto (__lll_lock_wait)
   ((void)                                                               \
    ({                                                                   \
      int *__futex = (futex);                                            \
-     if (__glibc_unlikely (atomic_exchange_acq (__futex, 2) != 0))      \
+     if (__glibc_unlikely (atomic_exchange_acquire (__futex, 2) != 0))  \
        __lll_lock_wait (__futex, private);                              \
    }))
 #define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
@@ -147,7 +147,7 @@  libc_hidden_proto (__lll_lock_wake)
   ({									\
      int *__futex = (futex);						\
      int __private = (private);						\
-     int __oldval = atomic_exchange_rel (__futex, 0);			\
+     int __oldval = atomic_exchange_release (__futex, 0);		\
      if (__glibc_unlikely (__oldval > 1))				\
        {								\
          if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
diff --git a/sysdeps/or1k/nptl/tls.h b/sysdeps/or1k/nptl/tls.h
index c6ffe62c3f8c1ae330e6402640294cbc18714883..e82f444738de222c0e4866d5a2ab8191ce99ddc9 100644
--- a/sysdeps/or1k/nptl/tls.h
+++ b/sysdeps/or1k/nptl/tls.h
@@ -164,7 +164,7 @@  register tcbhead_t *__thread_self __asm__("r10");
 #define THREAD_GSCOPE_RESET_FLAG()					\
   do									\
     {									\
-      int __res = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,\
+      int __res = atomic_exchange_release (&THREAD_SELF->header.gscope_flag,\
 				       THREAD_GSCOPE_FLAG_UNUSED);	\
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				\
 	  lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1,		\
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index 2ee0010b8dbee26dcc10d5cffab1b410c0446b31..b37423d681c09321e5969e81e32f88f33f675ecb 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -140,8 +140,8 @@  __libc_message (enum __libc_message_action action, const char *fmt, ...)
 
 	      /* We have to free the old buffer since the application might
 		 catch the SIGABRT signal.  */
-	      struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg,
-							     buf);
+	      struct abort_msg_s *old =
+		atomic_exchange_acquire (&__abort_msg, buf);
 	      if (old != NULL)
 		__munmap (old, old->size);
 	    }
diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h
index 22b00752350196ad7e6d0fbdcafdc271f0af5bed..e62a96238aa95c79ac1f749b4dbf03985b6e15d4 100644
--- a/sysdeps/powerpc/nptl/tls.h
+++ b/sysdeps/powerpc/nptl/tls.h
@@ -214,7 +214,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/riscv/nptl/tls.h b/sysdeps/riscv/nptl/tls.h
index 4e586f348adf6556151c850e983bbcaa42a91b0f..700c2f51899b0385d7ebaa4810c84de4fa6f2b45 100644
--- a/sysdeps/riscv/nptl/tls.h
+++ b/sysdeps/riscv/nptl/tls.h
@@ -113,7 +113,7 @@  typedef struct
 # define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/s390/atomic-machine.h b/sysdeps/s390/atomic-machine.h
index 6b1de51c2a30baf5554a729a80a7ce04b56fc22c..fe7f04cf30cf5b62fea743a72384f8fc248d2d25 100644
--- a/sysdeps/s390/atomic-machine.h
+++ b/sysdeps/s390/atomic-machine.h
@@ -71,14 +71,6 @@ 
 				  1, __ATOMIC_ACQUIRE,			\
 				  __ATOMIC_RELAXED); })
 
-/* Store NEWVALUE in *MEM and return the old value.  */
-#define atomic_exchange_acq(mem, newvalue)				\
-  ({ __atomic_check_size((mem));					\
-    __atomic_exchange_n (mem, newvalue, __ATOMIC_ACQUIRE); })
-#define atomic_exchange_rel(mem, newvalue)				\
-  ({ __atomic_check_size((mem));					\
-    __atomic_exchange_n (mem, newvalue, __ATOMIC_RELEASE); })
-
 /* Add VALUE to *MEM and return the old value of *MEM.  */
 /* The gcc builtin uses load-and-add instruction on z196 zarch and higher cpus
    instead of a loop with compare-and-swap instruction.  */
diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h
index ff210ffeb25a140bb19dbf54ab299350dc261ac7..98d7870148ce6bc1d6397b1465dfabe96f7280b2 100644
--- a/sysdeps/s390/nptl/tls.h
+++ b/sysdeps/s390/nptl/tls.h
@@ -157,7 +157,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h
index 76591ab6ef6c12b73dda0feb18ab5adfbf53c28e..1530489a6ce4286bc5146e6cd83e3b463b965467 100644
--- a/sysdeps/sh/nptl/tls.h
+++ b/sysdeps/sh/nptl/tls.h
@@ -129,7 +129,7 @@  typedef struct
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/sparc/nptl/tls.h b/sysdeps/sparc/nptl/tls.h
index d1e2bb4ad192cc7c825fd62b03bec45bc537aaf6..95a69cb8249dc79c3a063637a21d976d2660c48f 100644
--- a/sysdeps/sparc/nptl/tls.h
+++ b/sysdeps/sparc/nptl/tls.h
@@ -130,7 +130,7 @@  register struct pthread *__thread_self __asm__("%g7");
 #define THREAD_GSCOPE_RESET_FLAG() \
   do									     \
     { int __res								     \
-	= atomic_exchange_rel (&THREAD_SELF->header.gscope_flag,	     \
+	= atomic_exchange_release (&THREAD_SELF->header.gscope_flag,	     \
 			       THREAD_GSCOPE_FLAG_UNUSED);		     \
       if (__res == THREAD_GSCOPE_FLAG_WAIT)				     \
 	lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE);   \
diff --git a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
index f4b2cbced828a80335887bf172fd60767cf978ac..a3eff1134ac2bed7e1e14de961cf77b8b1a33ce5 100644
--- a/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
+++ b/sysdeps/unix/sysv/linux/riscv/atomic-machine.h
@@ -118,12 +118,6 @@ 
 #  define __arch_exchange_64_int(mem, newval, model)	\
   __atomic_exchange_n (mem, newval, model)
 
-# define atomic_exchange_acq(mem, value)				\
-  __atomic_val_bysize (__arch_exchange, int, mem, value, __ATOMIC_ACQUIRE)
-
-# define atomic_exchange_rel(mem, value)				\
-  __atomic_val_bysize (__arch_exchange, int, mem, value, __ATOMIC_RELEASE)
-
 /* Atomically add value and return the previous (unincremented) value.  */
 
 # define __arch_exchange_and_add_8_int(mem, value, model)	\
diff --git a/sysdeps/x86/atomic-machine.h b/sysdeps/x86/atomic-machine.h
index ffd059618878be42c05fb21cd51b7434a6f37637..c27a437ec1b129fc18ca832708a69627959fc107 100644
--- a/sysdeps/x86/atomic-machine.h
+++ b/sysdeps/x86/atomic-machine.h
@@ -95,34 +95,6 @@ 
 #endif
 
 
-/* Note that we need no lock prefix.  */
-#define atomic_exchange_acq(mem, newvalue) \
-  ({ __typeof (*mem) result;						      \
-     if (sizeof (*mem) == 1)						      \
-       __asm __volatile ("xchgb %b0, %1"				      \
-			 : "=q" (result), "=m" (*mem)			      \
-			 : "0" (newvalue), "m" (*mem));			      \
-     else if (sizeof (*mem) == 2)					      \
-       __asm __volatile ("xchgw %w0, %1"				      \
-			 : "=r" (result), "=m" (*mem)			      \
-			 : "0" (newvalue), "m" (*mem));			      \
-     else if (sizeof (*mem) == 4)					      \
-       __asm __volatile ("xchgl %0, %1"					      \
-			 : "=r" (result), "=m" (*mem)			      \
-			 : "0" (newvalue), "m" (*mem));			      \
-     else if (__HAVE_64B_ATOMICS)					      \
-       __asm __volatile ("xchgq %q0, %1"				      \
-			 : "=r" (result), "=m" (*mem)			      \
-			 : "0" ((int64_t) cast_to_integer (newvalue)),        \
-			   "m" (*mem));					      \
-     else								      \
-       {								      \
-	 result = 0;							      \
-	 __atomic_link_error ();					      \
-       }								      \
-     result; })
-
-
 #define __arch_exchange_and_add_body(lock, pfx, mem, value) \
   ({ __typeof (*mem) __result;						      \
      __typeof (value) __addval = (value);				      \