[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3] qemu/atomic.h: rename atomic_ to qatomic_
- To: qemu-devel@xxxxxxxxxx
- From: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
- Date: Wed, 23 Sep 2020 16:13:17 +0100
- Authentication-results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=stefanha@xxxxxxxxxx
- Cc: Michael Roth <mdroth@xxxxxxxxxxxxxxxxxx>, John Snow <jsnow@xxxxxxxxxx>, Alistair Francis <Alistair.Francis@xxxxxxx>, Halil Pasic <pasic@xxxxxxxxxxxxx>, Matthew Rosato <mjrosato@xxxxxxxxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, Eric Blake <eblake@xxxxxxxxxx>, Markus Armbruster <armbru@xxxxxxxxxx>, Gerd Hoffmann <kraxel@xxxxxxxxxx>, sheepdog@xxxxxxxxxxxxxx, Yoshinori Sato <ysato@xxxxxxxxxxxxxxxxxxxx>, Daniel P. Berrangé <berrange@xxxxxxxxxx>, Thomas Huth <thuth@xxxxxxxxxx>, kvm@xxxxxxxxxxxxxxx, Paul Durrant <paul@xxxxxxx>, qemu-s390x@xxxxxxxxxx, "Michael S. Tsirkin" <mst@xxxxxxxxxx>, "Dr. David Alan Gilbert" <dgilbert@xxxxxxxxxx>, Aurelien Jarno <aurelien@xxxxxxxxxxx>, Aleksandar Markovic <aleksandar.qemu.devel@xxxxxxxxx>, Stefan Weil <sw@xxxxxxxxxxx>, qemu-riscv@xxxxxxxxxx, qemu-block@xxxxxxxxxx, Hailiang Zhang <zhang.zhanghailiang@xxxxxxxxxx>, Max Filippov <jcmvbkbc@xxxxxxxxx>, Christian Borntraeger <borntraeger@xxxxxxxxxx>, Alberto Garcia <berto@xxxxxxxxxx>, Kevin Wolf <kwolf@xxxxxxxxxx>, Peter Lieven <pl@xxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>, Laurent Vivier <laurent@xxxxxxxxx>, Anthony Perard <anthony.perard@xxxxxxxxxx>, Yuval Shaia <yuval.shaia.ml@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Huacai Chen <chenhc@xxxxxxxxxx>, Sunil Muthuswamy <sunilmut@xxxxxxxxxxxxx>, Bastian Koppelmann <kbastian@xxxxxxxxxxxxxxxxxxxxx>, Juan Quintela <quintela@xxxxxxxxxx>, Cornelia Huck <cohuck@xxxxxxxxxx>, Max Reitz <mreitz@xxxxxxxxxx>, Richard Henderson <rth@xxxxxxxxxxx>, Jiri Slaby <jslaby@xxxxxxx>, Marcel Apfelbaum <marcel.apfelbaum@xxxxxxxxx>, Sagar Karandikar <sagark@xxxxxxxxxxxxxxxxx>, Liu Yuan <namei.unix@xxxxxxxxx>, Jason Wang <jasowang@xxxxxxxxxx>, Palmer Dabbelt <palmer@xxxxxxxxxxx>, Aleksandar Rikalo <aleksandar.rikalo@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Fam Zheng <fam@xxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Eduardo Habkost <ehabkost@xxxxxxxxxx>, qemu-arm@xxxxxxxxxx
- Delivery-date: Wed, 23 Sep 2020 15:14:12 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On Wed, Sep 23, 2020 at 11:56:46AM +0100, Stefan Hajnoczi wrote:
> clang's C11 atomic_fetch_*() functions only take a C11 atomic type
> pointer argument. QEMU uses direct types (int, etc) and this causes a
> compiler error when a QEMU code calls these functions in a source file
> that also included <stdatomic.h> via a system header file:
>
> $ CC=clang CXX=clang++ ./configure ... && make
> ../util/async.c:79:17: error: address argument to atomic operation must be
> a pointer to _Atomic type ('unsigned int *' invalid)
>
> Avoid using atomic_*() names in QEMU's atomic.h since that namespace is
> used by <stdatomic.h>. Prefix QEMU's APIs with 'q' so that atomic.h
> and <stdatomic.h> can co-exist. I checked /usr/include on my machine and
> searched GitHub for existing "qatomic_" users but there seem to be none.
>
> This patch was generated using:
>
> $ git grep -h -o '\<atomic\(64\)\?_[a-z0-9_]\+' include/qemu/atomic.h | \
> sort -u >/tmp/changed_identifiers
> $ for identifier in $(</tmp/changed_identifiers); do
> sed -i "s%\<$identifier\>%q$identifier%g" \
> $(git grep -I -l "\<$identifier\>")
> done
>
> I manually fixed line-wrap issues and misaligned rST tables.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx>
> ---
> v3:
> * Use qatomic_ instead of atomic_ [Paolo]
> * The diff of my manual fixups is available here:
> https://vmsplice.net/~stefan/atomic-namespace-pre-fixups-v3.diff
> - Dropping #ifndef qatomic_fetch_add in atomic.h
> - atomic_##X(haddr, val) glue macros not caught by grep
> - Keep atomic_add-bench name
> - C preprocessor backslash-newline ('\') column alignment
> - Line wrapping
Thanks, applied quickly due to high risk of conflicts:
https://github.com/stefanha/qemu/commits/block
Stefan
Attachment:
signature.asc
Description: PGP signature
|