[PATCH bpf-next] selftests/bpf: Cross-compile bpftool

Björn Töpel bjorn at kernel.org
Tue Feb 14 01:44:30 PST 2023


Zachary Leaf <zachary.leaf at arm.com> writes:

> On 13/02/2023 14:30, Björn Töpel wrote:
>> Björn Töpel <bjorn at kernel.org> writes:
>> 
>>> From: Björn Töpel <bjorn at 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:
>>>
>>>  1. There is no native (cross-compilation target) build of bpftool
>>>  2. 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



More information about the linux-riscv mailing list