diff mbox series

[bpf,v2,2/2] samples/{bpf,hid}: fix broken vmlinux path for VMLINUX_BTF

Message ID 20250123081950.173588-3-jinghao7@illinois.edu (mailing list archive)
State Superseded
Delegated to: BPF
Headers show
Series Makefile fixes for samples/{bpf,hid} | expand

Checks

Context Check Description
netdev/series_format success Posting correctly formatted
netdev/tree_selection success Clearly marked for bpf
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 18 of 18 maintainers
netdev/build_clang success Errors and warnings before: 32 this patch: 32
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 4 this patch: 4
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 16 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
bpf/vmtest-bpf-VM_Test-1 success Logs for ShellCheck
bpf/vmtest-bpf-VM_Test-0 success Logs for Lint
bpf/vmtest-bpf-VM_Test-2 success Logs for Unittests
bpf/vmtest-bpf-VM_Test-3 success Logs for Validate matrix.py
bpf/vmtest-bpf-VM_Test-5 success Logs for aarch64-gcc / build-release
bpf/vmtest-bpf-VM_Test-4 success Logs for aarch64-gcc / build / build for aarch64 with gcc
bpf/vmtest-bpf-VM_Test-9 success Logs for aarch64-gcc / test (test_verifier, false, 360) / test_verifier on aarch64 with gcc
bpf/vmtest-bpf-VM_Test-11 success Logs for aarch64-gcc / veristat-meta
bpf/vmtest-bpf-VM_Test-10 success Logs for aarch64-gcc / veristat-kernel
bpf/vmtest-bpf-VM_Test-12 success Logs for s390x-gcc / build / build for s390x with gcc
bpf/vmtest-bpf-VM_Test-13 success Logs for s390x-gcc / build-release
bpf/vmtest-bpf-VM_Test-17 success Logs for s390x-gcc / veristat-kernel
bpf/vmtest-bpf-VM_Test-18 success Logs for s390x-gcc / veristat-meta
bpf/vmtest-bpf-VM_Test-19 success Logs for set-matrix
bpf/vmtest-bpf-VM_Test-21 success Logs for x86_64-gcc / build-release
bpf/vmtest-bpf-VM_Test-6 success Logs for aarch64-gcc / test (test_maps, false, 360) / test_maps on aarch64 with gcc
bpf/vmtest-bpf-VM_Test-16 success Logs for s390x-gcc / test (test_verifier, false, 360) / test_verifier on s390x with gcc
bpf/vmtest-bpf-VM_Test-7 success Logs for aarch64-gcc / test (test_progs, false, 360) / test_progs on aarch64 with gcc
bpf/vmtest-bpf-VM_Test-8 success Logs for aarch64-gcc / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on aarch64 with gcc
bpf/vmtest-bpf-VM_Test-14 fail Logs for s390x-gcc / test (test_progs, false, 360) / test_progs on s390x with gcc
bpf/vmtest-bpf-VM_Test-20 success Logs for x86_64-gcc / build / build for x86_64 with gcc
bpf/vmtest-bpf-VM_Test-30 success Logs for x86_64-llvm-17 / build / build for x86_64 with llvm-17
bpf/vmtest-bpf-VM_Test-31 success Logs for x86_64-llvm-17 / build-release / build for x86_64 with llvm-17-O2
bpf/vmtest-bpf-VM_Test-36 success Logs for x86_64-llvm-17 / veristat-kernel
bpf/vmtest-bpf-VM_Test-38 success Logs for x86_64-llvm-18 / build / build for x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-37 success Logs for x86_64-llvm-17 / veristat-meta
bpf/vmtest-bpf-VM_Test-39 success Logs for x86_64-llvm-18 / build-release / build for x86_64 with llvm-18-O2
bpf/vmtest-bpf-VM_Test-46 success Logs for x86_64-llvm-18 / veristat-meta
bpf/vmtest-bpf-VM_Test-45 success Logs for x86_64-llvm-18 / veristat-kernel
bpf/vmtest-bpf-VM_Test-32 success Logs for x86_64-llvm-17 / test (test_maps, false, 360) / test_maps on x86_64 with llvm-17
bpf/vmtest-bpf-VM_Test-35 success Logs for x86_64-llvm-17 / test (test_verifier, false, 360) / test_verifier on x86_64 with llvm-17
bpf/vmtest-bpf-VM_Test-15 fail Logs for s390x-gcc / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on s390x with gcc
bpf/vmtest-bpf-VM_Test-28 success Logs for x86_64-gcc / veristat-kernel / x86_64-gcc veristat_kernel
bpf/vmtest-bpf-VM_Test-29 success Logs for x86_64-gcc / veristat-meta / x86_64-gcc veristat_meta
bpf/vmtest-bpf-VM_Test-33 success Logs for x86_64-llvm-17 / test (test_progs, false, 360) / test_progs on x86_64 with llvm-17
bpf/vmtest-bpf-VM_Test-34 success Logs for x86_64-llvm-17 / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with llvm-17
bpf/vmtest-bpf-VM_Test-40 success Logs for x86_64-llvm-18 / test (test_maps, false, 360) / test_maps on x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-42 success Logs for x86_64-llvm-18 / test (test_progs_cpuv4, false, 360) / test_progs_cpuv4 on x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-44 success Logs for x86_64-llvm-18 / test (test_verifier, false, 360) / test_verifier on x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-23 success Logs for x86_64-gcc / test (test_progs, false, 360) / test_progs on x86_64 with gcc
bpf/vmtest-bpf-VM_Test-22 success Logs for x86_64-gcc / test (test_maps, false, 360) / test_maps on x86_64 with gcc
bpf/vmtest-bpf-VM_Test-27 success Logs for x86_64-gcc / test (test_verifier, false, 360) / test_verifier on x86_64 with gcc
bpf/vmtest-bpf-VM_Test-26 success Logs for x86_64-gcc / test (test_progs_parallel, true, 30) / test_progs_parallel on x86_64 with gcc
bpf/vmtest-bpf-VM_Test-41 success Logs for x86_64-llvm-18 / test (test_progs, false, 360) / test_progs on x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-43 fail Logs for x86_64-llvm-18 / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with llvm-18
bpf/vmtest-bpf-VM_Test-24 success Logs for x86_64-gcc / test (test_progs_no_alu32, false, 360) / test_progs_no_alu32 on x86_64 with gcc
bpf/vmtest-bpf-PR fail PR summary
bpf/vmtest-bpf-VM_Test-25 success Logs for x86_64-gcc / test (test_progs_no_alu32_parallel, true, 30) / test_progs_no_alu32_parallel on x86_64 with gcc

