qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] slirp: Enable fork_exec support on Windows


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH] slirp: Enable fork_exec support on Windows
Date: Mon, 26 Nov 2018 15:09:47 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0

Hi Samuel,

On 20/11/18 1:57, Samuel Thibault wrote:
> g_spawn_async_with_fds is portable on Windows, so we can now enable
> fork_exec support there.
> 
> Thanks Daniel P. Berrangé for the notice!

On x86_64 you can build locally using Docker:

$ make address@hidden
  BUILD   debian-win32-cross
  COPY    RUNNER
    RUN test-build in qemu:debian-win32-cross
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu
--prefix=/tmp/qemu-test/install --cross-prefix=i686-w64-mingw32.shared-
  CC      qga/commands-win32.o
  CC      qga/channel-win32.o
  CC      qga/service-win32.o
  CC      qga/vss-win32.o
...

>From the qemu source repository, you can also run once:
$ docker run --rm -it \
  -v $PWD:$PWD -w $PWD -v /tmp:/tmp \
  -u $UID \
  qemu:debian-win32-cross \
    bash -c 'mkdir build_win32 && cd build_win32 && ../configure
$QEMU_CONFIGURE_OPTS && make -j4'

Then to avoid rebuilding the world everytime, when you applied/modified
win32 related patches:

$ docker run --rm -it \
  -v $PWD:$PWD -w $PWD -v /tmp:/tmp \
  -u $UID \
  qemu:debian-win32-cross \
    bash -c 'make -C build_win32 -j4'

You can not 'run' the binary, but at least you can verify
compilation/linking steps.

Regards,

Phil.

> 
> Signed-off-by: Samuel Thibault <address@hidden>
> ---
>   slirp/misc.c | 14 ++------------
>   1 file changed, 2 insertions(+), 12 deletions(-)
> 
> diff --git a/slirp/misc.c b/slirp/misc.c
> index 7972b9b05b..59b4e8f31c 100644
> --- a/slirp/misc.c
> +++ b/slirp/misc.c
> @@ -62,17 +62,6 @@ int add_exec(struct ex_list **ex_ptr, void *chardev, const 
> char *cmdline,
>   }
>   
>   
> -#ifdef _WIN32
> -
> -int
> -fork_exec(struct socket *so, const char *ex)
> -{
> -    /* not implemented */
> -    return 0;
> -}
> -
> -#else
> -
>   static int
>   slirp_socketpair_with_oob(int sv[2])
>   {
> @@ -132,7 +121,9 @@ err:
>   static void
>   fork_exec_child_setup(gpointer data)
>   {
> +#ifndef _WIN32
>       setsid();
> +#endif
>   }
>   
>   int
> @@ -177,7 +168,6 @@ fork_exec(struct socket *so, const char *ex)
>       qemu_set_nonblock(so->s);
>       return 1;
>   }
> -#endif
>   
>   char *slirp_connection_info(Slirp *slirp)
>   {
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]