]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Do not fail EFI build with newer binutils
authorMichael Biebl <biebl@debian.org>
Wed, 22 Jun 2022 11:11:13 +0000 (13:11 +0200)
committerJan Janssen <medhefgo@web.de>
Wed, 13 Jul 2022 16:48:07 +0000 (18:48 +0200)
Newer binutils versions currently trigger the following warnings due to
a bug in gnu-efi

on arm64:
/usr/bin/ld.bfd: warning: src/boot/efi/systemd-bootaa64.elf has a LOAD segment with RWX permissions

on amd64:
/usr/bin/ld.bfd: warning: /usr/lib/crt0-efi-x86_64.o: missing .note.GNU-stack section implies executable stack

This results in a build failure due to --fatal-warnings.
Work around this issue by suppressing those warnings until gnu-efi has
been fixed.

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1013341

src/boot/efi/meson.build

index 52e2a71a7c8c11ed1669a004d8343db8802ceaae..0129fcd070264b0faa038336dccbce29b01e1a3e 100644 (file)
@@ -259,6 +259,13 @@ efi_ldflags = [
         '-z', 'nocombreloc',
         efi_crt0,
 ]
+
+possible_link_flags = [
+        '-Wl,--no-warn-execstack',
+        '-Wl,--no-warn-rwx-segments',
+]
+efi_ldflags += cc.get_supported_link_arguments(possible_link_flags)
+
 if efi_arch[1] in ['aarch64', 'arm', 'riscv64']
         efi_ldflags += ['-shared']
         # Aarch64, ARM32 and 64bit RISC-V don't have an EFI capable objcopy.