[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)
> {
>