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é <philmd@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <
20260121215622.92966-3-philmd@linaro.org>
source Kconfig.host
source backends/Kconfig
source accel/Kconfig
+source dump/Kconfig
source target/Kconfig
source hw/Kconfig
source semihosting/Kconfig
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+config WINDUMP
+ bool
+ default y if X86_64
+ depends on X86_64
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'))
--- /dev/null
+/*
+ * 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();
+}
/*
- * Windows crashdump (target specific implementations)
+ * Windows crashdump (x86 specific implementations)
*
* Copyright (c) 2018 Virtuozzo International GmbH
*
#include "win_dump.h"
#include "cpu.h"
-#if defined(TARGET_X86_64)
-
bool win_dump_available(Error **errp)
{
return true;
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