On 4/10/21 12:19 PM, Sedat Dilek wrote:
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?
Yes, this patch set should fix this issue.
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.
Just tried. Yes, LC_ALL=C does not impact compilation any more
with this patch set.
Wil report later... (might be Monday when Linux v5.12-rc7 is released).
- Sedat -