mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 02:24:38 +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 Kconfig.host
|
||||||
source backends/Kconfig
|
source backends/Kconfig
|
||||||
source accel/Kconfig
|
source accel/Kconfig
|
||||||
|
source dump/Kconfig
|
||||||
source target/Kconfig
|
source target/Kconfig
|
||||||
source hw/Kconfig
|
source hw/Kconfig
|
||||||
source semihosting/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])
|
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
|
* Copyright (c) 2018 Virtuozzo International GmbH
|
||||||
*
|
*
|
||||||
@@ -18,8 +18,6 @@
|
|||||||
#include "win_dump.h"
|
#include "win_dump.h"
|
||||||
#include "cpu.h"
|
#include "cpu.h"
|
||||||
|
|
||||||
#if defined(TARGET_X86_64)
|
|
||||||
|
|
||||||
bool win_dump_available(Error **errp)
|
bool win_dump_available(Error **errp)
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
@@ -477,19 +475,3 @@ out_free:
|
|||||||
out_cr3:
|
out_cr3:
|
||||||
first_x86_cpu->env.cr[3] = saved_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