[libvirt] Currently in freeze for 0.8.8, rc2 available

Daniel P. Berrange berrange at redhat.com
Mon Feb 14 10:58:48 UTC 2011


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 at redhat.com>
>   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 :|




More information about the libvir-list mailing list