[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/32] meson: do not use set10
From: |
Paolo Bonzini |
Subject: |
[PULL 16/32] meson: do not use set10 |
Date: |
Wed, 18 Oct 2023 10:27:36 +0200 |
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
- [PULL 07/32] scripts: Mark feature_to_c.py as non-executable to fix a build issue, (continued)
- [PULL 07/32] scripts: Mark feature_to_c.py as non-executable to fix a build issue, Paolo Bonzini, 2023/10/18
- [PULL 08/32] scripts/get_maintainer.pl: don't print parentheses, Paolo Bonzini, 2023/10/18
- [PULL 09/32] tests/docker: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 04/32] target/i386/cpu: Fix CPUID_HT exposure, Paolo Bonzini, 2023/10/18
- [PULL 10/32] docs/sphinx: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 11/32] target/hexagon: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 12/32] tests/avocado: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 13/32] tests/vm: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 17/32] meson, cutils: allow non-relocatable installs, Paolo Bonzini, 2023/10/18
- [PULL 14/32] tracetool: avoid invalid escape in Python string, Paolo Bonzini, 2023/10/18
- [PULL 16/32] meson: do not use set10,
Paolo Bonzini <=
- [PULL 15/32] meson: do not build shaders by default, Paolo Bonzini, 2023/10/18
- [PULL 19/32] hw/xen: cleanup sourcesets, Paolo Bonzini, 2023/10/18
- [PULL 20/32] hw/remote: move stub vfu_object_set_bus_irq out of stubs/, Paolo Bonzini, 2023/10/18
- [PULL 22/32] configure, tests/tcg: simplify GDB conditionals, Paolo Bonzini, 2023/10/18
- [PULL 21/32] tests/tcg/arm: move non-SVE tests out of conditional, Paolo Bonzini, 2023/10/18
- [PULL 18/32] configure: clean up handling of CFI option, Paolo Bonzini, 2023/10/18
- [PULL 24/32] configure: clean up PIE option handling, Paolo Bonzini, 2023/10/18
- [PULL 27/32] configure: move environment-specific defaults to config-meson.cross, Paolo Bonzini, 2023/10/18
- [PULL 25/32] configure: remove some dead cruft, Paolo Bonzini, 2023/10/18
- [PULL 29/32] configure, meson: use command line options to configure qemu-ga, Paolo Bonzini, 2023/10/18