systemd: bpf-framework: 'propagate' the '--sysroot=' for crosscompilation

The eBPFs are pre-compiled during the systemd-build with a different
compiler than the cross-compiler used to build systemd itself.

This is either a 'clang-native' or a gcc (bpf-unknown-none) which do
not see the BUILD_CFLAGS, that point to the correct include search
patch. To address this have systemd's meson.build "propagate" the
--system from the C_FLAGS into the BPF compiler call.

(From OE-Core rev: 3a4d5b06f8e4ebf7b4738a99fe6b352bb03a64ae)

Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Johannes Schneider
2024-06-20 13:51:26 +02:00
committed by Richard Purdie
parent 182e599dbc
commit a9138c1f51
2 changed files with 32 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
From 7463b382bcaf26aacc60b73f98f0262aa41db3ee Mon Sep 17 00:00:00 2001
From: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Date: Thu, 20 Jun 2024 12:32:18 +0200
Subject: [PATCH] meson: bpf: propagate 'sysroot' for cross compilation
During cross-compilation of systemd, the compiler used to build the bpf's needs
to be pointed at the correct include searchpath. Which 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}"
Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/33427]
Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
---
meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/meson.build b/meson.build
index 187e7b216d..15df058ab6 100644
--- a/meson.build
+++ b/meson.build
@@ -1691,6 +1691,7 @@ if conf.get('BPF_FRAMEWORK') == 1
'-ffile-prefix-map=',
'-fdebug-prefix-map=',
'-fmacro-prefix-map=',
+ '--sysroot=',
]
foreach opt : c_args
--
2.34.1

View File

@@ -28,6 +28,7 @@ SRC_URI += " \
file://systemd-pager.sh \
file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
file://0008-implment-systemd-sysv-install-for-OE.patch \
file://0023-meson-bpf-propagate-sysroot-for-cross-compilation.patch \
"
# patches needed by musl