From 295e30eac69e152778246c7271b72f7e8498a40a Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Wed, 7 May 2025 15:26:34 -0400 Subject: [PATCH] systemd: disable linker GCS warning on aarch64 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit openssl has some assembler code that has PAC and BTI hints but not GCS. The systemd recipe then links to libcrypto from openssl with GCS enabled (as that is a distro-wide setting) and it - correctly - warns that it is being told to use GCS but one of the inputs does not have GCS. This would not be a problem but systemd also links with —fatal-warnings, so the build explodes. libcrypto.so: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. | collect2: error: ld returned 1 exit status Signed-off-by: Trevor Woerner Signed-off-by: Richard Purdie --- meta/recipes-core/systemd/systemd_257.5.bb | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-core/systemd/systemd_257.5.bb b/meta/recipes-core/systemd/systemd_257.5.bb index acf97517a94..995b55580e4 100644 --- a/meta/recipes-core/systemd/systemd_257.5.bb +++ b/meta/recipes-core/systemd/systemd_257.5.bb @@ -240,6 +240,7 @@ RESOLV_CONF ??= "" # bpf-framework: pass the recipe-sysroot to the compiler used to build # the eBPFs, so that it can find needed system includes in there. CFLAGS:append = " --sysroot=${STAGING_DIR_TARGET}" +LDFLAGS:append:aarch64 = " ${@bb.utils.contains('PACKAGECONFIG', 'openssl', '-Wl,-z,gcs-report-dynamic=none', '', d)}" EXTRA_OEMESON += "-Dnobody-user=nobody \ -Dnobody-group=nogroup \ -- 2.47.3