ar71xx: fix packed-not-aligned error with GCC 8.
authorJo-Philipp Wich <jo@mein.io>
Sat, 20 Oct 2018 10:18:03 +0000 (12:18 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 30 Jan 2019 11:49:36 +0000 (12:49 +0100)
Building ar71xx currently fails with:

    In file included from ./include/linux/ipv6.h:5,
                     from ./include/net/ipv6.h:16,
                     from ./include/net/inetpeer.h:16,
                     from ./include/net/ip_fib.h:24,
                     from ./include/net/switchdev.h:17,
                     from ./include/net/dsa.h:23,
                     from arch/mips/ath79/dev-dsa.h:15,
                     from arch/mips/ath79/dev-dsa.c:17:
    ./include/uapi/linux/ipv6.h:107:1: error: alignment 1 of 'struct ipv6_destopt_hao' is less than 2 [-Werror=packed-not-aligned]
     } __attribute__((packed));

Address this issue by correcting the alignment of the struct packing
pragma accordingly.

Fixes: FS#1805
Reported-by: Pascal Ernster <git@hardfalcon.net>
[reword subject, rewrap commit message]
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
target/linux/ar71xx/patches-4.14/910-unaligned_access_hacks.patch

index c642176..99624f0 100644 (file)
  struct ip_auth_hdr {
 --- a/include/uapi/linux/ipv6.h
 +++ b/include/uapi/linux/ipv6.h
+@@ -104,7 +104,7 @@ struct ipv6_destopt_hao {
+       __u8                    type;
+       __u8                    length;
+       struct in6_addr         addr;
+-} __attribute__((packed));
++} __attribute__((packed, aligned(2)));
+ /*
+  *    IPv6 fixed header
 @@ -131,7 +131,7 @@ struct ipv6hdr {
  
        struct  in6_addr        saddr;