Thread (7 messages) flat view 7 messages, 3 authors, 2021-01-22

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
jirka
quoted
 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/Makefile
SNIP
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help