[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