On Mon, Feb 14, 2011 at 09:46:01PM +1100, Justin Clift wrote: > On 14/02/2011, at 8:15 PM, Justin Clift wrote: > > On 14/02/2011, at 3:22 PM, Daniel Veillard wrote: > > <snip> > >> it does fix the error messages I had on linux configure, > >> but I'm not sure the issues on Win32 and OS-X are all sorted > >> out yet, so please check. > > > > Still broken on OSX. :( > > Found the commit which introduces the breakage, it's this one: > > ************************************************************** > ************************************************************** > > commit 2169472ab6cac3bdb1f32578de2b608a61a1d703 > Author: Jiri Denemark <jdenemar@xxxxxxxxxx> > Date: Wed Feb 2 16:37:10 2011 +0100 > > qemu: Add shortcut for HMP pass through > > Currently users who want to use virDomainQemuMonitorCommand() API or > it's virsh equivalent has to use the same protocol as libvirt uses for > communication to qemu. Since the protocol is QMP with current qemu and > HMP much more usable for humans, one ends up typing something like the > following: > > virsh qemu-monitor-command DOM \ > '{"execute":"human-monitor-command","arguments":{"command-line":"info kvm"}}' > > which is not a very convenient way of debugging qemu. > > This patch introduces --hmp option to qemu-monitor-command, which says > that the provided command is in HMP. If libvirt uses QMP to talk with > qemu, the command will automatically be converted into QMP. So the > example above is simplified to just > > virsh qemu-monitor-command --hmp DOM "info kvm" > > Also the result is converted from > > {"return":"kvm support: enabled\r\n"} > > to just plain HMP: > > kvm support: enabled > > If libvirt talks to qemu in HMP, --hmp flag is obviously a noop. > > ************************************************************** > ************************************************************** > > Now, I just need to understand how this patch causes the error: > > ld: duplicate symbol _virDomainQemuMonitorCommandFlags in ./.libs/libvirt_util.a(libvirt_util_la-bitmap.o) and ./.libs/libvirt_util.a(libvirt_util_la-authhelper.o) > > Suggestions and pointers welcome. :) It is a broken enum declaration in the header libvirt-qemu.h: enum { VIR_DOMAIN_QEMU_MONITOR_COMMAND_DEFAULT = 0, VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP = (1 << 0), /* cmd is in HMP */ } virDomainQemuMonitorCommandFlags; There is a missing 'typedef' keyword there before 'enum', so instead of defining a type, it is defining a variable :-( Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list