mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:51 +00:00
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é <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>
This commit is contained in:
1
Kconfig
1
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
|
||||
|
||||
6
dump/Kconfig
Normal file
6
dump/Kconfig
Normal file
@@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
config WINDUMP
|
||||
bool
|
||||
default y if X86_64
|
||||
depends on X86_64
|
||||
@@ -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'))
|
||||
|
||||
21
dump/win_dump-stubs.c
Normal file
21
dump/win_dump-stubs.c
Normal file
@@ -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();
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user