[libvirt] libvirt and mingw64 x64, bad idea?

Daniel P. Berrange berrange at redhat.com
Tue Jan 24 09:28:56 UTC 2012


On Mon, Jan 23, 2012 at 05:20:50PM -0700, Eric Blake wrote:
> On 01/23/2012 03:29 PM, Marc-André Lureau wrote:
> > Hi,
> > 
> > I tried to update the fedora mingw package to follow the mingw64
> > packaging guideline and allow build for x86 and x64. But I got into
> > build warning and errors for x86_64. (using Fedora Cross project repo:
> > http://build1.openftd.org/fedora-cross/fedora-cross.repo,
> > x86_64-w64-mingw32-gcc (GCC) 4.6.2 20110908 and later)
> > 
> 
> > The somewhat worrying error is:
> > 
> > util/command.c:54:1: error: static assertion failed: "verify
> > (sizeof(pid_t) <= sizeof(int))"
> > 
> > /* We have quite a bit of changes to make if this doesn't hold.  */
> > verify(sizeof(pid_t) <= sizeof(int));
> 
> Oh my.  I guess it makes sense - while Linux pid_t is just a
> (linearly-incrementing) index into an array of kernel structs, other
> OS's use pid_t as the actual kernel pointer to the location in physical
> memory where the process information is stored; so if you have 64-bit
> pointers, you have a 64-bit pid_t.
> 
> Alas, this means that any interface where we are operating on pid_t, but
> passed an int, are broken.  Thankfully, I don't see any interface like
> that in libvirt.c, and we are free to change any internal functions
> without breaking the ABI.

Arguably, we could even change the public API, provided that we
hide the change behind an #ifdef  WIN64, since we have never
done a release that is officially working on WIN64. That would
obviously want to be something of a last resort though.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list