tools/bpf: do not use pahole if clang/llvm can generate BTF sections
Add additional checks in tools/testing/selftests/bpf and samples/bpf such that if clang/llvm compiler can generate BTF sections, do not use pahole. Signed-off-by: Yonghong Song <yhs@fb.com> Signed-off-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
2993e0515b
commit
9ce6ae22c8
@@ -208,12 +208,20 @@ endif
|
|||||||
BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris)
|
BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris)
|
||||||
BTF_PAHOLE_PROBE := $(shell $(BTF_PAHOLE) --help 2>&1 | grep BTF)
|
BTF_PAHOLE_PROBE := $(shell $(BTF_PAHOLE) --help 2>&1 | grep BTF)
|
||||||
BTF_OBJCOPY_PROBE := $(shell $(LLVM_OBJCOPY) --help 2>&1 | grep -i 'usage.*llvm')
|
BTF_OBJCOPY_PROBE := $(shell $(LLVM_OBJCOPY) --help 2>&1 | grep -i 'usage.*llvm')
|
||||||
|
BTF_LLVM_PROBE := $(shell echo "int main() { return 0; }" | \
|
||||||
|
$(CLANG) -target bpf -O2 -g -c -x c - -o ./llvm_btf_verify.o; \
|
||||||
|
readelf -S ./llvm_btf_verify.o | grep BTF; \
|
||||||
|
/bin/rm -f ./llvm_btf_verify.o)
|
||||||
|
|
||||||
|
ifneq ($(BTF_LLVM_PROBE),)
|
||||||
|
EXTRA_CFLAGS += -g
|
||||||
|
else
|
||||||
ifneq ($(and $(BTF_LLC_PROBE),$(BTF_PAHOLE_PROBE),$(BTF_OBJCOPY_PROBE)),)
|
ifneq ($(and $(BTF_LLC_PROBE),$(BTF_PAHOLE_PROBE),$(BTF_OBJCOPY_PROBE)),)
|
||||||
EXTRA_CFLAGS += -g
|
EXTRA_CFLAGS += -g
|
||||||
LLC_FLAGS += -mattr=dwarfris
|
LLC_FLAGS += -mattr=dwarfris
|
||||||
DWARF2BTF = y
|
DWARF2BTF = y
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Trick to allow make to be run from this directory
|
# Trick to allow make to be run from this directory
|
||||||
all:
|
all:
|
||||||
|
|||||||
@@ -126,7 +126,14 @@ $(OUTPUT)/test_stack_map.o: test_queue_stack_map.h
|
|||||||
BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris)
|
BTF_LLC_PROBE := $(shell $(LLC) -march=bpf -mattr=help 2>&1 | grep dwarfris)
|
||||||
BTF_PAHOLE_PROBE := $(shell $(BTF_PAHOLE) --help 2>&1 | grep BTF)
|
BTF_PAHOLE_PROBE := $(shell $(BTF_PAHOLE) --help 2>&1 | grep BTF)
|
||||||
BTF_OBJCOPY_PROBE := $(shell $(LLVM_OBJCOPY) --help 2>&1 | grep -i 'usage.*llvm')
|
BTF_OBJCOPY_PROBE := $(shell $(LLVM_OBJCOPY) --help 2>&1 | grep -i 'usage.*llvm')
|
||||||
|
BTF_LLVM_PROBE := $(shell echo "int main() { return 0; }" | \
|
||||||
|
$(CLANG) -target bpf -O2 -g -c -x c - -o ./llvm_btf_verify.o; \
|
||||||
|
readelf -S ./llvm_btf_verify.o | grep BTF; \
|
||||||
|
/bin/rm -f ./llvm_btf_verify.o)
|
||||||
|
|
||||||
|
ifneq ($(BTF_LLVM_PROBE),)
|
||||||
|
CLANG_FLAGS += -g
|
||||||
|
else
|
||||||
ifneq ($(BTF_LLC_PROBE),)
|
ifneq ($(BTF_LLC_PROBE),)
|
||||||
ifneq ($(BTF_PAHOLE_PROBE),)
|
ifneq ($(BTF_PAHOLE_PROBE),)
|
||||||
ifneq ($(BTF_OBJCOPY_PROBE),)
|
ifneq ($(BTF_OBJCOPY_PROBE),)
|
||||||
@@ -136,6 +143,7 @@ ifneq ($(BTF_OBJCOPY_PROBE),)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Have one program compiled without "-target bpf" to test whether libbpf loads
|
# Have one program compiled without "-target bpf" to test whether libbpf loads
|
||||||
# it successfully
|
# it successfully
|
||||||
|
|||||||
Reference in New Issue
Block a user