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
