On Tue, Apr 13, 2021 at 8:34 AM Yonghong Song <yhs@xxxxxx> wrote: > > With clang compiler: > make -j60 LLVM=1 LLVM_IAS=1 <=== compile kernel > make -j60 -C tools/testing/selftests/bpf LLVM=1 LLVM_IAS=1 > the test_cpp build failed due to the failure: > warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [-Wdeprecated] > clang-13: error: cannot specify -o when generating multiple output files > > test_cpp compilation flag looks like: > clang++ -g -Og -rdynamic -Wall -I<...> ... \ > -Dbpf_prog_load=bpf_prog_test_load -Dbpf_load_program=bpf_test_load_program \ > test_cpp.cpp <...>/test_core_extern.skel.h <...>/libbpf.a <...>/test_stub.o \ > -lcap -lelf -lz -lrt -lpthread -o <...>/test_cpp > > The clang++ compiler complains the header file in the command line and > also failed the compilation due to this. > Let us remove the header file from the command line which is not intended > any way, and this fixed the compilation problem. > > Signed-off-by: Yonghong Song <yhs@xxxxxx> > --- Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > tools/testing/selftests/bpf/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile > index 6448c626498f..dcc2dc1f2a86 100644 > --- a/tools/testing/selftests/bpf/Makefile > +++ b/tools/testing/selftests/bpf/Makefile > @@ -481,7 +481,7 @@ $(OUTPUT)/test_verifier: test_verifier.c verifier/tests.h $(BPFOBJ) | $(OUTPUT) > # Make sure we are able to include and link libbpf against c++. > $(OUTPUT)/test_cpp: test_cpp.cpp $(OUTPUT)/test_core_extern.skel.h $(BPFOBJ) > $(call msg,CXX,,$@) > - $(Q)$(CXX) $(CFLAGS) $^ $(LDLIBS) -o $@ > + $(Q)$(CXX) $(CFLAGS) $(filter %.a %.o %.cpp,$^) $(LDLIBS) -o $@ > > # Benchmark runner > $(OUTPUT)/bench_%.o: benchs/bench_%.c bench.h > -- > 2.30.2 >