@@ -4350,6 +4350,20 @@ QemuOptsList qemu_mon_opts = {
},
};
+/*
+ * the QAPI schema is blissfully unaware #ifdef FOO commands, and the
+ * QAPI code generator happily generates a 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)
{
@@ -151,22 +151,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;