Trying to build the virtualbox-4.2 branch from git://pipo.sk/pipo/libvirt.git under OSX 10.7, I get the following build error: ... CC timegm.lo CC vasnprintf.lo CCLD libgnu.la /usr/bin/ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols /usr/bin/ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols GEN charset.alias GEN ref-add.sed GEN ref-del.sed Making all in include Making all in libvirt make[3]: Nothing to be done for `all'. make[3]: Nothing to be done for `all-am'. Making all in src GEN util/virkeymaps.h GEN locking/lock_protocol.h GEN locking/lock_protocol.c GEN locking/lock_daemon_dispatch_stubs.h GEN lxc/lxc_protocol.h unsigned hyper initpid; ^^^^^^^^^^^^^^^^^^^^^^^^^^ lxc/lxc_protocol.x, line 18: expected ';' cannot shutdown /usr/bin/rpcgen: at ./rpc/genprotocol.pl line 124. make[2]: *** [lxc/lxc_protocol.h] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 I built using the following command line: PATH=/usr/local/Cellar/gettext/0.18.2/bin:$PATH ./autogen.sh --prefix=$HOME/usr and gettext was installed using homebrew. /usr/bin/rpcgen is from Xcode 4.6.2, and the problem is visible just by running this by itself: $ rpcgen -h src/lxc/lxc_protocol.x /* * Please do not edit this file. * It was generated using rpcgen. */ #ifndef _LXC_PROTOCOL_H_RPCGEN #define _LXC_PROTOCOL_H_RPCGEN #define RPCGEN_VERSION 199506 #include <rpc/rpc.h> enum virLXCProtocolExitStatus { VIR_LXC_PROTOCOL_EXIT_STATUS_ERROR = 0, VIR_LXC_PROTOCOL_EXIT_STATUS_SHUTDOWN = 1, VIR_LXC_PROTOCOL_EXIT_STATUS_REBOOT = 2, }; typedef enum virLXCProtocolExitStatus virLXCProtocolExitStatus; #ifdef __cplusplus extern "C" bool_t xdr_virLXCProtocolExitStatus(XDR *, virLXCProtocolExitStatus*); #elif __STDC__ extern bool_t xdr_virLXCProtocolExitStatus(XDR *, virLXCProtocolExitStatus*); #else /* Old Style C */ bool_t xdr_virLXCProtocolExitStatus(); #endif /* Old Style C */ struct virLXCProtocolExitEventMsg { enum virLXCProtocolExitStatus status; }; typedef struct virLXCProtocolExitEventMsg virLXCProtocolExitEventMsg; #ifdef __cplusplus extern "C" bool_t xdr_virLXCProtocolExitEventMsg(XDR *, virLXCProtocolExitEventMsg*); #elif __STDC__ extern bool_t xdr_virLXCProtocolExitEventMsg(XDR *, virLXCProtocolExitEventMsg*); #else /* Old Style C */ bool_t xdr_virLXCProtocolExitEventMsg(); #endif /* Old Style C */ unsigned hyper initpid; ^^^^^^^^^^^^^^^^^^^^^^^^^^ src/lxc/lxc_protocol.x, line 18: expected ';' Perhaps Apple's version of rpcgen is broken? If so, I guess I'll have to wait for a tarball before I can try this out. Unfortunately I upgraded to virtualbox 4.2 and this means I've lost the ability to control it using virsh :-( Regards, Brian.
On Sat, Feb 09, 2013 at 06:35:41PM +0000, Brian Candler wrote:> Making all in src > GEN util/virkeymaps.h > GEN locking/lock_protocol.h > GEN locking/lock_protocol.c > GEN locking/lock_daemon_dispatch_stubs.h > GEN lxc/lxc_protocol.h > unsigned hyper initpid; > ^^^^^^^^^^^^^^^^^^^^^^^^^^ > lxc/lxc_protocol.x, line 18: expected ';' > cannot shutdown /usr/bin/rpcgen: at ./rpc/genprotocol.pl line 124.An attempted workaround, with help of a Linux VM (ubuntu 12.04): [src/rpc/genprotocol.pl] -open RPCGEN, "-|", $rpcgen, $mode, $xdrdef +open RPCGEN, "ssh linuxvm rpcgen $mode <$xdrdef |" This appears to build the files OK, but leads to other errors: ... /usr/bin/ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols /usr/bin/ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols ranlib: file: .libs/libgnu.a(fd-hook.o) has no symbols ranlib: file: .libs/libgnu.a(threadlib.o) has no symbols ... /usr/bin/ranlib: file: .libs/libvirt_util.a(libvirt_util_la-stats_linux.o) has no symbols ranlib: file: .libs/libvirt_util.a(libvirt_util_la-stats_linux.o) has no symbols ... CC libvirt_driver_test_la-test_driver.lo CCLD libvirt_driver_test.la CC libvirt_driver_remote_la-remote_driver.lo remote/remote_driver.c:128: error: expected declaration specifiers or '...' before 'remote_nonnull_domain' remote/remote_driver.c:129: error: expected declaration specifiers or '...' before 'remote_nonnull_network' remote/remote_driver.c:130: error: expected declaration specifiers or '...' before 'remote_nonnull_nwfilter' ... snip tons of later errors ... src/remote/remote_driver.c line 128 is: static virDomainPtr get_nonnull_domain(virConnectPtr conn, remote_nonnull_domain domain); but I can't see where virDomainPtr, virConnectPtr, remote_nonnull_domain are (supposed to be) defined. Regards, Brian.