• Tony Ambardar's avatar
    selftests/bpf: Fix redefinition errors compiling lwt_reroute.c · 16b795cc
    Tony Ambardar authored
    Compiling lwt_reroute.c with GCC 12.3 for mips64el/musl-libc yields errors:
    
    In file included from .../include/arpa/inet.h:9,
                     from ./test_progs.h:18,
                     from tools/testing/selftests/bpf/prog_tests/lwt_helpers.h:11,
                     from tools/testing/selftests/bpf/prog_tests/lwt_reroute.c:52:
    .../include/netinet/in.h:23:8: error: redefinition of 'struct in6_addr'
       23 | struct in6_addr {
          |        ^~~~~~~~
    In file included from .../include/linux/icmp.h:24,
                     from tools/testing/selftests/bpf/prog_tests/lwt_helpers.h:9:
    .../include/linux/in6.h:33:8: note: originally defined here
       33 | struct in6_addr {
          |        ^~~~~~~~
    .../include/netinet/in.h:34:8: error: redefinition of 'struct sockaddr_in6'
       34 | struct sockaddr_in6 {
          |        ^~~~~~~~~~~~
    .../include/linux/in6.h:50:8: note: originally defined here
       50 | struct sockaddr_in6 {
          |        ^~~~~~~~~~~~
    .../include/netinet/in.h:42:8: error: redefinition of 'struct ipv6_mreq'
       42 | struct ipv6_mreq {
          |        ^~~~~~~~~
    .../include/linux/in6.h:60:8: note: originally defined here
       60 | struct ipv6_mreq {
          |        ^~~~~~~~~
    
    These errors occur because <linux/in6.h> is included before <netinet/in.h>,
    bypassing the Linux uapi/libc compat mechanism's partial musl support. As
    described in [1] and [2], fix these errors by including <netinet/in.h> in
    lwt_reroute.c before any uapi headers.
    
    [1]: commit c0bace79 ("uapi libc compat: add fallback for unsupported libcs")
    [2]: https://git.musl-libc.org/cgit/musl/commit/?id=04983f227238
    
    Fixes: 6c77997b ("selftests/bpf: Add lwt_xmit tests for BPF_REROUTE")
    Signed-off-by: default avatarTony Ambardar <tony.ambardar@gmail.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/bd2908aec0755ba8b75f5dc41848b00585f5c73e.1722244708.git.tony.ambardar@gmail.com
    16b795cc
lwt_reroute.c 7 KB