meson: bpf: propagate 'sysroot' during cross compilation #33427
Merged
+1
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To be able to use
resource-control
features like RestrictNetworkInterfaces= a set of corresponding eBPFs need to be compiled.When targeting an embedded platform, dependencies like
libbpf
(and thebpftool
) are compiled separately and place their headers/libraries into a common sysroot which the cross-compiler used to build target binaries - including systemd - usually knows.But during cross-compilation of systemd, the compiler used to build the eBPF's is a different one ('clang-native' or a gcc: bpf-unknown-none ), and needs to be pointed at the correct include search-path, where the libbpf headers reside.
This can be done by passing the corresponding directory in through the cflags; for example in yocto/bitbake this would work:
CFLAGS += "--sysroot=${STAGING_DIR_TARGET}"
, and havemeson.build
"propagate" this setting to the eBPF compiler.related open-embedded submissions:
https://lists.openembedded.org/g/openembedded-core/message/200948
https://lists.openembedded.org/g/openembedded-core/message/200949