Message ID | 20210307223024.4081067-1-irogers@google.com |
---|---|
State | New |
Headers | show |
Series | tools include: Add __sum16 and __wsum definitions. | expand |
On 3/7/21 11:30 PM, Ian Rogers wrote: > This adds definitions available in the uapi version. > > Explanation: > In the kernel include of types.h the uapi version is included. > In tools the uapi/linux/types.h and linux/types.h are distinct. > For BPF programs a definition of __wsum is needed by the generated > bpf_helpers.h. The definition comes either from a generated vmlinux.h or > from <linux/types.h> that may be transitively included from bpf.h. The > perf build prefers linux/types.h over uapi/linux/types.h for > <linux/types.h>*. To allow tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c > to compile with the same include path used for perf then these > definitions are necessary. > > There is likely a wider conversation about exactly how types.h should be > specified and the include order used by the perf build - it is somewhat > confusing that tools/include/uapi/linux/bpf.h is using the non-uapi > types.h. > > *see tools/perf/Makefile.config: > ... > INC_FLAGS += -I$(srctree)/tools/include/ > INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi > INC_FLAGS += -I$(srctree)/tools/include/uapi > ... > The include directories are scanned from left-to-right: > https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html > As tools/include/linux/types.h appears before > tools/include/uapi/linux/types.h then I say it is preferred. > > Signed-off-by: Ian Rogers <irogers@google.com> Given more related to perf build infra, I presume Arnaldo would pick this one up? Thanks, Daniel
diff --git a/tools/include/linux/types.h b/tools/include/linux/types.h index e9c5a215837d..6e14a533ab4e 100644 --- a/tools/include/linux/types.h +++ b/tools/include/linux/types.h @@ -61,6 +61,9 @@ typedef __u32 __bitwise __be32; typedef __u64 __bitwise __le64; typedef __u64 __bitwise __be64; +typedef __u16 __bitwise __sum16; +typedef __u32 __bitwise __wsum; + typedef struct { int counter; } atomic_t;
This adds definitions available in the uapi version. Explanation: In the kernel include of types.h the uapi version is included. In tools the uapi/linux/types.h and linux/types.h are distinct. For BPF programs a definition of __wsum is needed by the generated bpf_helpers.h. The definition comes either from a generated vmlinux.h or from <linux/types.h> that may be transitively included from bpf.h. The perf build prefers linux/types.h over uapi/linux/types.h for <linux/types.h>*. To allow tools/perf/util/bpf_skel/bpf_prog_profiler.bpf.c to compile with the same include path used for perf then these definitions are necessary. There is likely a wider conversation about exactly how types.h should be specified and the include order used by the perf build - it is somewhat confusing that tools/include/uapi/linux/bpf.h is using the non-uapi types.h. *see tools/perf/Makefile.config: ... INC_FLAGS += -I$(srctree)/tools/include/ INC_FLAGS += -I$(srctree)/tools/arch/$(SRCARCH)/include/uapi INC_FLAGS += -I$(srctree)/tools/include/uapi ... The include directories are scanned from left-to-right: https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html As tools/include/linux/types.h appears before tools/include/uapi/linux/types.h then I say it is preferred. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/include/linux/types.h | 3 +++ 1 file changed, 3 insertions(+)