commit:     0d124f17782d4b6a9e07a2a1bebc5f723e2efac6
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 27 22:53:10 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jul 27 22:54:48 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0d124f17

sys-apps/systemd: fix DT_RELR build w/ USE=boot

Closes: https://bugs.gentoo.org/910570
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/systemd/files/systemd-254-dt_relr.patch | 26 ++++++++++++++++++++++++
 sys-apps/systemd/systemd-254_rc3.ebuild          |  1 +
 2 files changed, 27 insertions(+)

diff --git a/sys-apps/systemd/files/systemd-254-dt_relr.patch 
b/sys-apps/systemd/files/systemd-254-dt_relr.patch
new file mode 100644
index 000000000000..9adfc11c1dd3
--- /dev/null
+++ b/sys-apps/systemd/files/systemd-254-dt_relr.patch
@@ -0,0 +1,26 @@
+https://bugs.gentoo.org/910570
+https://github.com/systemd/systemd/issues/28520
+https://github.com/systemd/systemd/commit/eff91e2f3863f9e176b383e5c54741c64ca7a636
+
+From eff91e2f3863f9e176b383e5c54741c64ca7a636 Mon Sep 17 00:00:00 2001
+From: Luca Boccassi <[email protected]>
+Date: Wed, 26 Jul 2023 11:29:57 +0100
+Subject: [PATCH] efi: link with -z nopack-relative-relocs
+
+elf2efi.py cannot handle DT_RELR relocations, so disable it
+if we can
+
+Fixes https://github.com/systemd/systemd/issues/28520
+--- a/src/boot/efi/meson.build
++++ b/src/boot/efi/meson.build
+@@ -174,6 +174,10 @@ efi_c_ld_args = [
+         '-T' + elf2efi_lds,
+ ]
+ 
++# On CentOS 8 the nopack-relative-relocs linker flag is not supported, and we 
get:
++#   /usr/bin/ld.bfd: warning: -z nopack-relative-relocs ignored
++efi_c_ld_args += 
cc.get_supported_link_arguments('-Wl,-z,nopack-relative-relocs')
++
+ # efi_c_args is explicitly passed to targets so that they can override 
distro-provided flags
+ # that should not be used for EFI binaries.
+ efi_disabled_c_args = cc.get_supported_arguments(

diff --git a/sys-apps/systemd/systemd-254_rc3.ebuild 
b/sys-apps/systemd/systemd-254_rc3.ebuild
index 494249a2edd6..1333d2cd88f7 100644
--- a/sys-apps/systemd/systemd-254_rc3.ebuild
+++ b/sys-apps/systemd/systemd-254_rc3.ebuild
@@ -241,6 +241,7 @@ src_unpack() {
 src_prepare() {
        local PATCHES=(
                "${FILESDIR}/systemd-253-initrd-generators.patch"
+               "${FILESDIR}/systemd-254-dt_relr.patch"
        )
 
        if ! use vanilla; then

Reply via email to