From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oa1-x2d.google.com (mail-oa1-x2d.google.com [IPv6:2001:4860:4864:20::2d]) by sourceware.org (Postfix) with ESMTPS id 1942A3858CDA for ; Mon, 26 Sep 2022 13:29:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1942A3858CDA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-13122bfaea6so4137556fac.11 for ; Mon, 26 Sep 2022 06:29:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date; bh=mXgbSbnqSH8abSR0YQG7PxgDboXY2sSiSNVslCeIyEY=; b=TSFW7BWpTTCRJctEMQ9e9ryZ8+TkQhAtLGM1Cq8fUHisRaEvlH+3sBxs+tpQZD5P4p cz2WWeQIr0mWZKm1UGE+DjCoieEBoW75Ug6B/nZYE6y/HDSA6xJNB8XK4ad66Vtl+Bv8 Z4Qy+XXP7HPdw91ApeYgT8vmgOy8iHYLTeNS6gxFXzB/qhcDpmodT52JO47IvLqQpAcs pzo3YYiqhkOj1wfV2gKTQ2Oe2kviZhBpt+0cfL19zvcEmJagcs/8WszZ3EqEz0Y6Ysat FuOXvS0SCo3iJcboN8okW6XxduZtfuuMJWwVLMWOR7qmMPzKciTEIxPW6uuLDR8MslPh bncQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:organization:from:references :to:content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date; bh=mXgbSbnqSH8abSR0YQG7PxgDboXY2sSiSNVslCeIyEY=; b=xwFlBnQMQWwMX+XYEwoQ7CGzrLrHE0x3QbRPL8tfmRdU/Wq7h9qKQ8pUnAAp4AiJrv ZdvIqrf89RvDfYqdV00OizMYWOPgnA3vMLHQASsvQHdQH1f2j/Ajd45prUk9+HE+BOp6 4f4wJR9FydtVzlGqLhSdBJLW6vxjKWAoXTaUlXd1vRWGjmrSe7IJt/CSJ7PwrjZcwb4Y aUEHPPY4S4Qcx6nkxA+CkqGzjaiEETJcRING7B+VcywQ4okqoTcMROtJ/ka3BT3DV02Q sEu9zr28ilwcZWwoXXDBpeLfoMEP9ZrqT/Vbi9gt9Al560lOBPI/ra6zIiVIKkEXfHZQ bZWg== X-Gm-Message-State: ACrzQf1DJZrLaUyZkVq1XRBOEmo7T1J0sa9Wk7VsjkI3tmd6iTvCaz9v 3KCTKBw4EVfNkvGYYl8akCHFWEvsMydg5tWm X-Google-Smtp-Source: AMsMyM4dwW2vmQnRfpbovsX4oblv6SnPgsChpDOapESmotzxanJBN0bxNRqk7zKaZKH8WvVOzdLwLw== X-Received: by 2002:a05:6870:46a1:b0:127:b4fc:9f04 with SMTP id a33-20020a05687046a100b00127b4fc9f04mr12703263oap.212.1664198970646; Mon, 26 Sep 2022 06:29:30 -0700 (PDT) Received: from ?IPV6:2804:1b3:a7c2:3736:b07a:d8a3:b936:2ca2? ([2804:1b3:a7c2:3736:b07a:d8a3:b936:2ca2]) by smtp.gmail.com with ESMTPSA id c18-20020a056830001200b0065a193c08absm7739300otp.34.2022.09.26.06.29.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 26 Sep 2022 06:29:29 -0700 (PDT) Message-ID: <2bdab150-dd1b-5455-5fdc-cf013fa71b5d@linaro.org> Date: Mon, 26 Sep 2022 10:29:27 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.3.0 Subject: Re: [PATCH] Use atomic_exchange_release/acquire Content-Language: en-US To: Wilco Dijkstra , 'GNU C Library' References: From: Adhemerval Zanella Netto Organization: Linaro In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_LOTSOFHASH,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 05/09/22 13:20, Wilco Dijkstra wrote: > Rename atomic_exchange_rel/acq to use the standard atomic_exchange_release/acquire builtins. > > Passes regress on AArch64. LGTM, thanks. Reviewed-by: Adhemerval Zanella > > --- > > diff --git a/assert/assert.c b/assert/assert.c > index 564ae28a2ba0d4b8508c1ecd072ebf3b0a157894..aa77e250b4c87a2bd1652ddae140d5c4526aaca4 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; Ok. > 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; \ > }) Ok. > diff --git a/malloc/malloc.c b/malloc/malloc.c > index ecec901b14f602e3c93da1a847f043ffee41a1f4..6402cf94ea8ae724d86d2a04fc7d42e3af174564 100644 > --- a/malloc/malloc.c > +++ b/malloc/malloc.c > @@ -4718,7 +4718,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 { > { Ok. > 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 Ok. > diff --git a/manual/memory.texi b/manual/memory.texi > index 23a039c57e60c81787252d935e3b309fd8290902..9d3398a326300f9ae693fe00ff3fecaff5fce014 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 Ok. > 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)) Ok. > 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); > Ok. > 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); \ Ok. > 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); \ Ok. > 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); \ Ok. > 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); \ Ok. > 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); \ Ok. > 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; > } Ok. > 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, Ok. > 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/loongarch/nptl/tls.h b/sysdeps/loongarch/nptl/tls.h > index 3b271c4b60f220c0b916583324a629dae28a4727..24bffe3a0adb91cda193463e2d0aa7d5a4d61b6f 100644 > --- a/sysdeps/loongarch/nptl/tls.h > +++ b/sysdeps/loongarch/nptl/tls.h > @@ -119,8 +119,8 @@ typedef struct > #define THREAD_GSCOPE_RESET_FLAG() \ > do \ > { \ > - int __res = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \ > - THREAD_GSCOPE_FLAG_UNUSED); \ > + 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, LLL_PRIVATE); \ > } \ Ok. > 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); \ Ok. > 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); \ Ok. > 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); \ Ok. > 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, Ok. > 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) \ Ok. > 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, \ Ok. > diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c > index 270238495d51d2fc86edc91a0cdc9d008e9db7c0..e8e582e0cf5ddd5532626a8625a8f200484b75f8 100644 > --- a/sysdeps/posix/libc_fatal.c > +++ b/sysdeps/posix/libc_fatal.c > @@ -137,8 +137,8 @@ __libc_message (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); > } Ok. > 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/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); \ Ok. > 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); \ Ok. > 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); \ > Ok.