@@ -4006,6 +4006,20 @@ QemuOptsList qemu_mon_opts = {
},
};
+/*
+ * the QAPI schema is blissfully unaware #ifdef FOO commands, and the
+ * QAPI code generator happily generates a dead qmp_marshal_foo_cmd()
+ * that calls qmp_foo_cmd(). Provide it one, or else linking fails.
+ * FIXME Educate the QAPI schema on #ifdef commands.
+ */
+#ifndef CONFIG_SPICE
+SpiceInfo *qmp_query_spice(Error **errp)
+{
+ error_setg(errp, QERR_FEATURE_DISABLED, "spice");
+ return NULL;
+};
+#endif
+
#ifndef TARGET_I386
void qmp_rtc_reset_reinjection(Error **errp)
{
@@ -161,22 +161,6 @@ VncInfo2List *qmp_query_vnc_servers(Error **errp)
};
#endif
-#ifndef CONFIG_SPICE
-/*
- * qmp-commands.hx ensures that QMP command query-spice exists only
- * #ifdef CONFIG_SPICE. Necessary for an accurate query-commands
- * result. However, the QAPI schema is blissfully unaware of that,
- * and the QAPI code generator happily generates a dead
- * qmp_marshal_query_spice() that calls qmp_query_spice(). Provide it
- * one, or else linking fails. FIXME Educate the QAPI schema on
- * CONFIG_SPICE.
- */
-SpiceInfo *qmp_query_spice(Error **errp)
-{
- abort();
-};
-#endif
-
void qmp_cont(Error **errp)
{
Error *local_err = NULL;