Thomas Huth <th...@redhat.com> writes: > On 2018-12-13 19:43, Markus Armbruster wrote: >> From: Marc-André Lureau <marcandre.lur...@redhat.com> >> >> Add #if defined(CONFIG_REPLICATION) in generated code, and adjust the >> code accordingly. >> >> Made conditional: >> >> * xen-set-replication, query-xen-replication-status, >> xen-colo-do-checkpoint >> >> Before the patch, we first register the commands unconditionally in >> generated code (requires a stub), then conditionally unregister in >> qmp_unregister_commands_hack(). >> >> Afterwards, we register only when CONFIG_REPLICATION. The command >> fails exactly the same, with CommandNotFound. >> >> Improvement, because now query-qmp-schema is accurate, and we're one >> step closer to killing qmp_unregister_commands_hack(). >> >> * enum BlockdevDriver value "replication" in command blockdev-add >> >> * BlockdevOptions variant @replication >> >> and related structures. >> >> Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> >> Reviewed-by: Markus Armbruster <arm...@redhat.com> >> Message-Id: <20181213123724.4866-23-marcandre.lur...@redhat.com> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- >> migration/colo.c | 16 ++++------------ >> monitor.c | 5 ----- >> qapi/block-core.json | 13 +++++++++---- >> qapi/migration.json | 12 ++++++++---- >> 4 files changed, 21 insertions(+), 25 deletions(-) > > I think this might have broken compilation with --disable-replication: > > https://gitlab.com/huth/qemu/-/jobs/135648240
Reproduced. > Any ideas how to fix it? The problem is fairly obvious, repair less so. Sorry this escaped review. Union BlockdevCreateOptions doesn't specify a variant for tag 'replication'. The default variant needs to inherits its condition from the enumeration value. I hope we can develop a fix quickly.