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.