From: Markus Armbruster <armbru@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Kevin Wolf <kwolf@redhat.com>,
qemu-trivial@nongnu.org
Subject: Re: [PATCH-for-8.0] coroutine: Add missing <qemu/atomic.h> include
Date: Wed, 14 Dec 2022 08:58:19 +0100 [thread overview]
Message-ID: <87mt7qmn6s.fsf@pond.sub.org> (raw)
In-Reply-To: <20221125175532.48858-1-philmd@linaro.org> ("Philippe Mathieu-Daudé"'s message of "Fri, 25 Nov 2022 18:55:32 +0100")
Philippe Mathieu-Daudé <philmd@linaro.org> writes:
> qemu_co_mutex_assert_locked() calls qatomic_read(), which
> is declared in <qemu/atomic.h>. This fixes when refactoring:
>
> In file included from include/qemu/osdep.h:113,
> from ../../util/error-report.c:13:
> include/qemu/coroutine.h: In function 'qemu_co_mutex_assert_locked':
> include/qemu/coroutine.h:182:12: error: implicit declaration of function 'qatomic_read' [-Werror=implicit-function-declaration]
> 182 | assert(qatomic_read(&mutex->locked) &&
> | ^~~~~~~~~~~~
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> include/qemu/coroutine.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/qemu/coroutine.h b/include/qemu/coroutine.h
> index 89650a2d7f..1750c30d8e 100644
> --- a/include/qemu/coroutine.h
> +++ b/include/qemu/coroutine.h
> @@ -17,6 +17,7 @@
>
> #include "qemu/queue.h"
> #include "qemu/timer.h"
> +#include "qemu/atomic.h"
>
> /**
> * Coroutines are a mechanism for stack switching and can be used for
I think this papers over the actual problem.
Compiling qemu/coroutine.h by itself succeeds for me. Printing headers
with -H shows:
[osdep.h and everything it includes elided...]
. ../include/qemu/coroutine.h
.. /work/armbru/qemu/include/qemu/queue.h
.. /work/armbru/qemu/include/qemu/timer.h
... /work/armbru/qemu/include/qemu/bitops.h
.... /work/armbru/qemu/include/qemu/host-utils.h
..... /work/armbru/qemu/include/qemu/bswap.h
...... /usr/include/byteswap.h
....... /usr/include/bits/byteswap.h
..... /work/armbru/qemu/include/qemu/int128.h
.... /work/armbru/qemu/include/qemu/atomic.h
[more...]
So, qemu/coroutine.h *already* includes qemu/atomic.h, via qemu/timer.h
and qemu/bitops.h.
I suspect the actual problem is an inclusion loop: qemu/coroutine.h and
qemu/lockable.h include each other. See my
Subject: [PATCH 4/4] coroutine: Break inclusion loop
Message-Id: <20221208142306.2642640-5-armbru@redhat.com>
and Paolo's review.
next prev parent reply other threads:[~2022-12-14 7:58 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-25 17:55 [PATCH-for-8.0] coroutine: Add missing <qemu/atomic.h> include Philippe Mathieu-Daudé
2022-12-14 7:27 ` Philippe Mathieu-Daudé
2022-12-14 7:58 ` Markus Armbruster [this message]
2022-12-14 10:28 ` Philippe Mathieu-Daudé
2022-12-14 14:11 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87mt7qmn6s.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.