Commit Message

Jinghao Jia Jan. 23, 2025, 8:19 a.m. UTC
Commit 13b25489b6f8 ("kbuild: change working directory to external
module directory with M=") changed kbuild working directory of bpf and
hid samples to samples/{bpf,hid}, which broke the vmlinux path for
VMLINUX_BTF, as the Makefiles assume the current work directory to be
the kernel output directory and use a relative path (i.e., ./vmlinux):

  Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.

Correctly refer to the kernel output directory using $(objtree).

Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
Tested-by: Ruowen Qin <ruqin@redhat.com>
Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
---
 samples/bpf/Makefile | 2 +-
 samples/hid/Makefile | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Andrii Nakryiko Jan. 24, 2025, 6:49 p.m. UTC | #1
On Thu, Jan 23, 2025 at 12:20 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
>
> Commit 13b25489b6f8 ("kbuild: change working directory to external
> module directory with M=") changed kbuild working directory of bpf and
> hid samples to samples/{bpf,hid}, which broke the vmlinux path for
> VMLINUX_BTF, as the Makefiles assume the current work directory to be
> the kernel output directory and use a relative path (i.e., ./vmlinux):
>
>   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
>
> Correctly refer to the kernel output directory using $(objtree).
>
> Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
> Tested-by: Ruowen Qin <ruqin@redhat.com>
> Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
> ---
>  samples/bpf/Makefile | 2 +-
>  samples/hid/Makefile | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>

can you please split samples/bpf from samples/hid changes, so we can
land samples/bpf fix through bpf-next tree independently from other
changes?

pw-bot: cr

> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 96a05e70ace3..f5865fbbae62 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -307,7 +307,7 @@ $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
>
>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> -                    $(abspath ./vmlinux)
> +                    $(abspath $(objtree)/vmlinux)
>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>
>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> diff --git a/samples/hid/Makefile b/samples/hid/Makefile
> index 69159c81d045..db5a077c77fc 100644
> --- a/samples/hid/Makefile
> +++ b/samples/hid/Makefile
> @@ -164,7 +164,7 @@ $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
>
>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> -                    $(abspath ./vmlinux)
> +                    $(abspath $(objtree)/vmlinux)
>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>
>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> --
> 2.48.1
>
Benjamin Tissoires Jan. 24, 2025, 8:04 p.m. UTC | #2
On Jan 24 2025, Andrii Nakryiko wrote:
> On Thu, Jan 23, 2025 at 12:20 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
> >
> > Commit 13b25489b6f8 ("kbuild: change working directory to external
> > module directory with M=") changed kbuild working directory of bpf and
> > hid samples to samples/{bpf,hid}, which broke the vmlinux path for
> > VMLINUX_BTF, as the Makefiles assume the current work directory to be
> > the kernel output directory and use a relative path (i.e., ./vmlinux):
> >
> >   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
> >
> > Correctly refer to the kernel output directory using $(objtree).
> >
> > Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
> > Tested-by: Ruowen Qin <ruqin@redhat.com>
> > Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
> > ---
> >  samples/bpf/Makefile | 2 +-
> >  samples/hid/Makefile | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> 
> can you please split samples/bpf from samples/hid changes, so we can
> land samples/bpf fix through bpf-next tree independently from other
> changes?

FWIW, I don't mind if this goes through the bpf-next tree all at once.

Acked-by: Benjamin Tissoires <bentiss@kernel.org>

Cheers,
Benjamin

> 
> pw-bot: cr
> 
> > diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> > index 96a05e70ace3..f5865fbbae62 100644
> > --- a/samples/bpf/Makefile
> > +++ b/samples/bpf/Makefile
> > @@ -307,7 +307,7 @@ $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
> >
> >  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
> >                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> > -                    $(abspath ./vmlinux)
> > +                    $(abspath $(objtree)/vmlinux)
> >  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
> >
> >  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> > diff --git a/samples/hid/Makefile b/samples/hid/Makefile
> > index 69159c81d045..db5a077c77fc 100644
> > --- a/samples/hid/Makefile
> > +++ b/samples/hid/Makefile
> > @@ -164,7 +164,7 @@ $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
> >
> >  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
> >                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> > -                    $(abspath ./vmlinux)
> > +                    $(abspath $(objtree)/vmlinux)
> >  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
> >
> >  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> > --
> > 2.48.1
> >
Nicolas Schier Jan. 27, 2025, 9:29 a.m. UTC | #3
On Thu, Jan 23, 2025 at 02:19:50AM -0600, Jinghao Jia wrote:
> Commit 13b25489b6f8 ("kbuild: change working directory to external
> module directory with M=") changed kbuild working directory of bpf and
> hid samples to samples/{bpf,hid}, which broke the vmlinux path for
> VMLINUX_BTF, as the Makefiles assume the current work directory to be
> the kernel output directory and use a relative path (i.e., ./vmlinux):
> 
>   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
> 
> Correctly refer to the kernel output directory using $(objtree).
> 
> Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
> Tested-by: Ruowen Qin <ruqin@redhat.com>
> Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
> ---
>  samples/bpf/Makefile | 2 +-
>  samples/hid/Makefile | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)

Reviewed-by: Nicolas Schier <n.schier@avm.de>
Jinghao Jia Jan. 29, 2025, 10:06 a.m. UTC | #4
On 1/24/25 2:04 PM, Benjamin Tissoires wrote:
> On Jan 24 2025, Andrii Nakryiko wrote:
>> On Thu, Jan 23, 2025 at 12:20 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
>>>
>>> Commit 13b25489b6f8 ("kbuild: change working directory to external
>>> module directory with M=") changed kbuild working directory of bpf and
>>> hid samples to samples/{bpf,hid}, which broke the vmlinux path for
>>> VMLINUX_BTF, as the Makefiles assume the current work directory to be
>>> the kernel output directory and use a relative path (i.e., ./vmlinux):
>>>
>>>   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
>>>
>>> Correctly refer to the kernel output directory using $(objtree).
>>>
>>> Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
>>> Tested-by: Ruowen Qin <ruqin@redhat.com>
>>> Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
>>> ---
>>>  samples/bpf/Makefile | 2 +-
>>>  samples/hid/Makefile | 2 +-
>>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>>
>>
>> can you please split samples/bpf from samples/hid changes, so we can
>> land samples/bpf fix through bpf-next tree independently from other
>> changes?
> 
> FWIW, I don't mind if this goes through the bpf-next tree all at once.
> 
> Acked-by: Benjamin Tissoires <bentiss@kernel.org>
> 
> Cheers,
> Benjamin
> 

I wonder how we are going to move forward with this fix? Do we want to let
it go through bpf tree at once or split the changes?

Best,
Jinghao

>>
>> pw-bot: cr
>>
>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>> index 96a05e70ace3..f5865fbbae62 100644
>>> --- a/samples/bpf/Makefile
>>> +++ b/samples/bpf/Makefile
>>> @@ -307,7 +307,7 @@ $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
>>>
>>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>>> -                    $(abspath ./vmlinux)
>>> +                    $(abspath $(objtree)/vmlinux)
>>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>
>>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>> diff --git a/samples/hid/Makefile b/samples/hid/Makefile
>>> index 69159c81d045..db5a077c77fc 100644
>>> --- a/samples/hid/Makefile
>>> +++ b/samples/hid/Makefile
>>> @@ -164,7 +164,7 @@ $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
>>>
>>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>>> -                    $(abspath ./vmlinux)
>>> +                    $(abspath $(objtree)/vmlinux)
>>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>
>>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>> --
>>> 2.48.1
>>>
Andrii Nakryiko Jan. 30, 2025, 12:51 a.m. UTC | #5
On Wed, Jan 29, 2025 at 2:06 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
>
>
>
> On 1/24/25 2:04 PM, Benjamin Tissoires wrote:
> > On Jan 24 2025, Andrii Nakryiko wrote:
> >> On Thu, Jan 23, 2025 at 12:20 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
> >>>
> >>> Commit 13b25489b6f8 ("kbuild: change working directory to external
> >>> module directory with M=") changed kbuild working directory of bpf and
> >>> hid samples to samples/{bpf,hid}, which broke the vmlinux path for
> >>> VMLINUX_BTF, as the Makefiles assume the current work directory to be
> >>> the kernel output directory and use a relative path (i.e., ./vmlinux):
> >>>
> >>>   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
> >>>
> >>> Correctly refer to the kernel output directory using $(objtree).
> >>>
> >>> Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
> >>> Tested-by: Ruowen Qin <ruqin@redhat.com>
> >>> Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
> >>> ---
> >>>  samples/bpf/Makefile | 2 +-
> >>>  samples/hid/Makefile | 2 +-
> >>>  2 files changed, 2 insertions(+), 2 deletions(-)
> >>>
> >>
> >> can you please split samples/bpf from samples/hid changes, so we can
> >> land samples/bpf fix through bpf-next tree independently from other
> >> changes?
> >
> > FWIW, I don't mind if this goes through the bpf-next tree all at once.
> >
> > Acked-by: Benjamin Tissoires <bentiss@kernel.org>
> >
> > Cheers,
> > Benjamin
> >
>
> I wonder how we are going to move forward with this fix? Do we want to let
> it go through bpf tree at once or split the changes?

I'd prefer the split and routing through respective trees. Is there
any reason not to do that?

>
> Best,
> Jinghao
>
> >>
> >> pw-bot: cr
> >>
> >>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> >>> index 96a05e70ace3..f5865fbbae62 100644
> >>> --- a/samples/bpf/Makefile
> >>> +++ b/samples/bpf/Makefile
> >>> @@ -307,7 +307,7 @@ $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
> >>>
> >>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
> >>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> >>> -                    $(abspath ./vmlinux)
> >>> +                    $(abspath $(objtree)/vmlinux)
> >>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
> >>>
> >>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> >>> diff --git a/samples/hid/Makefile b/samples/hid/Makefile
> >>> index 69159c81d045..db5a077c77fc 100644
> >>> --- a/samples/hid/Makefile
> >>> +++ b/samples/hid/Makefile
> >>> @@ -164,7 +164,7 @@ $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
> >>>
> >>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
> >>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
> >>> -                    $(abspath ./vmlinux)
> >>> +                    $(abspath $(objtree)/vmlinux)
> >>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
> >>>
> >>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> >>> --
> >>> 2.48.1
> >>>
>
Jinghao Jia Jan. 31, 2025, 2 a.m. UTC | #6
On 1/29/25 6:51 PM, Andrii Nakryiko wrote:
> On Wed, Jan 29, 2025 at 2:06 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
>>
>>
>>
>> On 1/24/25 2:04 PM, Benjamin Tissoires wrote:
>>> On Jan 24 2025, Andrii Nakryiko wrote:
>>>> On Thu, Jan 23, 2025 at 12:20 AM Jinghao Jia <jinghao7@illinois.edu> wrote:
>>>>>
>>>>> Commit 13b25489b6f8 ("kbuild: change working directory to external
>>>>> module directory with M=") changed kbuild working directory of bpf and
>>>>> hid samples to samples/{bpf,hid}, which broke the vmlinux path for
>>>>> VMLINUX_BTF, as the Makefiles assume the current work directory to be
>>>>> the kernel output directory and use a relative path (i.e., ./vmlinux):
>>>>>
>>>>>   Makefile:316: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  /path/to/linux/samples/bpf/vmlinux", build the kernel or set VMLINUX_BTF like "VMLINUX_BTF=/sys/kernel/btf/vmlinux" or VMLINUX_H variable.  Stop.
>>>>>
>>>>> Correctly refer to the kernel output directory using $(objtree).
>>>>>
>>>>> Fixes: 13b25489b6f8 ("kbuild: change working directory to external module directory with M=")
>>>>> Tested-by: Ruowen Qin <ruqin@redhat.com>
>>>>> Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
>>>>> ---
>>>>>  samples/bpf/Makefile | 2 +-
>>>>>  samples/hid/Makefile | 2 +-
>>>>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>
>>>> can you please split samples/bpf from samples/hid changes, so we can
>>>> land samples/bpf fix through bpf-next tree independently from other
>>>> changes?
>>>
>>> FWIW, I don't mind if this goes through the bpf-next tree all at once.
>>>
>>> Acked-by: Benjamin Tissoires <bentiss@kernel.org>
>>>
>>> Cheers,
>>> Benjamin
>>>
>>
>> I wonder how we are going to move forward with this fix? Do we want to let
>> it go through bpf tree at once or split the changes?
> 
> I'd prefer the split and routing through respective trees. Is there
> any reason not to do that?

Sure, I will roll out a v3 then.

Best,
Jinghao

> 
>>
>> Best,
>> Jinghao
>>
>>>>
>>>> pw-bot: cr
>>>>
>>>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>>>> index 96a05e70ace3..f5865fbbae62 100644
>>>>> --- a/samples/bpf/Makefile
>>>>> +++ b/samples/bpf/Makefile
>>>>> @@ -307,7 +307,7 @@ $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
>>>>>
>>>>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>>>>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>>>>> -                    $(abspath ./vmlinux)
>>>>> +                    $(abspath $(objtree)/vmlinux)
>>>>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>>>
>>>>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>>>> diff --git a/samples/hid/Makefile b/samples/hid/Makefile
>>>>> index 69159c81d045..db5a077c77fc 100644
>>>>> --- a/samples/hid/Makefile
>>>>> +++ b/samples/hid/Makefile
>>>>> @@ -164,7 +164,7 @@ $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
>>>>>
>>>>>  VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                                \
>>>>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>>>>> -                    $(abspath ./vmlinux)
>>>>> +                    $(abspath $(objtree)/vmlinux)
>>>>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>>>
>>>>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>>>> --
>>>>> 2.48.1
>>>>>
>>
diff mbox series

Patch

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 96a05e70ace3..f5865fbbae62 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -307,7 +307,7 @@  $(obj)/$(TRACE_HELPERS): TPROGS_CFLAGS := $(TPROGS_CFLAGS) -D__must_check=
 
 VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))				\
 		     $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux))	\
-		     $(abspath ./vmlinux)
+		     $(abspath $(objtree)/vmlinux)
 VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
 
 $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
diff --git a/samples/hid/Makefile b/samples/hid/Makefile
index 69159c81d045..db5a077c77fc 100644
--- a/samples/hid/Makefile
+++ b/samples/hid/Makefile
@@ -164,7 +164,7 @@  $(obj)/hid_surface_dial.o: $(obj)/hid_surface_dial.skel.h
 
 VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))				\
 		     $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux))	\
-		     $(abspath ./vmlinux)
+		     $(abspath $(objtree)/vmlinux)
 VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
 
 $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)