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