[libvirt] [PATCH] build: port vbox to cygwin
Matthias Bolte
matthias.bolte at googlemail.com
Thu May 30 10:02:56 UTC 2013
2013/5/30 Eric Blake <eblake at redhat.com>:
> I have no idea if a Cygwin app can be made to directly interact with
> VBoxXPCOMC.dll, but this at least lets compilation of vbox finish
> rather than requiring me to ./configure --without-vbox.
>
> * src/vbox/vbox_XPCOMCGlue.c (DYNLIB_NAME): Assume .dll under cygwin.
>
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
>
> Although I'm tempted to push this under the build-breaker rule, and
> although I suspect no one else is trying to build libvirt on cygwin,
> I'll wait for a review on this one. An alternative, more conservative,
> patch might be to hack configure.ac to declare vbox and cygwin as
> incompatible.
>
> src/vbox/vbox_XPCOMCGlue.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/vbox/vbox_XPCOMCGlue.c b/src/vbox/vbox_XPCOMCGlue.c
> index 9719014..9cc41b0 100644
> --- a/src/vbox/vbox_XPCOMCGlue.c
> +++ b/src/vbox/vbox_XPCOMCGlue.c
> @@ -3,6 +3,7 @@
> */
>
> /*
> + * Copyright (C) 2013 Red Hat, Inc.
> * Copyright (C) 2008-2009 Sun Microsystems, Inc.
> *
> * This file is part of a free software library; you can redistribute
> @@ -54,7 +55,7 @@
> # define DYNLIB_NAME "VBoxXPCOMC.so"
> #elif defined(__APPLE__)
> # define DYNLIB_NAME "VBoxXPCOMC.dylib"
> -#elif defined(_MSC_VER) || defined(__OS2__)
> +#elif defined(_MSC_VER) || defined(__OS2__) || defined(__CYGWIN__)
> # define DYNLIB_NAME "VBoxXPCOMC.dll"
> #else
> # error "Port me"
NACK.
Cygwin compiled programs (in this case libvirtd) run on Windows.
Therefore, the VrtualBox driver will have to deal with a Windows
VirtualBox installation that uses the Microsoft COM infrastructure
instead of XPCOM. So there is no VBoxXPCOMC.dll on Windows.
I also think that the line you modified is wrong. It should not
contain the check for _MSC_VER as there is no VBoxXPCOMC.dll on
Windows and the XPCOM glue will never be compiled on Windows using the
Microsoft compiler. I have no clue about the __OS2__ check there.
The correct approach (assuming Cygwin comes with the required WinAPI
headers) would be to use src/vbox/vbox_MSCOMCGlue.c for Cygwin.
--
Matthias Bolte
http://photron.blogspot.com
More information about the libvir-list
mailing list