On Sat, Apr 10, 2021 at 6:49 PM Yonghong Song <yhs@xxxxxx> wrote: > > 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 > Thanks for CCing me and taking care to clean BPF selftests with clang. I applied (adapted 4/5) the 5 patches to fit latest Linus Git. As I had a fresh compiled Clang-CFI kernel without enabling BTF debug-info KConfig this fails at some point. I am not sure what the situation is with Clang-CFI + BTF thus I will do another Clang-LTO build with BTF enabled. So, I was not able to build test_cpp. I am missing some comments that LLVM=1 misses to set CXX=clang++ if people want that explicitly as CXX. Did you try with this? AFAICS LC_ALL=C was not the culprit. Did you try with and without LC_ALL=C - I have this in all my build-scripts. Here I have German localisation as default. Wil report later... (might be Monday when Linux v5.12-rc7 is released). - Sedat -