* [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
@ 2022-07-07 14:08 Pu Lehui
2022-07-07 19:12 ` Song Liu
2022-07-08 22:42 ` Andrii Nakryiko
0 siblings, 2 replies; 7+ messages in thread
From: Pu Lehui @ 2022-07-07 14:08 UTC (permalink / raw)
To: bpf, netdev, linux-kernel
Cc: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
Martin KaFai Lau, Song Liu, Yonghong Song, John Fastabend,
KP Singh, Pu Lehui
Currently, when cross compiling bpf samples, the host side
cannot use arch-specific bpftool to generate vmlinux.h or
skeleton. We need to compile the bpftool with the host
compiler.
Signed-off-by: Pu Lehui <pulehui@huawei.com>
---
samples/bpf/Makefile | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 5002a5b9a7da..fe54a8c8f312 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: GPL-2.0
+-include tools/scripts/Makefile.include
BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
@@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
-$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
+$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
$(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
- OUTPUT=$(BPFTOOL_OUTPUT)/ \
- LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
- LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
+ ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
+ OUTPUT=$(BPFTOOL_OUTPUT)/
$(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
$(call msg,MKDIR,$@)
--
2.25.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-07 14:08 [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool Pu Lehui
@ 2022-07-07 19:12 ` Song Liu
2022-07-08 2:46 ` Pu Lehui
2022-07-08 22:42 ` Andrii Nakryiko
1 sibling, 1 reply; 7+ messages in thread
From: Song Liu @ 2022-07-07 19:12 UTC (permalink / raw)
To: Pu Lehui
Cc: bpf, Networking, lkml, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin Lau, Yonghong Song, John Fastabend,
KP Singh
> On Jul 7, 2022, at 7:08 AM, Pu Lehui <pulehui@huawei.com> wrote:
>
> Currently, when cross compiling bpf samples, the host side
> cannot use arch-specific bpftool to generate vmlinux.h or
> skeleton. We need to compile the bpftool with the host
> compiler.
>
> Signed-off-by: Pu Lehui <pulehui@huawei.com>
> ---
> samples/bpf/Makefile | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 5002a5b9a7da..fe54a8c8f312 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -1,4 +1,5 @@
> # SPDX-License-Identifier: GPL-2.0
> +-include tools/scripts/Makefile.include
Why do we need the -include here?
Thanks,
Song
>
> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
> + OUTPUT=$(BPFTOOL_OUTPUT)/
>
> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
> $(call msg,MKDIR,$@)
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-07 19:12 ` Song Liu
@ 2022-07-08 2:46 ` Pu Lehui
2022-07-08 3:12 ` Pu Lehui
0 siblings, 1 reply; 7+ messages in thread
From: Pu Lehui @ 2022-07-08 2:46 UTC (permalink / raw)
To: Song Liu
Cc: bpf, Networking, lkml, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin Lau, Yonghong Song, John Fastabend,
KP Singh
On 2022/7/8 3:12, Song Liu wrote:
>
>
>> On Jul 7, 2022, at 7:08 AM, Pu Lehui <pulehui@huawei.com> wrote:
>>
>> Currently, when cross compiling bpf samples, the host side
>> cannot use arch-specific bpftool to generate vmlinux.h or
>> skeleton. We need to compile the bpftool with the host
>> compiler.
>>
>> Signed-off-by: Pu Lehui <pulehui@huawei.com>
>> ---
>> samples/bpf/Makefile | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 5002a5b9a7da..fe54a8c8f312 100644
>> --- a/samples/bpf/Makefile
>> +++ b/samples/bpf/Makefile
>> @@ -1,4 +1,5 @@
>> # SPDX-License-Identifier: GPL-2.0
>> +-include tools/scripts/Makefile.include
>
> Why do we need the -include here?
>
HOSTLD is defined in tools/scripts/Makefile.include, we need to add it.
And for -include, mainly to resolve some conflicts:
1. If workdir is kernel_src, then 'include
tools/scripts/Makefile.include' is fine when 'make M=samples/bpf'.
2. Since the trick in samples/bpf/Makefile:
# Trick to allow make to be run from this directory
all:
$(MAKE) -C ../../ M=$(CURDIR) BPF_SAMPLES_PATH=$(CURDIR)
If workdir is samples/bpf, the compile process will first load the
Makefile in samples/bpf, then change workdir to kernel_src and load the
kernel_src's Makefile. So if we just add 'include
tools/scripts/Makefile.include', then the first load will occur error
for not found the file, so we add -include to skip the first load.
> Thanks,
> Song
>
>>
>> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
>> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
>> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
>> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
>> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
>> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
>> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
>> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
>> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
>> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
>> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
>> + OUTPUT=$(BPFTOOL_OUTPUT)/
>>
>> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
>> $(call msg,MKDIR,$@)
>> --
>> 2.25.1
>>
>
> .
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-08 2:46 ` Pu Lehui
@ 2022-07-08 3:12 ` Pu Lehui
2022-07-08 4:53 ` Song Liu
0 siblings, 1 reply; 7+ messages in thread
From: Pu Lehui @ 2022-07-08 3:12 UTC (permalink / raw)
To: Song Liu
Cc: bpf, Networking, lkml, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin Lau, Yonghong Song, John Fastabend,
KP Singh
On 2022/7/8 10:46, Pu Lehui wrote:
>
>
> On 2022/7/8 3:12, Song Liu wrote:
>>
>>
>>> On Jul 7, 2022, at 7:08 AM, Pu Lehui <pulehui@huawei.com> wrote:
>>>
>>> Currently, when cross compiling bpf samples, the host side
>>> cannot use arch-specific bpftool to generate vmlinux.h or
>>> skeleton. We need to compile the bpftool with the host
>>> compiler.
>>>
>>> Signed-off-by: Pu Lehui <pulehui@huawei.com>
>>> ---
>>> samples/bpf/Makefile | 8 ++++----
>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>> index 5002a5b9a7da..fe54a8c8f312 100644
>>> --- a/samples/bpf/Makefile
>>> +++ b/samples/bpf/Makefile
>>> @@ -1,4 +1,5 @@
>>> # SPDX-License-Identifier: GPL-2.0
>>> +-include tools/scripts/Makefile.include
>>
>> Why do we need the -include here?
>>
>
> HOSTLD is defined in tools/scripts/Makefile.include, we need to add it.
>
> And for -include, mainly to resolve some conflicts:
> 1. If workdir is kernel_src, then 'include
> tools/scripts/Makefile.include' is fine when 'make M=samples/bpf'.
> 2. Since the trick in samples/bpf/Makefile:
>
> # Trick to allow make to be run from this directory
> all:
> $(MAKE) -C ../../ M=$(CURDIR) BPF_SAMPLES_PATH=$(CURDIR)
>
> If workdir is samples/bpf, the compile process will first load the
> Makefile in samples/bpf, then change workdir to kernel_src and load the
> kernel_src's Makefile. So if we just add 'include
> tools/scripts/Makefile.include', then the first load will occur error
> for not found the file, so we add -include to skip the first load.
sorry, correct the reply, so we add -include to skip the
'tools/scripts/Makefile.include' file on the fisrt load.
>
>> Thanks,
>> Song
>>
>>>
>>> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
>>> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
>>> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch]
>>> $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
>>> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
>>> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
>>> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
>>> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch]
>>> $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>>> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile)
>>> | $(BPFTOOL_OUTPUT)
>>> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
>>> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
>>> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
>>> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
>>> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
>>> + OUTPUT=$(BPFTOOL_OUTPUT)/
>>>
>>> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
>>> $(call msg,MKDIR,$@)
>>> --
>>> 2.25.1
>>>
>>
>> .
>>
> .
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-08 3:12 ` Pu Lehui
@ 2022-07-08 4:53 ` Song Liu
0 siblings, 0 replies; 7+ messages in thread
From: Song Liu @ 2022-07-08 4:53 UTC (permalink / raw)
To: Pu Lehui
Cc: bpf, Networking, lkml, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin Lau, Yonghong Song, John Fastabend,
KP Singh
> On Jul 7, 2022, at 8:12 PM, Pu Lehui <pulehui@huawei.com> wrote:
>
>
>
> On 2022/7/8 10:46, Pu Lehui wrote:
>> On 2022/7/8 3:12, Song Liu wrote:
>>>
>>>
>>>> On Jul 7, 2022, at 7:08 AM, Pu Lehui <pulehui@huawei.com> wrote:
>>>>
>>>> Currently, when cross compiling bpf samples, the host side
>>>> cannot use arch-specific bpftool to generate vmlinux.h or
>>>> skeleton. We need to compile the bpftool with the host
>>>> compiler.
>>>>
>>>> Signed-off-by: Pu Lehui <pulehui@huawei.com>
>>>> ---
>>>> samples/bpf/Makefile | 8 ++++----
>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>>>> index 5002a5b9a7da..fe54a8c8f312 100644
>>>> --- a/samples/bpf/Makefile
>>>> +++ b/samples/bpf/Makefile
>>>> @@ -1,4 +1,5 @@
>>>> # SPDX-License-Identifier: GPL-2.0
>>>> +-include tools/scripts/Makefile.include
>>>
>>> Why do we need the -include here?
>>>
>> HOSTLD is defined in tools/scripts/Makefile.include, we need to add it.
>> And for -include, mainly to resolve some conflicts:
>> 1. If workdir is kernel_src, then 'include tools/scripts/Makefile.include' is fine when 'make M=samples/bpf'.
>> 2. Since the trick in samples/bpf/Makefile:
>> # Trick to allow make to be run from this directory
>> all:
>> $(MAKE) -C ../../ M=$(CURDIR) BPF_SAMPLES_PATH=$(CURDIR)
>> If workdir is samples/bpf, the compile process will first load the Makefile in samples/bpf, then change workdir to kernel_src and load the kernel_src's Makefile. So if we just add 'include tools/scripts/Makefile.include', then the first load will occur error for not found the file, so we add -include to skip the first load.
>
> sorry, correct the reply, so we add -include to skip the 'tools/scripts/Makefile.include' file on the fisrt load.
Thanks for the explanation.
Acked-by: Song Liu <song@kernel.org>
>
>>> Thanks,
>>> Song
>>>
>>>>
>>>> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
>>>> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
>>>> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
>>>> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
>>>> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
>>>> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
>>>> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>>>> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>>>> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
>>>> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
>>>> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
>>>> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
>>>> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
>>>> + OUTPUT=$(BPFTOOL_OUTPUT)/
>>>>
>>>> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
>>>> $(call msg,MKDIR,$@)
>>>> --
>>>> 2.25.1
>>>>
>>>
>>> .
>>>
>> .
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-07 14:08 [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool Pu Lehui
2022-07-07 19:12 ` Song Liu
@ 2022-07-08 22:42 ` Andrii Nakryiko
2022-07-09 7:31 ` Pu Lehui
1 sibling, 1 reply; 7+ messages in thread
From: Andrii Nakryiko @ 2022-07-08 22:42 UTC (permalink / raw)
To: Pu Lehui, Quentin Monnet
Cc: bpf, Networking, open list, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
John Fastabend, KP Singh
On Thu, Jul 7, 2022 at 6:37 AM Pu Lehui <pulehui@huawei.com> wrote:
>
> Currently, when cross compiling bpf samples, the host side
> cannot use arch-specific bpftool to generate vmlinux.h or
> skeleton. We need to compile the bpftool with the host
> compiler.
>
> Signed-off-by: Pu Lehui <pulehui@huawei.com>
> ---
samples/bpf use bpftool for vmlinux.h, skeleton, and static linking
only. All that is supported by lightweight "bootstrap" bpftool
version, so we can build just that. It will be faster, and bootstrap
version should be always host-native even during cross compilation.
See [0] for what I did in libbpf-bootstrap.
Also please cc Quention for bpftool-related changes. Thanks!
[0] https://github.com/libbpf/libbpf-bootstrap/commit/fc28424eb3f0e39cfb5959296b070389b9a8bd8f
> samples/bpf/Makefile | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
> index 5002a5b9a7da..fe54a8c8f312 100644
> --- a/samples/bpf/Makefile
> +++ b/samples/bpf/Makefile
> @@ -1,4 +1,5 @@
> # SPDX-License-Identifier: GPL-2.0
> +-include tools/scripts/Makefile.include
>
> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
> + OUTPUT=$(BPFTOOL_OUTPUT)/
>
> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
> $(call msg,MKDIR,$@)
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool
2022-07-08 22:42 ` Andrii Nakryiko
@ 2022-07-09 7:31 ` Pu Lehui
0 siblings, 0 replies; 7+ messages in thread
From: Pu Lehui @ 2022-07-09 7:31 UTC (permalink / raw)
To: Andrii Nakryiko
Cc: bpf, Networking, open list, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Quentin Monnet, Martin KaFai Lau, Song Liu,
Yonghong Song, John Fastabend, KP Singh
On 2022/7/9 6:42, Andrii Nakryiko wrote:
> On Thu, Jul 7, 2022 at 6:37 AM Pu Lehui <pulehui@huawei.com> wrote:
>>
>> Currently, when cross compiling bpf samples, the host side
>> cannot use arch-specific bpftool to generate vmlinux.h or
>> skeleton. We need to compile the bpftool with the host
>> compiler.
>>
>> Signed-off-by: Pu Lehui <pulehui@huawei.com>
>> ---
>
> samples/bpf use bpftool for vmlinux.h, skeleton, and static linking
> only. All that is supported by lightweight "bootstrap" bpftool
> version, so we can build just that. It will be faster, and bootstrap
> version should be always host-native even during cross compilation.
> See [0] for what I did in libbpf-bootstrap.
>
> Also please cc Quention for bpftool-related changes. Thanks!
>
> [0] https://github.com/libbpf/libbpf-bootstrap/commit/fc28424eb3f0e39cfb5959296b070389b9a8bd8f
>
so brilliant,we can take it to other places where rely on bpftool.
thanks.
>> samples/bpf/Makefile | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
>> index 5002a5b9a7da..fe54a8c8f312 100644
>> --- a/samples/bpf/Makefile
>> +++ b/samples/bpf/Makefile
>> @@ -1,4 +1,5 @@
>> # SPDX-License-Identifier: GPL-2.0
>> +-include tools/scripts/Makefile.include
>>
>> BPF_SAMPLES_PATH ?= $(abspath $(srctree)/$(src))
>> TOOLS_PATH := $(BPF_SAMPLES_PATH)/../../tools
>> @@ -283,11 +284,10 @@ $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(LIBBPF_OU
>> BPFTOOLDIR := $(TOOLS_PATH)/bpf/bpftool
>> BPFTOOL_OUTPUT := $(abspath $(BPF_SAMPLES_PATH))/bpftool
>> BPFTOOL := $(BPFTOOL_OUTPUT)/bpftool
>> -$(BPFTOOL): $(LIBBPF) $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>> +$(BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) | $(BPFTOOL_OUTPUT)
>> $(MAKE) -C $(BPFTOOLDIR) srctree=$(BPF_SAMPLES_PATH)/../../ \
>> - OUTPUT=$(BPFTOOL_OUTPUT)/ \
>> - LIBBPF_OUTPUT=$(LIBBPF_OUTPUT)/ \
>> - LIBBPF_DESTDIR=$(LIBBPF_DESTDIR)/
>> + ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
>> + OUTPUT=$(BPFTOOL_OUTPUT)/
>>
>> $(LIBBPF_OUTPUT) $(BPFTOOL_OUTPUT):
>> $(call msg,MKDIR,$@)
>> --
>> 2.25.1
>>
> .
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2022-07-09 7:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-07 14:08 [PATCH bpf-next] samples: bpf: Fix cross-compiling error about bpftool Pu Lehui
2022-07-07 19:12 ` Song Liu
2022-07-08 2:46 ` Pu Lehui
2022-07-08 3:12 ` Pu Lehui
2022-07-08 4:53 ` Song Liu
2022-07-08 22:42 ` Andrii Nakryiko
2022-07-09 7:31 ` Pu Lehui
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).