netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
@ 2021-01-16  9:54 Sedat Dilek
  2021-01-20 22:35 ` Jiri Olsa
  0 siblings, 1 reply; 7+ messages in thread
From: Sedat Dilek @ 2021-01-16  9:54 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Namhyung Kim,
	Shuah Khan, Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Sedat Dilek,
	Andrey Ignatov, Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, netdev, bpf, linux-kernel, linux-kselftest,
	clang-built-linux

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 <sedat.dilek@gmail.com>
---
 tools/bpf/bpftool/Makefile                  | 2 --
 tools/bpf/runqslower/Makefile               | 3 ---
 tools/build/feature/Makefile                | 4 ++--
 tools/perf/Makefile.perf                    | 1 -
 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
@@ -75,8 +75,6 @@ endif
 
 INSTALL ?= install
 RM ?= rm -f
-CLANG ?= clang
-LLVM_STRIP ?= llvm-strip
 
 FEATURE_USER = .bpftool
 FEATURE_TESTS = libbfd disassembler-four-args reallocarray zlib libcap \
diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
index 4d5ca54fcd4c..9d9fb6209be1 100644
--- a/tools/bpf/runqslower/Makefile
+++ b/tools/bpf/runqslower/Makefile
@@ -3,9 +3,6 @@ include ../../scripts/Makefile.include
 
 OUTPUT ?= $(abspath .output)/
 
-CLANG ?= clang
-LLC ?= llc
-LLVM_STRIP ?= llvm-strip
 BPFTOOL_OUTPUT := $(OUTPUT)bpftool/
 DEFAULT_BPFTOOL := $(BPFTOOL_OUTPUT)bpftool
 BPFTOOL ?= $(DEFAULT_BPFTOOL)
diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
index 89ba522e377d..3e55edb3ea54 100644
--- a/tools/build/feature/Makefile
+++ b/tools/build/feature/Makefile
@@ -1,4 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
+include ../../scripts/Makefile.include
+
 FILES=                                          \
          test-all.bin                           \
          test-backtrace.bin                     \
@@ -76,8 +78,6 @@ FILES=                                          \
 FILES := $(addprefix $(OUTPUT),$(FILES))
 
 PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
-LLVM_CONFIG ?= llvm-config
-CLANG ?= clang
 
 all: $(FILES)
 
diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
index 62f3deb1d3a8..f4df7534026d 100644
--- a/tools/perf/Makefile.perf
+++ b/tools/perf/Makefile.perf
@@ -176,7 +176,6 @@ endef
 LD += $(EXTRA_LDFLAGS)
 
 PKG_CONFIG = $(CROSS_COMPILE)pkg-config
-LLVM_CONFIG ?= llvm-config
 
 RM      = rm -f
 LN      = ln -f
diff --git a/tools/scripts/Makefile.include b/tools/scripts/Makefile.include
index 1358e89cdf7d..4255e71f72b7 100644
--- a/tools/scripts/Makefile.include
+++ b/tools/scripts/Makefile.include
@@ -69,6 +69,13 @@ HOSTCC  ?= gcc
 HOSTLD  ?= ld
 endif
 
+# Some tools require Clang, LLC and/or LLVM utils
+CLANG		?= clang
+LLC		?= llc
+LLVM_CONFIG	?= llvm-config
+LLVM_OBJCOPY	?= llvm-objcopy
+LLVM_STRIP	?= llvm-strip
+
 ifeq ($(CC_NO_CLANG), 1)
 EXTRA_WARNINGS += -Wstrict-aliasing=3
 endif
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index c51df6b91bef..952e2bc5f3bc 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 include ../../../../scripts/Kbuild.include
 include ../../../scripts/Makefile.arch
+include ../../../scripts/Makefile.include
 
 CXX ?= $(CROSS_COMPILE)g++
 
@@ -18,8 +19,6 @@ ifneq ($(wildcard $(GENHDR)),)
   GENFLAGS := -DHAVE_GENHDR
 endif
 
-CLANG		?= clang
-LLVM_OBJCOPY	?= llvm-objcopy
 BPF_GCC		?= $(shell command -v bpf-gcc;)
 SAN_CFLAGS	?=
 CFLAGS += -g -rdynamic -Wall -O2 $(GENFLAGS) $(SAN_CFLAGS)		\
diff --git a/tools/testing/selftests/tc-testing/Makefile b/tools/testing/selftests/tc-testing/Makefile
index 91fee5c43274..4d639279f41e 100644
--- a/tools/testing/selftests/tc-testing/Makefile
+++ b/tools/testing/selftests/tc-testing/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
+include ../../../scripts/Makefile.include
 
 top_srcdir = $(abspath ../../../..)
 APIDIR := $(top_scrdir)/include/uapi
@@ -7,8 +8,6 @@ TEST_GEN_FILES = action.o
 KSFT_KHDR_INSTALL := 1
 include ../lib.mk
 
-CLANG ?= clang
-LLC   ?= llc
 PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1)
 
 ifeq ($(PROBE),)
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-16  9:54 [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions Sedat Dilek
@ 2021-01-20 22:35 ` Jiri Olsa
  2021-01-21  2:36   ` Sedat Dilek
  2021-01-22  0:04   ` Andrii Nakryiko
  0 siblings, 2 replies; 7+ messages in thread
