[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] slirp: Fix build with gcc 9
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2] slirp: Fix build with gcc 9 |
Date: |
Fri, 1 Mar 2019 09:49:26 +0000 |
On Fri, 1 Mar 2019 at 09:39, Greg Kurz <address@hidden> wrote:
>
> Build fails with gcc 9:
>
> CC slirp/ndp_table.o
> slirp/ndp_table.c: In function ‘ndp_table_add’:
> slirp/ndp_table.c:31:23: error: taking address of packed member of ‘struct
> ndpentry’ may result in an unaligned pointer value
> [-Werror=address-of-packed-member]
> 31 | if (in6_equal(&ndp_table->table[i].ip_addr, &ip_addr)) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> slirp/ndp_table.c: In function ‘ndp_table_search’:
> slirp/ndp_table.c:75:23: error: taking address of packed member of ‘struct
> ndpentry’ may result in an unaligned pointer value
> [-Werror=address-of-packed-member]
> 75 | if (in6_equal(&ndp_table->table[i].ip_addr, &ip_addr)) {
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> The ndpentry structure isn't used to model on-the-wire data or anything
> else that would care for the struct layout. It doesn't need to be packed
> actually. Just drop SLIRP_PACKED.
>
> Signed-off-by: Greg Kurz <address@hidden>
> ---
> v2: - don't check the struct size at compile time
> ---
> slirp/slirp.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/slirp/slirp.h b/slirp/slirp.h
> index 752a4cd8c81c..8068ba1d1e9e 100644
> --- a/slirp/slirp.h
> +++ b/slirp/slirp.h
> @@ -106,7 +106,7 @@ bool arp_table_search(Slirp *slirp, uint32_t ip_addr,
> struct ndpentry {
> unsigned char eth_addr[ETH_ALEN]; /* sender hardware address */
> struct in6_addr ip_addr; /* sender IP address */
> -} SLIRP_PACKED;
> +};
>
> #define NDP_TABLE_SIZE 16
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM