On 13/02/2023 14:30, Björn Töpel wrote:
Björn Töpel bjorn@kernel.org writes:
From: Björn Töpel bjorn@rivosinc.com
When the BPF selftests are cross-compiled, only the a host version of bpftool is built. This version of bpftool is used to generate various intermediates, e.g., skeletons.
The test runners are also using bpftool. The Makefile will symlink bpftool from the selftest/bpf root, where the test runners will look for the tool:
| ... | $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool \ | $(OUTPUT)/$(if $2,$2/)bpftool
There are two issues for cross-compilation builds:
- There is no native (cross-compilation target) build of bpftool
- The bootstrap variant of bpftool is never cross-compiled (by design)
Make sure that a native/cross-compiled version of bpftool is built, and if CROSS_COMPILE is set, symlink to the native/non-bootstrap version.
...and the grand master plan is to add BPF CI support for riscv64, where this patch a prerequisite to [1]. I would suspect that other platforms might benefit from cross-compilation builds as well.
Similar use case. There also seems to be a lot of issues building these tests out of tree.
I have some potential fixes up to 6.1 but linux-next seems to have introduced a few more issues on top.
Zachary Leaf zachary.leaf@arm.com writes:
On 13/02/2023 14:30, Björn Töpel wrote:
Björn Töpel bjorn@kernel.org writes:
From: Björn Töpel bjorn@rivosinc.com
When the BPF selftests are cross-compiled, only the a host version of bpftool is built. This version of bpftool is used to generate various intermediates, e.g., skeletons.
The test runners are also using bpftool. The Makefile will symlink bpftool from the selftest/bpf root, where the test runners will look for the tool:
| ... | $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/bootstrap/bpftool \ | $(OUTPUT)/$(if $2,$2/)bpftool
There are two issues for cross-compilation builds:
- There is no native (cross-compilation target) build of bpftool
- The bootstrap variant of bpftool is never cross-compiled (by design)
Make sure that a native/cross-compiled version of bpftool is built, and if CROSS_COMPILE is set, symlink to the native/non-bootstrap version.
...and the grand master plan is to add BPF CI support for riscv64, where this patch a prerequisite to [1]. I would suspect that other platforms might benefit from cross-compilation builds as well.
Similar use case. There also seems to be a lot of issues building these tests out of tree.
I have some potential fixes up to 6.1 but linux-next seems to have introduced a few more issues on top.
Ah, yes. FWIW, the BPF CI builds the selftests *in-tree*, so with this patch (and my PRs) the BPF CI is capable of cross-compiling.
Björn
linux-morello@op-lists.linaro.org