Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
From: Sedat Dilek <hidden>
Date: 2021-01-22 00:23:09
Also in:
bpf, linux-kselftest, lkml
On Fri, Jan 22, 2021 at 1:12 AM Sedat Dilek [off-list ref] wrote:
On Fri, Jan 22, 2021 at 1:04 AM Andrii Nakryiko [off-list ref] wrote:quoted
On Wed, Jan 20, 2021 at 2:36 PM Jiri Olsa [off-list ref] wrote:quoted
On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:quoted
When dealing with BPF/BTF/pahole and DWARF v5 I wanted to build bpftool. While looking into the source code I found duplicate assignments in misc tools for the LLVM eco system, e.g. clang and llvm-objcopy. Move the Clang, LLC and/or LLVM utils definitions to tools/scripts/Makefile.include file and add missing includes where needed. Honestly, I was inspired by commit c8a950d0d3b9 ("tools: Factor HOSTCC, HOSTLD, HOSTAR definitions"). I tested with bpftool and perf on Debian/testing AMD64 and LLVM/Clang v11.1.0-rc1. Build instructions: [ make and make-options ] MAKE="make V=1" MAKE_OPTS="HOSTCC=clang HOSTCXX=clang++ HOSTLD=ld.lld CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1" MAKE_OPTS="$MAKE_OPTS PAHOLE=/opt/pahole/bin/pahole" [ clean-up ] $MAKE $MAKE_OPTS -C tools/ clean [ bpftool ] $MAKE $MAKE_OPTS -C tools/bpf/bpftool/ [ perf ] PYTHON=python3 $MAKE $MAKE_OPTS -C tools/perf/ I was careful with respecting the user's wish to override custom compiler, linker, GNU/binutils and/or LLVM utils settings. Some personal notes: 1. I have NOT tested with cross-toolchain for other archs (cross compiler/linker etc.). 2. This patch is on top of Linux v5.11-rc3. I hope to get some feedback from especially Linux-bpf folks. Signed-off-by: Sedat Dilek <redacted> --- tools/bpf/bpftool/Makefile | 2 -- tools/bpf/runqslower/Makefile | 3 --- tools/build/feature/Makefile | 4 ++-- tools/perf/Makefile.perf | 1 -for tools/build and tools/perf Acked-by: Jiri Olsa <redacted>It's pretty straightforward and looks good for bpftool and runqslower, but I couldn't apply directly to test due to merge conflicts. Also, which tree this should go through, given it touches multiple parts under tools/?Sorry, for the conflicts. AFAICS I should do this again against Linux v5.11-rc4 vanilla? Is this OK to you?
I re-checked: This patch was on top of Linux v5.11-rc3 and applies cleanly against Linux v5.11-rc. Please let me know if I should adapt to a different Git tree. - Sedat -
Good hint, cannot say through which tree this should go through. - Sedat -quoted
quoted
jirkaquoted
tools/scripts/Makefile.include | 7 +++++++ tools/testing/selftests/bpf/Makefile | 3 +-- tools/testing/selftests/tc-testing/Makefile | 3 +-- 7 files changed, 11 insertions(+), 12 deletions(-)diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile index f897cb5fb12d..71c14efa6e91 100644 --- a/tools/bpf/bpftool/Makefile +++ b/tools/bpf/bpftool/MakefileSNIP