From: Philippe Mathieu-Daudé Date: Sun, 4 Jan 2026 17:41:12 +0000 (+0100) Subject: dump: Build stubs once for non-x86 targets X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a2290fa210f96935bcb6dc45a402d57f8872d8a0;p=thirdparty%2Fqemu.git dump: Build stubs once for non-x86 targets Rather than compiling the same content for all targets (unused most of the time, i.e. qemu-system-avr ...), extract the non x86 specific parts to a stub file and build it once for all non-x86 targets. Add a Kconfig symbol to only select the target-specific file with the x86 target (rename this file with '-x86' suffix). Since Kconfig symbols aren't evaluated for user emulation, the file unit is only built for system emulation. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Marc-André Lureau Reviewed-by: Richard Henderson Message-Id: <20260121215622.92966-3-philmd@linaro.org> --- diff --git a/Kconfig b/Kconfig index 63ca7f46df..26388c1283 100644 --- a/Kconfig +++ b/Kconfig @@ -1,6 +1,7 @@ source Kconfig.host source backends/Kconfig source accel/Kconfig +source dump/Kconfig source target/Kconfig source hw/Kconfig source semihosting/Kconfig diff --git a/dump/Kconfig b/dump/Kconfig new file mode 100644 index 0000000000..4b59dbb5fc --- /dev/null +++ b/dump/Kconfig @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +config WINDUMP + bool + default y if X86_64 + depends on X86_64 diff --git a/dump/meson.build b/dump/meson.build index 4277ce9328..26e1561ed4 100644 --- a/dump/meson.build +++ b/dump/meson.build @@ -1,2 +1,3 @@ system_ss.add([files('dump.c', 'dump-hmp-cmds.c'), snappy, lzo]) -specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: files('win_dump.c')) +specific_ss.add(when: 'CONFIG_WINDUMP', if_true: files('win_dump-x86.c')) +system_ss.add(when: 'CONFIG_WINDUMP', if_false: files('win_dump-stubs.c')) diff --git a/dump/win_dump-stubs.c b/dump/win_dump-stubs.c new file mode 100644 index 0000000000..96c1095c4e --- /dev/null +++ b/dump/win_dump-stubs.c @@ -0,0 +1,21 @@ +/* + * Windows crashdump stubs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "win_dump.h" + +bool win_dump_available(Error **errp) +{ + error_setg(errp, "x86-64 Windows guest dump not built-in"); + + return false; +} + +void create_win_dump(DumpState *s, Error **errp) +{ + g_assert_not_reached(); +} diff --git a/dump/win_dump.c b/dump/win_dump-x86.c similarity index 97% rename from dump/win_dump.c rename to dump/win_dump-x86.c index 6e07913dfb..d893dea7f1 100644 --- a/dump/win_dump.c +++ b/dump/win_dump-x86.c @@ -1,5 +1,5 @@ /* - * Windows crashdump (target specific implementations) + * Windows crashdump (x86 specific implementations) * * Copyright (c) 2018 Virtuozzo International GmbH * @@ -18,8 +18,6 @@ #include "win_dump.h" #include "cpu.h" -#if defined(TARGET_X86_64) - bool win_dump_available(Error **errp) { return true; @@ -477,19 +475,3 @@ out_free: out_cr3: first_x86_cpu->env.cr[3] = saved_cr3; } - -#else /* !TARGET_X86_64 */ - -bool win_dump_available(Error **errp) -{ - error_setg(errp, "Windows dump is only available for x86-64"); - - return false; -} - -void create_win_dump(DumpState *s, Error **errp) -{ - g_assert_not_reached(); -} - -#endif