On Mon, Apr 12, 2021 at 4:29 PM Yonghong Song <yhs@xxxxxx> wrote: > > To build kernel with clang, people typically use > make -j60 LLVM=1 LLVM_IAS=1 Just as a side note: When building with a high parallel-make-job like above "-j60" I saw that "test_core_extern.skel.h" was not generated which is a pre-req header file for building stuff like test_cpp.cpp. I have in my build-script: MAXCPUS="$(($(getconf _NPROCESSORS_ONLN)))" MAKE_JOBS="${MAXCPUS}" Thanks. - Sedat - > 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, using the above command, 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. > > Changelog: > v1 -> v2: > . add -Wno-unused-command-line-argument and -Wno-format-security > for clang only as (1). gcc does not exhibit those > warnings, and (2). -Wno-unused-command-line-argument is > only supported by clang. (Sedat) > > 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 | 7 ++++++- > tools/testing/selftests/lib.mk | 4 ++++ > 4 files changed, 21 insertions(+), 4 deletions(-) > > -- > 2.30.2 >