From: Jiri Olsa @ 2021-01-20 22:35 UTC (permalink / raw)
  To: Sedat Dilek
  Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Shuah Khan,
	Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Andrey Ignatov,
	Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, netdev, bpf, linux-kernel, linux-kselftest,
	clang-built-linux

On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> 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 <sedat.dilek@gmail.com>
> ---
>  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 <jolsa@redhat.com>

jirka

>  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


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-20 22:35 ` Jiri Olsa
@ 2021-01-21  2:36   ` Sedat Dilek
  2021-01-22  0:04   ` Andrii Nakryiko
  1 sibling, 0 replies; 7+ messages in thread
From: Sedat Dilek @ 2021-01-21  2:36 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Shuah Khan,
	Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Andrey Ignatov,
	Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, netdev, bpf, linux-kernel, linux-kselftest,
	Clang-Built-Linux ML

On Wed, Jan 20, 2021 at 11:36 PM Jiri Olsa <jolsa@redhat.com> wrote:
>
> On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> > 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 <sedat.dilek@gmail.com>
> > ---
> >  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 <jolsa@redhat.com>
>

Thanks Jiri for your feedback and ACK.

- Sedat -

> jirka
>
> >  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
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-20 22:35 ` Jiri Olsa
  2021-01-21  2:36   ` Sedat Dilek
@ 2021-01-22  0:04   ` Andrii Nakryiko
  2021-01-22  0:12     ` Sedat Dilek
  1 sibling, 1 reply; 7+ messages in thread
From: Andrii Nakryiko @ 2021-01-22  0:04 UTC (permalink / raw)
  To: Jiri Olsa
  Cc: Sedat Dilek, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
	John Fastabend, KP Singh, Peter Zijlstra, Ingo Molnar,
	Arnaldo Carvalho de Melo, Mark Rutland, Alexander Shishkin,
	Namhyung Kim, Shuah Khan, Nathan Chancellor, Nick Desaulniers,
	Quentin Monnet, Jean-Philippe Brucker, Tobias Klauser,
	Ilya Leoshkevich, Toke Høiland-Jørgensen,
	Yulia Kartseva, Andrey Ignatov, Thomas Hebb, Stephane Eranian,
	Frank Ch. Eigler, Masami Hiramatsu, David S. Miller,
	Davide Caratti, Briana Oursler, Networking, bpf, open list,
	open list:KERNEL SELFTEST FRAMEWORK, clang-built-linux

On Wed, Jan 20, 2021 at 2:36 PM Jiri Olsa <jolsa@redhat.com> wrote:
>
> On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> > 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 <sedat.dilek@gmail.com>
> > ---
> >  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 <jolsa@redhat.com>
>

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/?

> jirka
>
> >  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
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-22  0:04   ` Andrii Nakryiko
@ 2021-01-22  0:12     ` Sedat Dilek
  2021-01-22  0:21       ` Sedat Dilek
  0 siblings, 1 reply; 7+ messages in thread
From: Sedat Dilek @ 2021-01-22  0:12 UTC (permalink / raw)
  To: Andrii Nakryiko
  Cc: Jiri Olsa, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Shuah Khan,
	Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Andrey Ignatov,
	Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, Networking, bpf, open list,
	open list:KERNEL SELFTEST FRAMEWORK, clang-built-linux

