[PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF

Jinghao Jia posted 1 patch 1 year ago
samples/bpf/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago
Commit 13b25489b6f8 ("kbuild: change working directory to external
module directory with M=") changed kbuild working directory of bpf
samples to $(srctree)/samples/bpf, which broke the vmlinux path for
VMLINUX_BTF, as the Makefile assumes the current work directory to be
$(srctree):

  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 source directory using $(srctree).

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 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
 VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
 
 $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
-- 
2.48.1
Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Masahiro Yamada 1 year ago
On Mon, Jan 20, 2025 at 11:30 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
> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
> VMLINUX_BTF, as the Makefile assumes the current work directory to be
> $(srctree):
>
>   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 source directory using $(srctree).
>
> 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 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)

This is wrong and will not work for O= build.

The prefix should be $(objtree)/





>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>
>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> --
> 2.48.1
>


-- 
Best Regards
Masahiro Yamada
Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago

On 1/20/25 6:42 PM, Masahiro Yamada wrote:
> On Mon, Jan 20, 2025 at 11:30 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
>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
>> $(srctree):
>>
>>   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 source directory using $(srctree).
>>
>> 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 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
> 
> This is wrong and will not work for O= build.
> 
> The prefix should be $(objtree)/
> 
> 

I thought the $(srctree)/vmlinux is a fallback when $(O) is not defined, am I
understanding it wrong here?

--Jinghao

> 
> 
> 
>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>
>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>> --
>> 2.48.1
>>
> 
> 

Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago

On 1/20/25 6:47 PM, Jinghao Jia wrote:
> 
> 
> On 1/20/25 6:42 PM, Masahiro Yamada wrote:
>> On Mon, Jan 20, 2025 at 11:30 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
>>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
>>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
>>> $(srctree):
>>>
>>>   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 source directory using $(srctree).
>>>
>>> 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 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
>>
>> This is wrong and will not work for O= build.
>>
>> The prefix should be $(objtree)/
>>
>>
> 
> I thought the $(srctree)/vmlinux is a fallback when $(O) is not defined, am I
> understanding it wrong here?
> 
> --Jinghao
> 

I played with kbuild a little bit more. It seems that the way the Makefiles are
set up does not allow a sample/bpf build w/o O= when the kernel itself is built
w/ O=, as it directly invokes the top-level Makefile. If O= is passed to the
sample/bpf build, the $(abspath $(if $(O),$(O)/vmlinux)) part should take care
of that. With that said, please do correct me if I am wrong.

--Jinghao

>>
>>
>>
>>>  VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>
>>>  $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>> --
>>> 2.48.1
>>>
>>
>>
> 

Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Nicolas Schier 1 year ago
On Tue, Jan 21, 2025 at 02:48:54AM -0600, Jinghao Jia wrote:
> 
> 
> On 1/20/25 6:47 PM, Jinghao Jia wrote:
> > 
> > 
> > On 1/20/25 6:42 PM, Masahiro Yamada wrote:
> >> On Mon, Jan 20, 2025 at 11:30 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
> >>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
> >>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
> >>> $(srctree):
> >>>
> >>>   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 source directory using $(srctree).
> >>>
> >>> 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 +-
> >>>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> >>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
> >>
> >> This is wrong and will not work for O= build.
> >>
> >> The prefix should be $(objtree)/
> >>
> >>
> > 
> > I thought the $(srctree)/vmlinux is a fallback when $(O) is not defined, am I
> > understanding it wrong here?
> > 
> > --Jinghao
> > 
> 
> I played with kbuild a little bit more. It seems that the way the Makefiles are
> set up does not allow a sample/bpf build w/o O= when the kernel itself is built
> w/ O=, as it directly invokes the top-level Makefile. If O= is passed to the
> sample/bpf build, the $(abspath $(if $(O),$(O)/vmlinux)) part should take care
> of that. With that said, please do correct me if I am wrong.
> 
> --Jinghao

$(srctree) refers to the root of the kernel source tree, while
$(objtree) refers to the root of the kernel object tree.  Even if both
variables have the same value for the case you are fixing, it makes
sense to align to the meaning of the variables as described in
Documentation/kbuild/makefiles.rst.

In short: if you want to access file created during the kernel build,
please always use $(objtree) instead of $(srctree).

Hope that helps.

Kind regards,
Nicolas
Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago

On 1/21/25 3:15 AM, Nicolas Schier wrote:
> On Tue, Jan 21, 2025 at 02:48:54AM -0600, Jinghao Jia wrote:
>>
>>
>> On 1/20/25 6:47 PM, Jinghao Jia wrote:
>>>
>>>
>>> On 1/20/25 6:42 PM, Masahiro Yamada wrote:
>>>> On Mon, Jan 20, 2025 at 11:30 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
>>>>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
>>>>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
>>>>> $(srctree):
>>>>>
>>>>>   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 source directory using $(srctree).
>>>>>
>>>>> 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 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>>>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
>>>>
>>>> This is wrong and will not work for O= build.
>>>>
>>>> The prefix should be $(objtree)/
>>>>
>>>>
>>>
>>> I thought the $(srctree)/vmlinux is a fallback when $(O) is not defined, am I
>>> understanding it wrong here?
>>>
>>> --Jinghao
>>>
>>
>> I played with kbuild a little bit more. It seems that the way the Makefiles are
>> set up does not allow a sample/bpf build w/o O= when the kernel itself is built
>> w/ O=, as it directly invokes the top-level Makefile. If O= is passed to the
>> sample/bpf build, the $(abspath $(if $(O),$(O)/vmlinux)) part should take care
>> of that. With that said, please do correct me if I am wrong.
>>
>> --Jinghao
> 
> $(srctree) refers to the root of the kernel source tree, while
> $(objtree) refers to the root of the kernel object tree.  Even if both
> variables have the same value for the case you are fixing, it makes
> sense to align to the meaning of the variables as described in
> Documentation/kbuild/makefiles.rst.
> 
> In short: if you want to access file created during the kernel build,
> please always use $(objtree) instead of $(srctree).
> 
> Hope that helps.
> 
> Kind regards,
> Nicolas

I see. Thanks for the clarification! I will add this to v2.

--Jinghao

Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Daniel Borkmann 1 year ago

On 1/20/25 3:30 AM, Jinghao Jia wrote:
> Commit 13b25489b6f8 ("kbuild: change working directory to external
> module directory with M=") changed kbuild working directory of bpf
> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
> VMLINUX_BTF, as the Makefile assumes the current work directory to be
> $(srctree):
> 
>    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 source directory using $(srctree).
> 
> 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 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
>   VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>   
>   $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)

samples/hid/Makefile needs this fix as well :

VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                         \
                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
                      $(abspath ./vmlinux)
VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago

On 1/20/25 9:51 AM, Daniel Borkmann wrote:
> 
> 
> On 1/20/25 3:30 AM, Jinghao Jia wrote:
>> Commit 13b25489b6f8 ("kbuild: change working directory to external
>> module directory with M=") changed kbuild working directory of bpf
>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
>> $(srctree):
>>
>>    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 source directory using $(srctree).
>>
>> 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 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
>>   VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>     $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
> 
> samples/hid/Makefile needs this fix as well :
> 
> VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                         \
>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>                      $(abspath ./vmlinux)
> VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
> 

Oh yes you are right. I will roll out a v2.

--Jinghao

Re: [PATCH bpf] samples/bpf: fix broken vmlinux path for VMLINUX_BTF
Posted by Jinghao Jia 1 year ago

On 1/20/25 5:59 PM, Jinghao Jia wrote:
> 
> 
> On 1/20/25 9:51 AM, Daniel Borkmann wrote:
>>
>>
>> On 1/20/25 3:30 AM, Jinghao Jia wrote:
>>> Commit 13b25489b6f8 ("kbuild: change working directory to external
>>> module directory with M=") changed kbuild working directory of bpf
>>> samples to $(srctree)/samples/bpf, which broke the vmlinux path for
>>> VMLINUX_BTF, as the Makefile assumes the current work directory to be
>>> $(srctree):
>>>
>>>    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 source directory using $(srctree).
>>>
>>> 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 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>> index 96a05e70ace3..f97295724a14 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 $(srctree)/vmlinux)
>>>   VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>>     $(obj)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL)
>>
>> samples/hid/Makefile needs this fix as well :
>>
>> VMLINUX_BTF_PATHS ?= $(abspath $(if $(O),$(O)/vmlinux))                         \
>>                      $(abspath $(if $(KBUILD_OUTPUT),$(KBUILD_OUTPUT)/vmlinux)) \
>>                      $(abspath ./vmlinux)
>> VMLINUX_BTF ?= $(abspath $(firstword $(wildcard $(VMLINUX_BTF_PATHS))))
>>
> 
> Oh yes you are right. I will roll out a v2.
> 
> --Jinghao
> 

The samples/hid Makefile also has the same problem that was fixed by
5a6ea7022ff4 ("samples/bpf: Remove unnecessary -I flags from libbpf
EXTRA_CFLAGS") for samples/bpf. I will include a fix for this in v2 as well.

--Jinghao