On 03/02/2025 04.18, Richard Henderson wrote:
Use CONFIG_TCG as a project-wide flag to indicate that TCG is enabled
for *some* target.  Use CONFIG_TCG_TARGET to indicate that TCG is
enabled for a specific target.

Within a specific compilation unit, we can remap CONFIG_TCG based on
CONFIG_TCG_TARGET.  This allows us to avoid changes to the bulk of
the code base.

Within meson.build, while CONFIG_TCG may be set in config_host_data,
it may not be set within config_target.  Thus all references to
CONFIG_TCG in source_set 'when:' need not be updated.

For the moment, CONFIG_TCG and CONFIG_TCG_TARGET are identical.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
  include/qemu/osdep.h |  7 +++++++
  meson.build          | 11 +++++++----
  2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
index 112ebdff21..1f6f73a148 100644
--- a/include/qemu/osdep.h
+++ b/include/qemu/osdep.h
@@ -34,9 +34,16 @@
  #include "config-host.h"
  #ifdef COMPILING_PER_TARGET
  #include CONFIG_TARGET
+# ifdef CONFIG_TCG_TARGET
+#  undef CONFIG_TCG_TARGET
+# else
+#  undef CONFIG_TCG
+# endif
  #else
  #include "exec/poison.h"
  #endif
+#pragma GCC poison CONFIG_TCG_TARGET

Shouldn't that rather go before the "#endif" instead?

Also, would it be possible to rather adjust scripts/make-config-poison.sh instead of poisoning this switch manually?

 Thomas

/*
   * HOST_WORDS_BIGENDIAN was replaced with HOST_BIG_ENDIAN. Prevent it from
diff --git a/meson.build b/meson.build
index b72114819b..5ca3cc3f34 100644
--- a/meson.build
+++ b/meson.build
@@ -3270,11 +3270,14 @@ foreach target : target_dirs
target_kconfig = []
    foreach sym: accelerators
-    if sym == 'CONFIG_TCG' or target in accelerator_targets.get(sym, [])
-      config_target += { sym: 'y' }
-      config_all_accel += { sym: 'y' }
-      target_kconfig += [ sym + '=y' ]
+    if sym == 'CONFIG_TCG'
+      config_target += { 'CONFIG_TCG_TARGET': 'y' }
+    elif target not in accelerator_targets.get(sym, [])
+      continue
      endif
+    config_target += { sym: 'y' }
+    config_all_accel += { sym: 'y' }
+    target_kconfig += [ sym + '=y' ]
    endforeach
    if target_kconfig.length() == 0
      if default_targets


Reply via email to