qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PULL 16/32] meson: do not use set10
Date: Wed, 18 Oct 2023 10:27:36 +0200	[thread overview]
Message-ID: <20231018082752.322306-17-pbonzini@redhat.com> (raw)
In-Reply-To: <20231018082752.322306-1-pbonzini@redhat.com>

Make all items of config-host.h consistent.  To keep the --disable-coroutine-pool
code visible to the compiler, mutuate the IS_ENABLED() macro from Linux.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/qemu/compiler.h     | 15 +++++++++++++++
 meson.build                 |  2 +-
 tests/unit/test-coroutine.c |  2 +-
 util/qemu-coroutine.c       |  4 ++--
 4 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
index 1109482a000..c797f0d4572 100644
--- a/include/qemu/compiler.h
+++ b/include/qemu/compiler.h
@@ -212,4 +212,19 @@
 # define QEMU_USED
 #endif
 
+/*
+ * Ugly CPP trick that is like "defined FOO", but also works in C
+ * code.  Useful to replace #ifdef with "if" statements; assumes
+ * the symbol was defined with Meson's "config.set()", so it is empty
+ * if defined.
+ */
+#define IS_ENABLED(x)                  IS_EMPTY(x)
+
+#define IS_EMPTY_JUNK_                 junk,
+#define IS_EMPTY(value)                IS_EMPTY_(IS_EMPTY_JUNK_##value)
+
+/* Expands to either SECOND_ARG(junk, 1, 0) or SECOND_ARG(IS_EMPTY_JUNK_CONFIG_FOO 1, 0)  */
+#define SECOND_ARG(first, second, ...) second
+#define IS_EMPTY_(junk_maybecomma)     SECOND_ARG(junk_maybecomma 1, 0)
+
 #endif /* COMPILER_H */
diff --git a/meson.build b/meson.build
index bd65a111aa8..010d2c649c2 100644
--- a/meson.build
+++ b/meson.build
@@ -2194,7 +2194,7 @@ if get_option('debug_stack_usage') and have_coroutine_pool
   message('Disabling coroutine pool to measure stack usage')
   have_coroutine_pool = false
 endif
-config_host_data.set10('CONFIG_COROUTINE_POOL', have_coroutine_pool)
+config_host_data.set('CONFIG_COROUTINE_POOL', have_coroutine_pool)
 config_host_data.set('CONFIG_DEBUG_GRAPH_LOCK', get_option('debug_graph_lock'))
 config_host_data.set('CONFIG_DEBUG_MUTEX', get_option('debug_mutex'))
 config_host_data.set('CONFIG_DEBUG_STACK_USAGE', get_option('debug_stack_usage'))
diff --git a/tests/unit/test-coroutine.c b/tests/unit/test-coroutine.c
index b0d21d673a0..a2563647e74 100644
--- a/tests/unit/test-coroutine.c
+++ b/tests/unit/test-coroutine.c
@@ -645,7 +645,7 @@ int main(int argc, char **argv)
      * with a sentinel value.  If there is no freelist this would legitimately
      * crash, so skip it.
      */
