回复:[PATCH v2] samples/bpf: Fix compilation failure for samples/bpf on LoongArch Fedora

From: jianghaoran@xxxxxxxxxx
Date: Tue Jul 11 2023 - 06:45:07 EST


Çã 2023-07-11ÑÓßæĨÎû 09:39 +0200¡¢Daniel BorkmannŽ£¡ú笡¨
> On 7/10/23 7:54 AM, Huacai Chen wrote:
> > Reviewed-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
> >
> > On Mon, Jul 10, 2023 at 1:34PM Haoran Jiang <
> > jianghaoran@xxxxxxxxxx> wrote:
> > > When building the latest samples/bpf on LoongArch Fedora
> > >
> > > make M=samples/bpf
> > >
> > > There are compilation errors as follows:
> > >
> > > In file included from ./linux/samples/bpf/sockex2_kern.c:2:
> > > In file included from ./include/uapi/linux/in.h:25:
> > > In file included from ./include/linux/socket.h:8:
> > > In file included from ./include/linux/uio.h:9:
> > > In file included from ./include/linux/thread_info.h:60:
> > > In file included from
> > > ./arch/loongarch/include/asm/thread_info.h:15:
> > > In file included from
> > > ./arch/loongarch/include/asm/processor.h:13:
> > > In file included from ./arch/loongarch/include/asm/cpu-info.h:11:
> > > ./arch/loongarch/include/asm/loongarch.h:13:10: fatal error:
> > > 'larchintrin.h' file not found
> > > ^~~~~~~~~~~~~~~
> > > 1 error generated.
> > >
> > > larchintrin.h is included in /usr/lib64/clang/14.0.6/include,
> > > and the header file location is specified at compile time.
> > >
> > > Test on LoongArch Fedora:
> > > https://github.com/fedora-remix-loongarch/releases-info
> > >
> > > Signed-off-by: Haoran Jiang <jianghaoran@xxxxxxxxxx>
> > >
> > > ---
> > > v2:
> > > use LoongArch instead of Loongarch in the title and commit
> > > message.
> > > ---
> > > samples/bpf/Makefile | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> > > index 615f24ebc49c..b301796a3862 100644
> > > --- a/samples/bpf/Makefile
> > > +++ b/samples/bpf/Makefile
> > > @@ -434,7 +434,7 @@ $(obj)/%.o: $(src)/%.c
> > > @echo " CLANG-bpf " $@
> > > $(Q)$(CLANG) $(NOSTDINC_FLAGS) $(LINUXINCLUDE)
> > > $(BPF_EXTRA_CFLAGS) \
> > > -I$(obj)
> > > -I$(srctree)/tools/testing/selftests/bpf/ \
> > > - -I$(LIBBPF_INCLUDE) \
> > > + -I$(LIBBPF_INCLUDE) $(CLANG_SYS_INCLUDES) \
>
> There's still one location in XDP_SAMPLE_CFLAGS, do we need the
> $(CLANG_SYS_INCLUDES)
> there as well?

XDP_SAMPLE_CFLAGS only affects the compilation of xdp_sample_user.c. It
is a user-mode application¡¢the associated header files of clang are not
used. larchintrin.h will only be included in *.bpf.c and *kern.c
files.So I don't think $(CLANG_SYS_INCLUDES) needs to be included here.

>
> > > -D__KERNEL__ -D__BPF_TRACING__ -Wno-unused-value
> > > -Wno-pointer-sign \
> > > -D__TARGET_ARCH_$(SRCARCH) -Wno-compare-
> > > distinct-pointer-types \
> > > -Wno-gnu-variable-sized-type-not-at-end \
> > > --
> > > 2.27.0
> > >
> > >