Thanks this was extremely helpful. I wish I had this when I first started
working with libvirt. Incidental, I have not shared the api that I
created with the libvirt community because I think it was premature and
that there is a better approach than the creating a new api. Specifically,
I think a better approach is to expand the existing xml for defining
domains and storage. When I'm ready I'll share the ideas with the rest of
the libvirt community.
-- Kenneth Nagin
Dave Allan <dallan(a)redhat.com> wrote on 05/08/2009 16:40:10:
Kenneth Nagin wrote:
> I am experimenting with some new APIs in Libvirt 0.6.5 and added the
> changes to remote_protocol.x .
>
> I'm getting a make error of undefined reference in ./.libs/libvirt.so
to
> the xdr arguments.
> I think it is related to the fact that a new remote_protocol.c is not
> being generated.
>
> I've tried the obvious "make clean" and "make" and
"make -C qemud
> remote_protocol.c."
> But it has no affect.
>
> [nagin@gorky trunk]$ make -C qemud remote_protocol.c
> make: Entering directory
> `/gpfs/reservoir/nagin/workspace/LIBVIRT/LIBVIRT_0_6_5/trunk/qemud'
> make: Nothing to be done for `remote_protocol.c'.
> make: Leaving directory
> `/gpfs/reservoir/nagin/workspace/LIBVIRT/LIBVIRT_0_6_5/trunk/qemud'
>
> Any suggestions?
It's necessary to run 'make rpcgen' in the qemud directory to create the
.c and .h files required by the remote protocol code. This must be done
on a Linux host using the GLibC rpcgen program. Other rpcgen versions
may generate code which results in bogus compile time warnings.
See:
http://www.libvirt.org/api_extension.html#wireproto
and in general:
http://www.libvirt.org/api_extension.html
Dave