qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 00/31] More work towards libslirp


From: Peter Maydell
Subject: Re: [Qemu-devel] [PULL 00/31] More work towards libslirp
Date: Mon, 28 Jan 2019 15:44:21 +0000

On Sun, 27 Jan 2019 at 12:13, Samuel Thibault
<address@hidden> wrote:
>
> The following changes since commit ad7a21e81231ae64540310384fb0f87ac8758b02:
>
>   Merge remote-tracking branch 
> 'remotes/ehabkost/tags/python-next-pull-request' into staging (2019-01-25 
> 17:22:20 +0000)
>
> are available in the Git repository at:
>
>   https://people.debian.org/~sthibault/qemu.git tags/samuel-thibault
>
> for you to fetch changes up to 10163f695fe66f9d3d099a33752996dae70be98c:
>
>   slirp: API is extern C (2019-01-27 13:03:59 +0100)
>
> ----------------------------------------------------------------
> More work towards libslirp

This fails to build on almost all hosts:

x86-64 linux ubuntu:

/home/petmay01/linaro/qemu-for-merges/slirp/misc.c: In function ‘fork_exec’:
/home/petmay01/linaro/qemu-for-merges/slirp/misc.c:139:5: error:
implicit declaration of function ‘g_spawn_async_with_fds’; did you
mean ‘g_spawn_async_with_pipes’?
[-Werror=implicit-function-declaration]
     g_spawn_async_with_fds(NULL /* cwd */,
     ^~~~~~~~~~~~~~~~~~~~~~
     g_spawn_async_with_pipes
/home/petmay01/linaro/qemu-for-merges/slirp/misc.c:139:5: error:
nested extern declaration of ‘g_spawn_async_with_fds’
[-Werror=nested-externs]
cc1: all warnings being treated as errors
/home/petmay01/linaro/qemu-for-merges/rules.mak:69: recipe for target
'slirp/misc.o' failed

Note that g_spawn_async_with_fds() is one of the glib routines
which we have a version of in glib-compat.h to cope with older
glib versions -- have you removed the #include of that and
not provided the equivalent code for slirp?


On OpenBSD there are lots of compiler errors, eg:

In file included from slirp/slirp.h:51:0,
                 from slirp/arp_table.c:25:
slirp/ip6.h: In function 'in6_equal':
slirp/ip6.h:37:5: warning: implicit declaration of function 'memcmp'
[-Wimplicit-function-declaration]
     return memcmp(a, b, sizeof(*a)) == 0;
     ^
slirp/ip6.h: In function 'in6_compute_ethaddr':
slirp/ip6.h:102:5: warning: implicit declaration of function 'memcpy'
[-Wimplicit-function-declaration]
     memcpy(&eth[2], &ip.s6_addr[16 - (ETH_ALEN - 2)], ETH_ALEN - 2);
     ^
slirp/ip6.h:102:5: warning: incompatible implicit declaration of
built-in function 'memcpy'
slirp/arp_table.c: In function 'arp_table_add':
slirp/arp_table.c:49:13: warning: incompatible implicit declaration of
built-in function 'memcpy'
             memcpy(arptbl->table[i].ar_sha, ethaddr, ETH_ALEN);
             ^
slirp/arp_table.c:56:5: warning: incompatible implicit declaration of
built-in function 'memcpy'
     memcpy(arptbl->table[arptbl->next_victim].ar_sha,  ethaddr, ETH_ALEN);
     ^
slirp/arp_table.c: In function 'arp_table_search':
slirp/arp_table.c:74:9: warning: implicit declaration of function
'memset' [-Wimplicit-function-declaration]
         memset(out_ethaddr, 0xff, ETH_ALEN);
         ^
slirp/arp_table.c:74:9: warning: incompatible implicit declaration of
built-in function 'memset'
slirp/arp_table.c:80:13: warning: incompatible implicit declaration of
built-in function 'memcpy'
             memcpy(out_ethaddr, arptbl->table[i].ar_sha,  ETH_ALEN);
             ^

In most of QEMU memcpy and friends are provided via
osdep.h -- if you don't want to include that you need
to replicate chunks of its functionality.

Linux s390 host fails similarly (memcpy, memcmp, strlen, etc all
not declared).

thanks
-- PMM



reply via email to

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