Re: [PATCH bpf-next 09/11] samples: bpf: fix include order for non-Glibc environments

From: Song Liu
Date: Fri Apr 15 2022 - 19:55:44 EST


On Thu, Apr 14, 2022 at 3:47 PM Alexander Lobakin <alobakin@xxxxx> wrote:
>
> Some standard C library implementations, e.g. Musl, ship the UAPI
> definitions themselves to not be dependent on the UAPI headers and
> their versions. Their kernel UAPI counterparts are usually guarded
> with some definitions which the formers set in order to avoid
> duplicate definitions.
> In such cases, include order matters. Change it in two samples: in
> the first, kernel UAPI ioctl definitions should go before the libc
> ones, and the opposite story with the second, where the kernel
> includes should go later to avoid struct redefinitions.
>
> Fixes: b4b8faa1ded7 ("samples/bpf: sample application and documentation for AF_XDP sockets")
> Fixes: e55190f26f92 ("samples/bpf: Fix build for task_fd_query_user.c")
> Signed-off-by: Alexander Lobakin <alobakin@xxxxx>

Acked-by: Song Liu <songliubraving@xxxxxx>

> ---
> samples/bpf/task_fd_query_user.c | 2 +-
> samples/bpf/xdpsock_user.c | 3 ++-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/samples/bpf/task_fd_query_user.c b/samples/bpf/task_fd_query_user.c
> index 424718c0872c..5d3a60547f9f 100644
> --- a/samples/bpf/task_fd_query_user.c
> +++ b/samples/bpf/task_fd_query_user.c
> @@ -9,10 +9,10 @@
> #include <stdint.h>
> #include <fcntl.h>
> #include <linux/bpf.h>
> +#include <linux/perf_event.h>
> #include <sys/ioctl.h>
> #include <sys/types.h>
> #include <sys/stat.h>
> -#include <linux/perf_event.h>
>
> #include <bpf/bpf.h>
> #include <bpf/libbpf.h>
> diff --git a/samples/bpf/xdpsock_user.c b/samples/bpf/xdpsock_user.c
> index be7d2572e3e6..399b999fcec2 100644
> --- a/samples/bpf/xdpsock_user.c
> +++ b/samples/bpf/xdpsock_user.c
> @@ -7,14 +7,15 @@
> #include <linux/bpf.h>
> #include <linux/if_link.h>
> #include <linux/if_xdp.h>
> -#include <linux/if_ether.h>
> #include <linux/ip.h>
> #include <linux/limits.h>
> +#include <linux/net.h>
> #include <linux/udp.h>
> #include <arpa/inet.h>
> #include <locale.h>
> #include <net/ethernet.h>
> #include <netinet/ether.h>
> +#include <linux/if_ether.h>
> #include <net/if.h>
> #include <poll.h>
> #include <pthread.h>
> --
> 2.35.2
>
>