
----- "Osier" <jyang@redhat.com> wrote:
From: "Osier" <jyang@redhat.com> To: "Justin Clift" <jclift@redhat.com> Cc: "Libvirt Developers Mailing List" <libvir-list@redhat.com> Sent: Wednesday, September 15, 2010 8:45:20 AM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi Subject: Re: [libvirt] OSX 10.6 build failures
----- "Justin Clift" <jclift@redhat.com> wrote:
From: "Justin Clift" <jclift@redhat.com> To: "Libvirt Developers Mailing List" <libvir-list@redhat.com> Sent: Wednesday, September 15, 2010 7:42:48 AM GMT +08:00 Beijing / Chongqing / Hong Kong / Urumqi Subject: [libvirt] OSX 10.6 build failures
Hi us,
Going through the process of getting libvirt to compile on OSX, making
notes of the failures on the way through (from a clean system) to be fixed.
a) libtool -> glibtool libtoolize -> glibtoolize
It turns out that autogen.sh is hard coded to use "libtool", and wants the GNU version.
OSX supplies has it's own version, without a --version option, so autogen.sh fails.
Installing GNU libtool through MacPorts, makes it available as glibtool, with libtoolize being glibtoolize.
Adjusting autogen.sh to detect that, then set LIBTOOL and LIBTOOLIZE appropriately was fairly trivial.
Will submit a patch to fix that in a bit.
b) pkg-config
The next thing to barf was autoconf, complaining about AC_MSG_ERROR not being a defined macro.
Googling with some persistence showed this is caused by pkg-config not being installed. Fixed that.
Will submit a patch for that too. Probably "pkg-config --version" based, copying the approach used for the other autogen.sh checks.
c) This is a compilation failure, one I don't readily know how to fix:
... Making all in src make all-am CC libvirt_util_la-network.lo util/network.c: In function 'getIPv6Addr': util/network.c:50: error: 'struct in6_addr' has no member named
's6_addr16' util/network.c:50: error: 'struct in6_addr' has no member named
's6_addr16' util/network.c:50: error: 'struct in6_addr' has no member named
's6_addr16' util/network.c:50: error: 'struct in6_addr' has no member named
's6_addr16' make[3]: *** [libvirt_util_la-network.lo] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 $
They're the only problems so far, though most things have been disabled on the ./configure line so it's only the client libraries being built.
Anyone know how to address that third one?
% man ipv6
Address Format struct sockaddr_in6 { sa_family_t sin6_family; /* AF_INET6 */ in_port_t sin6_port; /* port number */ uint32_t sin6_flowinfo; /* IPv6 flow information */ struct in6_addr sin6_addr; /* IPv6 address */ uint32_t sin6_scope_id; /* Scope ID (new in 2.4) */ };
struct in6_addr { unsigned char s6_addr[16]; /* IPv6 address */ };
% vim libvirt/src/util/network.c
43 static int getIPv6Addr(virSocketAddrPtr addr, virIPv6AddrPtr tab) { 44 int i; 45 46 if ((addr == NULL) || (tab == NULL) || (addr->stor.ss_family != AF_INET6 )) 47 return(-1); 48 49 for (i = 0;i < 8;i++) { 50 (*tab)[i] = ntohs(addr->inet6.sin6_addr.s6_addr16[i]); 51 } 52 53 return(0); 54 }
I guess it's a typo, should be "addr->inet6.sin6_addr.s6_addr[i]", but not "addr->inet6.sin6_addr.s6_addr16[i]".. :-)
BTW: Got it under Linux, not sure if the ipv6 implementation is same on OSX. :-)
- Osier
Regards and best wishes,
Justin Clift
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list
-- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list