When configured with --without-default-devices and setting
MC146818RTC=n, the build fails:
LINK x86_64-softmmu/qemu-system-x86_64
/usr/bin/ld: qapi/qapi-commands-misc-target.o: in function
`qmp_marshal_rtc_reset_reinjection':
qapi/qapi-commands-misc-target.c:46: undefined reference to
`qmp_rtc_reset_reinjection'
/usr/bin/ld: qapi/qapi-commands-misc-target.c:46: undefined reference to
`qmp_rtc_reset_reinjection'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:206: qemu-system-x86_64] Error 1
make: *** [Makefile:483: x86_64-softmmu/all] Error 2
This patch tries to fix this, but this is incorrect because QAPI
scripts only provide TARGET definitions, so with MC146818RTC=y we
get:
hw/rtc/mc146818rtc.c:113:6: error: no previous prototype for
‘qmp_rtc_reset_reinjection’ [-Werror=missing-prototypes]
113 | void qmp_rtc_reset_reinjection(Error **errp)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [rules.mak:69: hw/rtc/mc146818rtc.o] Error 1
Any idea? :)
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
qapi/misc-target.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index a00fd821eb..8e49c113d1 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -41,7 +41,7 @@
#
##
{ 'command': 'rtc-reset-reinjection',
- 'if': 'defined(TARGET_I386)' }
+ 'if': 'defined(TARGET_I386) && defined(CONFIG_MC146818RTC)' }
##
--
2.21.0