On Fri, Jan 22, 2021 at 1:04 AM Andrii Nakryiko
<andrii.nakryiko@gmail.com> wrote:
>
> On Wed, Jan 20, 2021 at 2:36 PM Jiri Olsa <jolsa@redhat.com> wrote:
> >
> > On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> > > 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 <sedat.dilek@gmail.com>
> > > ---
> > >  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 <jolsa@redhat.com>
> >
>
> 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?

Good hint, cannot say through which tree this should go through.

- Sedat -

> > jirka
> >
> > >  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
> >

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-22  0:12     ` Sedat Dilek
@ 2021-01-22  0:21       ` Sedat Dilek
  2021-01-22  0:25         ` Sedat Dilek
  0 siblings, 1 reply; 7+ messages in thread
From: Sedat Dilek @ 2021-01-22  0:21 UTC (permalink / raw)
  To: Andrii Nakryiko
  Cc: Jiri Olsa, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Shuah Khan,
	Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Andrey Ignatov,
	Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, Networking, bpf, open list,
	open list:KERNEL SELFTEST FRAMEWORK, clang-built-linux

On Fri, Jan 22, 2021 at 1:12 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Fri, Jan 22, 2021 at 1:04 AM Andrii Nakryiko
> <andrii.nakryiko@gmail.com> wrote:
> >
> > On Wed, Jan 20, 2021 at 2:36 PM Jiri Olsa <jolsa@redhat.com> wrote:
> > >
> > > On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> > > > 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 <sedat.dilek@gmail.com>
> > > > ---
> > > >  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 <jolsa@redhat.com>
> > >
> >
> > 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 -
>
> > > jirka
> > >
> > > >  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
> > >

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions
  2021-01-22  0:21       ` Sedat Dilek
@ 2021-01-22  0:25         ` Sedat Dilek
  0 siblings, 0 replies; 7+ messages in thread
From: Sedat Dilek @ 2021-01-22  0:25 UTC (permalink / raw)
  To: Andrii Nakryiko
  Cc: Jiri Olsa, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
	KP Singh, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Namhyung Kim, Shuah Khan,
	Nathan Chancellor, Nick Desaulniers, Quentin Monnet,
	Jean-Philippe Brucker, Tobias Klauser, Ilya Leoshkevich,
	Toke Høiland-Jørgensen, Yulia Kartseva, Andrey Ignatov,
	Thomas Hebb, Stephane Eranian, Frank Ch. Eigler,
	Masami Hiramatsu, David S. Miller, Davide Caratti,
	Briana Oursler, Networking, bpf, open list,
	open list:KERNEL SELFTEST FRAMEWORK, clang-built-linux

On Fri, Jan 22, 2021 at 1:21 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
>
> On Fri, Jan 22, 2021 at 1:12 AM Sedat Dilek <sedat.dilek@gmail.com> wrote:
> >
> > On Fri, Jan 22, 2021 at 1:04 AM Andrii Nakryiko
> > <andrii.nakryiko@gmail.com> wrote:
> > >
> > > On Wed, Jan 20, 2021 at 2:36 PM Jiri Olsa <jolsa@redhat.com> wrote:
> > > >
> > > > On Sat, Jan 16, 2021 at 10:54:04AM +0100, Sedat Dilek wrote:
> > > > > 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 <sedat.dilek@gmail.com>
> > > > > ---
> > > > >  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 <jolsa@redhat.com>
> > > >
> > >
> > > 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.
>

Bullshit.

I will send out a v2 against Linux v5.11-rc4 - was on the wrong local
Git branch.

- Sedat -

> 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 -
> >
> > > > jirka
> > > >
> > > > >  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
> > > >

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-01-22  0:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-16  9:54 [PATCH RFC] tools: Factor Clang, LLC and LLVM utils definitions Sedat Dilek
2021-01-20 22:35 ` Jiri Olsa
2021-01-21  2:36   ` Sedat Dilek
2021-01-22  0:04   ` Andrii Nakryiko
2021-01-22  0:12     ` Sedat Dilek
2021-01-22  0:21       ` Sedat Dilek
2021-01-22  0:25         ` Sedat Dilek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).