[PATCH bpf-next] bpftoo: Support user defined vmlinux path

Jianlin Lv posted 1 patch 4 years, 1 month ago
tools/bpf/bpftool/Makefile | 1 +
1 file changed, 1 insertion(+)
[PATCH bpf-next] bpftoo: Support user defined vmlinux path
Posted by Jianlin Lv 4 years, 1 month ago
From: Jianlin Lv <iecedge@gmail.com>

Add EXTERNAL_PATH variable that define unconventional vmlinux path

Signed-off-by: Jianlin Lv <iecedge@gmail.com>
---
When building Ubuntu-5.15.0 kernel, '../../../vmlinux' cannot locate
compiled vmlinux image. Incorrect vmlinux generated vmlinux.h missing some
structure definitions that broken compiling pipe.
---
 tools/bpf/bpftool/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
index c6d2c77d0252..fefa3b763eb7 100644
--- a/tools/bpf/bpftool/Makefile
+++ b/tools/bpf/bpftool/Makefile
@@ -160,6 +160,7 @@ $(OBJS): $(LIBBPF) $(LIBBPF_INTERNAL_HDRS)
 VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux)				\
 		     $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)	\
 		     ../../../vmlinux					\
+		     $(if $(EXTERNAL_PATH),$(EXTERNAL_PATH)/vmlinux)	\
 		     /sys/kernel/btf/vmlinux				\
 		     /boot/vmlinux-$(shell uname -r)
 VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
-- 
2.25.1
Re: [PATCH bpf-next] bpftoo: Support user defined vmlinux path
Posted by Daniel Borkmann 4 years, 1 month ago
On 4/25/22 9:57 AM, Jianlin Lv wrote:
> From: Jianlin Lv <iecedge@gmail.com>
> 
> Add EXTERNAL_PATH variable that define unconventional vmlinux path
> 
> Signed-off-by: Jianlin Lv <iecedge@gmail.com>
> ---
> When building Ubuntu-5.15.0 kernel, '../../../vmlinux' cannot locate
> compiled vmlinux image. Incorrect vmlinux generated vmlinux.h missing some
> structure definitions that broken compiling pipe.

You should already be able to define custom VMLINUX_BTF_PATHS, no?

See commit :

commit ec23eb705620234421fd48fc2382490fcfbafc37
Author: Andrii Nakryiko <andriin@fb.com>
Date:   Mon Jun 29 17:47:58 2020 -0700

     tools/bpftool: Allow substituting custom vmlinux.h for the build

> ---
>   tools/bpf/bpftool/Makefile | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
> index c6d2c77d0252..fefa3b763eb7 100644
> --- a/tools/bpf/bpftool/Makefile
> +++ b/tools/bpf/bpftool/Makefile
> @@ -160,6 +160,7 @@ $(OBJS): $(LIBBPF) $(LIBBPF_INTERNAL_HDRS)
>   VMLINUX_BTF_PATHS ?= $(if $(O),$(O)/vmlinux)				\
>   		     $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)	\
>   		     ../../../vmlinux					\
> +		     $(if $(EXTERNAL_PATH),$(EXTERNAL_PATH)/vmlinux)	\
>   		     /sys/kernel/btf/vmlinux				\
>   		     /boot/vmlinux-$(shell uname -r)
>   VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>