Daniel P. Berrange wrote:
On Mon, Jan 21, 2008 at 04:50:29PM -0600, Schley Andrew Kutz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> I spent the weekend attempting to get libvirt working on OS X Leopard
> 10.5.1. I was able to get it to compile, but not connect to libvirtd
> running on either my KVM or Xen servers. Here are the instructions for
> getting it to compile:
>
> 1. Download libvirt-0.4.0 from the mirrors.
>
> 2. Use macports to install pkgconfig and gnutls
>
> 3. Configure your source:
>
> ./configure --without-xen --without-qemu
>
> 4. Replace instances of 'hyper' in qemu/remote_protocol.x with 'long'
> and then follow the instructions on
http://libvirt.org/windows.html to
> regen XDR structures.
This is going to fail big time. 'hyper' is 64-bit in size, where
as long is 32-bit. Any RPC calls which user hyper will crash and
burn if you make this change.
What errors do you get if you don't make this change ? There may
be better ways to provide compatability.
This was essentially the problem that I hit when trying to port to
Leopard also over the weekend. There is no hyper/64 bit support in the
Mac-supplied rpcgen program.
There are two alternatives I can think of:
Probably the simplest is to compile the RPC bindings which are generated
on Linux and supplied with libvirt in CVS and the tarball (ie.
remote_protocol.[ch]). We need to supply only the xdr_quad type and a
handful of 64 bit functions. I did the same thing for Windows but in
that case built my own version of a mini-XDR library with some
contributions from glibc. What we could do is bundle this mini-XDR
library with libvirt itself (or perhaps persuade gnulib to take it -- Jim?).
Another, less appealing, is to look at some of the modern XDR library
replacements. Uli suggested one, but I've lost the link at the
moment... Of course that involves porting those libraries to Mac and
Windows, which may be a load of effort in itself.
Rich.
--
Emerging Technologies, Red Hat -
http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
England and Wales under Company Registration No. 03798903