-    if (CONFIG_COROUTINE_POOL) {
+    if (IS_ENABLED(CONFIG_COROUTINE_POOL)) {
         g_test_add_func("/basic/no-dangling-access", test_no_dangling_access);
     }
 
diff --git a/util/qemu-coroutine.c b/util/qemu-coroutine.c
index 17a88f65053..5fd2dbaf8bb 100644
--- a/util/qemu-coroutine.c
+++ b/util/qemu-coroutine.c
@@ -57,7 +57,7 @@ Coroutine *qemu_coroutine_create(CoroutineEntry *entry, void *opaque)
 {
     Coroutine *co = NULL;
 
-    if (CONFIG_COROUTINE_POOL) {
+    if (IS_ENABLED(CONFIG_COROUTINE_POOL)) {
         CoroutineQSList *alloc_pool = get_ptr_alloc_pool();
 
         co = QSLIST_FIRST(alloc_pool);
@@ -99,7 +99,7 @@ static void coroutine_delete(Coroutine *co)
 {
     co->caller = NULL;
 
-    if (CONFIG_COROUTINE_POOL) {
+    if (IS_ENABLED(CONFIG_COROUTINE_POOL)) {
         if (release_pool_size < qatomic_read(&pool_max_size) * 2) {
             QSLIST_INSERT_HEAD_ATOMIC(&release_pool, co, pool_next);
             qatomic_inc(&release_pool_size);
-- 
2.41.0



  parent reply	other threads:[~2023-10-18  8:29 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-18  8:27 [PULL 00/32] x86 and build system changes for 2023-10-18 Paolo Bonzini
2023-10-18  8:27 ` [PULL 01/32] iotests: get rid of '..' in path environment output Paolo Bonzini
2023-10-18  8:27 ` [PULL 02/32] iotests: use the correct python to run linters Paolo Bonzini
2023-10-18  8:27 ` [PULL 03/32] Revert "configure: Add workaround for ccache and clang" Paolo Bonzini
2023-10-18  8:27 ` [PULL 04/32] target/i386/cpu: Fix CPUID_HT exposure Paolo Bonzini
2023-10-18  8:27 ` [PULL 05/32] target/i386: check intercept for XSETBV Paolo Bonzini
2023-10-18  8:27 ` [PULL 06/32] tests/vm: netbsd: install dtc Paolo Bonzini
2023-10-18  8:27 ` [PULL 07/32] scripts: Mark feature_to_c.py as non-executable to fix a build issue Paolo Bonzini
2023-10-18  8:27 ` [PULL 08/32] scripts/get_maintainer.pl: don't print parentheses Paolo Bonzini
2023-10-18  8:27 ` [PULL 09/32] tests/docker: avoid invalid escape in Python string Paolo Bonzini
2023-10-18  8:27 ` [PULL 10/32] docs/sphinx: " Paolo Bonzini
2023-10-18  8:27 ` [PULL 11/32] target/hexagon: " Paolo Bonzini
2023-10-18  8:27 ` [PULL 12/32] tests/avocado: " Paolo Bonzini
2023-10-18  8:27 ` [PULL 13/32] tests/vm: " Paolo Bonzini
2023-10-18  8:27 ` [PULL 14/32] tracetool: " Paolo Bonzini
2023-10-18  8:27 ` [PULL 15/32] meson: do not build shaders by default Paolo Bonzini
2023-10-18  8:27 ` Paolo Bonzini [this message]
2023-10-18  8:27 ` [PULL 17/32] meson, cutils: allow non-relocatable installs Paolo Bonzini
2023-10-18 11:37   ` Michael Tokarev
2023-10-18  8:27 ` [PULL 18/32] configure: clean up handling of CFI option Paolo Bonzini
2023-10-18  8:27 ` [PULL 19/32] hw/xen: cleanup sourcesets Paolo Bonzini
2023-10-18  8:27 ` [PULL 20/32] hw/remote: move stub vfu_object_set_bus_irq out of stubs/ Paolo Bonzini
2023-10-18  8:27 ` [PULL 21/32] tests/tcg/arm: move non-SVE tests out of conditional Paolo Bonzini
2023-10-18  8:27 ` [PULL 22/32] configure, tests/tcg: simplify GDB conditionals Paolo Bonzini
2023-10-18  8:27 ` [PULL 23/32] configure: clean up plugin option handling Paolo Bonzini
2023-10-18  8:27 ` [PULL 24/32] configure: clean up PIE " Paolo Bonzini
2023-10-18  8:27 ` [PULL 25/32] configure: remove some dead cruft Paolo Bonzini
2023-10-18  8:27 ` [PULL 26/32] configure: move target-specific defaults to an external machine file Paolo Bonzini
2023-10-18  8:27 ` [PULL 27/32] configure: move environment-specific defaults to config-meson.cross Paolo Bonzini
2023-10-18  8:27 ` [PULL 28/32] configure: unify handling of several Debian cross containers Paolo Bonzini
2023-10-18  8:27 ` [PULL 29/32] configure, meson: use command line options to configure qemu-ga Paolo Bonzini
2023-10-18  8:27 ` [PULL 30/32] meson-buildoptions: document the data at the top Paolo Bonzini
2023-10-18  8:27 ` [PULL 31/32] meson: add a note on why we use config_host for program paths Paolo Bonzini
2023-10-18  8:27 ` [PULL 32/32] configure: define "pkg-config" in addition to "pkgconfig" Paolo Bonzini
2023-10-18 22:32 ` [PULL 00/32] x86 and build system changes for 2023-10-18 Stefan Hajnoczi

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=20231018082752.322306-17-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).