[SLOF] [PATCH] libnet: Fix compiler warnings with GCC 9
Cornelia Huck
cohuck at redhat.com
Fri Sep 20 20:21:33 AEST 2019
On Thu, 19 Sep 2019 19:48:59 +0200
Thomas Huth <thuth at redhat.com> wrote:
> When compiling the libnet code with GCC 9, there are some new
> compiler warnings popping up now:
>
> ipv6.c: In function ‘handle_ipv6’:
> ipv6.c:152:21: warning: taking address of packed member of ‘struct ip6hdr’
> may result in an unaligned pointer value [-Waddress-of-packed-member]
> 152 | if (! find_ip6addr(&(ip6->dst)))
> | ^~~~~~~~~~~
> ipv6.c: In function ‘ip6_checksum’:
> ipv6.c:455:2: warning: converting a packed ‘struct ip6hdr’ pointer
> (alignment 1) to a ‘short unsigned int’ pointer (alignment 2) may result
> in an unaligned pointer value [-Waddress-of-packed-member]
> 455 | pip6h = (unsigned short *) &pseudo_ip6h;
> | ^~~~~
> In file included from ipv6.c:21:
> ipv6.h:86:8: note: defined here
> 86 | struct ip6hdr {
> | ^~~~~~
> ipv6.c:522:8: warning: converting a packed ‘struct icmp6hdr’ pointer
> (alignment 1) to a ‘short unsigned int’ pointer (alignment 2) may result
> in an unaligned pointer value [-Waddress-of-packed-member]
> 522 | ip6h->pl >> 1);
> | ^~~~
> In file included from ipv6.c:22:
> icmpv6.h:123:8: note: defined here
> 123 | struct icmp6hdr {
> | ^~~~~~~~
> etc.
>
> The entries in struct ip6hdr are naturally aligned, so we can simply
> drop the __attribute__ ((packed)) here and use a _Static_assert() for
> the correct size instead.
> icmp6hdr is a more complex struct since it contains a union of
> packed structs, but the entries before the union are naturally aligned,
> too, so we can silence the compiler warning by dropping the "packed"
> attribute from the struct icmp6hdr and just asserting that the union
> is at the correct offset.
>
> Signed-off-by: Thomas Huth <thuth at redhat.com>
> ---
> lib/libnet/icmpv6.h | 4 +++-
> lib/libnet/ipv6.h | 3 ++-
> 2 files changed, 5 insertions(+), 2 deletions(-)
This fixes building the s390 ccw bios with netboot support on a Fedora
30 s390 LPAR for me.
Tested-by: Cornelia Huck <cohuck at redhat.com>
The changes also look sane to me.
Reviewed-by: Cornelia Huck <cohuck at redhat.com>
More information about the SLOF
mailing list