mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	tools: Factor Clang, LLC and LLVM utils definitions
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 the commit
c8a950d0d3 ("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.
Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@redhat.com> # tools/build and tools/perf
Link: https://lore.kernel.org/bpf/20210128015117.20515-1-sedat.dilek@gmail.com
			
			
This commit is contained in:
		
							parent
							
								
									8259fdeb30
								
							
						
					
					
						commit
						211a741cd3
					
				
					 7 changed files with 10 additions and 12 deletions
				
			
		| 
						 | 
					@ -75,8 +75,6 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INSTALL ?= install
 | 
					INSTALL ?= install
 | 
				
			||||||
RM ?= rm -f
 | 
					RM ?= rm -f
 | 
				
			||||||
CLANG ?= clang
 | 
					 | 
				
			||||||
LLVM_STRIP ?= llvm-strip
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
FEATURE_USER = .bpftool
 | 
					FEATURE_USER = .bpftool
 | 
				
			||||||
FEATURE_TESTS = libbfd disassembler-four-args reallocarray zlib libcap \
 | 
					FEATURE_TESTS = libbfd disassembler-four-args reallocarray zlib libcap \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,9 +3,6 @@ include ../../scripts/Makefile.include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OUTPUT ?= $(abspath .output)/
 | 
					OUTPUT ?= $(abspath .output)/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CLANG ?= clang
 | 
					 | 
				
			||||||
LLC ?= llc
 | 
					 | 
				
			||||||
LLVM_STRIP ?= llvm-strip
 | 
					 | 
				
			||||||
BPFTOOL_OUTPUT := $(OUTPUT)bpftool/
 | 
					BPFTOOL_OUTPUT := $(OUTPUT)bpftool/
 | 
				
			||||||
DEFAULT_BPFTOOL := $(BPFTOOL_OUTPUT)bpftool
 | 
					DEFAULT_BPFTOOL := $(BPFTOOL_OUTPUT)bpftool
 | 
				
			||||||
BPFTOOL ?= $(DEFAULT_BPFTOOL)
 | 
					BPFTOOL ?= $(DEFAULT_BPFTOOL)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,6 @@
 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0
 | 
					# SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					include ../../scripts/Makefile.include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FILES=                                          \
 | 
					FILES=                                          \
 | 
				
			||||||
         test-all.bin                           \
 | 
					         test-all.bin                           \
 | 
				
			||||||
         test-backtrace.bin                     \
 | 
					         test-backtrace.bin                     \
 | 
				
			||||||
| 
						 | 
					@ -76,8 +78,6 @@ FILES=                                          \
 | 
				
			||||||
FILES := $(addprefix $(OUTPUT),$(FILES))
 | 
					FILES := $(addprefix $(OUTPUT),$(FILES))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
 | 
					PKG_CONFIG ?= $(CROSS_COMPILE)pkg-config
 | 
				
			||||||
LLVM_CONFIG ?= llvm-config
 | 
					 | 
				
			||||||
CLANG ?= clang
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
all: $(FILES)
 | 
					all: $(FILES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -176,7 +176,6 @@ endef
 | 
				
			||||||
LD += $(EXTRA_LDFLAGS)
 | 
					LD += $(EXTRA_LDFLAGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_CONFIG = $(CROSS_COMPILE)pkg-config
 | 
					PKG_CONFIG = $(CROSS_COMPILE)pkg-config
 | 
				
			||||||
LLVM_CONFIG ?= llvm-config
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
RM      = rm -f
 | 
					RM      = rm -f
 | 
				
			||||||
LN      = ln -f
 | 
					LN      = ln -f
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -69,6 +69,13 @@ HOSTCC  ?= gcc
 | 
				
			||||||
HOSTLD  ?= ld
 | 
					HOSTLD  ?= ld
 | 
				
			||||||
endif
 | 
					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)
 | 
					ifeq ($(CC_NO_CLANG), 1)
 | 
				
			||||||
EXTRA_WARNINGS += -Wstrict-aliasing=3
 | 
					EXTRA_WARNINGS += -Wstrict-aliasing=3
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,8 +19,6 @@ ifneq ($(wildcard $(GENHDR)),)
 | 
				
			||||||
  GENFLAGS := -DHAVE_GENHDR
 | 
					  GENFLAGS := -DHAVE_GENHDR
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CLANG		?= clang
 | 
					 | 
				
			||||||
LLVM_OBJCOPY	?= llvm-objcopy
 | 
					 | 
				
			||||||
BPF_GCC		?= $(shell command -v bpf-gcc;)
 | 
					BPF_GCC		?= $(shell command -v bpf-gcc;)
 | 
				
			||||||
SAN_CFLAGS	?=
 | 
					SAN_CFLAGS	?=
 | 
				
			||||||
CFLAGS += -g -rdynamic -Wall -O2 $(GENFLAGS) $(SAN_CFLAGS)		\
 | 
					CFLAGS += -g -rdynamic -Wall -O2 $(GENFLAGS) $(SAN_CFLAGS)		\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
# SPDX-License-Identifier: GPL-2.0
 | 
					# SPDX-License-Identifier: GPL-2.0
 | 
				
			||||||
 | 
					include ../../../scripts/Makefile.include
 | 
				
			||||||
 | 
					
 | 
				
			||||||
top_srcdir = $(abspath ../../../..)
 | 
					top_srcdir = $(abspath ../../../..)
 | 
				
			||||||
APIDIR := $(top_scrdir)/include/uapi
 | 
					APIDIR := $(top_scrdir)/include/uapi
 | 
				
			||||||
| 
						 | 
					@ -7,8 +8,6 @@ TEST_GEN_FILES = action.o
 | 
				
			||||||
KSFT_KHDR_INSTALL := 1
 | 
					KSFT_KHDR_INSTALL := 1
 | 
				
			||||||
include ../lib.mk
 | 
					include ../lib.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CLANG ?= clang
 | 
					 | 
				
			||||||
LLC   ?= llc
 | 
					 | 
				
			||||||
PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1)
 | 
					PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(PROBE),)
 | 
					ifeq ($(PROBE),)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue