To build kernel with clang, people typically use make -j60 LLVM=1 LLVM_IAS=1 LLVM_IAS=1 is not required for non-LTO build but is required for LTO build. In my environment, I am always having LLVM_IAS=1 regardless of whether LTO is enabled or not. After kernel is build with clang, the following command can be used to build selftests with clang: make -j60 -C tools/testing/selftests/bpf LLVM=1 LLVM_IAS=1 But currently, some compilations still use gcc and there are also compilation errors and warnings. This patch set intends to fix these issues. Patch #1 and #2 fixed the issue so clang/clang++ is used instead of gcc/g++. Patch #3 fixed a compilation failure. Patch #4 and #5 fixed various compiler warnings. Yonghong Song (5): selftests: set CC to clang in lib.mk if LLVM is set tools: allow proper CC/CXX/... override with LLVM=1 in Makefile.include selftests/bpf: fix test_cpp compilation failure with clang selftests/bpf: silence clang compilation warnings bpftool: fix a clang compilation warning tools/bpf/bpftool/net.c | 2 +- tools/scripts/Makefile.include | 12 ++++++++++-- tools/testing/selftests/bpf/Makefile | 4 +++- tools/testing/selftests/lib.mk | 4 ++++ 4 files changed, 18 insertions(+), 4 deletions(-) -- 2.30.2