[PATCH bpf-next v2 02/10] tools/bpf/runqslower: Fix override option for VMLINUX_BTF

From: Toke HÃiland-JÃrgensen
Date: Wed Jan 15 2020 - 09:16:08 EST


From: Toke HÃiland-JÃrgensen <toke@xxxxxxxxxx>

The runqslower tool refuses to build without a file to read vmlinux BTF
from. The build fails with an error message to override the location by
setting the VMLINUX_BTF variable if autodetection fails. However, the
Makefile doesn't actually work with that override - the error message is
still emitted.

Fix this by only doing auto-detection if no override is set. And while
we're at it, also look for a vmlinux file in the current kernel build dir
if none if found on the running kernel.

Fixes: 9c01546d26d2 ("tools/bpf: Add runqslower tool to tools/bpf")
Signed-off-by: Toke HÃiland-JÃrgensen <toke@xxxxxxxxxx>
---
tools/bpf/runqslower/Makefile | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/tools/bpf/runqslower/Makefile b/tools/bpf/runqslower/Makefile
index cff2fbcd29a8..fb93ce2bf2fe 100644
--- a/tools/bpf/runqslower/Makefile
+++ b/tools/bpf/runqslower/Makefile
@@ -10,12 +10,16 @@ CFLAGS := -g -Wall

# Try to detect best kernel BTF source
KERNEL_REL := $(shell uname -r)
-ifneq ("$(wildcard /sys/kernel/btf/vmlinux)","")
-VMLINUX_BTF := /sys/kernel/btf/vmlinux
-else ifneq ("$(wildcard /boot/vmlinux-$(KERNEL_REL))","")
-VMLINUX_BTF := /boot/vmlinux-$(KERNEL_REL)
-else
-$(error "Can't detect kernel BTF, use VMLINUX_BTF to specify it explicitly")
+ifeq ("$(VMLINUX_BTF)","")
+ ifneq ("$(wildcard /sys/kernel/btf/vmlinux)","")
+ VMLINUX_BTF := /sys/kernel/btf/vmlinux
+ else ifneq ("$(wildcard /boot/vmlinux-$(KERNEL_REL))","")
+ VMLINUX_BTF := /boot/vmlinux-$(KERNEL_REL)
+ else ifneq ("$(wildcard $(abspath ../../../vmlinux))","")
+ VMLINUX_BTF := $(abspath ../../../vmlinux)
+ else
+ $(error "Can't detect kernel BTF, use VMLINUX_BTF to specify it explicitly")
+ endif
endif

abs_out := $(abspath $(OUTPUT))