]> git.pld-linux.org Git - packages/systemd.git/blob - efi-linker-flags.patch
extract container/vm tools to subpackage
[packages/systemd.git] / efi-linker-flags.patch
1 From bddad6089e7d1a19ccf56b612b748232f46461b6 Mon Sep 17 00:00:00 2001
2 From: Jan Janssen <medhefgo@web.de>
3 Date: Tue, 9 Aug 2022 10:32:41 +0200
4 Subject: [PATCH] meson: Test correct efi linker for supported args
5
6 Fixes: #24241
7 ---
8  src/boot/efi/meson.build | 18 +++++++++++++-----
9  1 file changed, 13 insertions(+), 5 deletions(-)
10
11 diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
12 index 127b4e17a3a7..95785dfd5d83 100644
13 --- a/src/boot/efi/meson.build
14 +++ b/src/boot/efi/meson.build
15 @@ -266,11 +266,19 @@ efi_ldflags = [
16          efi_crt0,
17  ]
18  
19 -possible_link_flags = [
20 -        '-Wl,--no-warn-execstack',
21 -        '-Wl,--no-warn-rwx-segments',
22 -]
23 -efi_ldflags += cc.get_supported_link_arguments(possible_link_flags)
24 +foreach arg : ['-Wl,--no-warn-execstack',
25 +               '-Wl,--no-warn-rwx-segments']
26 +        # We need to check the correct linker for supported args. This is what
27 +        # cc.has_multi_link_arguments() is for, but it helpfully overrides our
28 +        # choice of linker by putting its own -fuse-ld= arg after ours.
29 +        if run_command('bash', '-c',
30 +                       'exec "$@" -x c -o/dev/null <(echo "int main(void){return 0;}")' +
31 +                       ' -fuse-ld=' + efi_ld + ' -Wl,--fatal-warnings ' + arg,
32 +                       'bash', cc.cmd_array(),
33 +                       check : false).returncode() == 0
34 +                efi_ldflags += arg
35 +        endif
36 +endforeach
37  
38  if efi_arch[1] in ['aarch64', 'arm', 'riscv64']
39          efi_ldflags += ['-shared']
This page took 0.065812 seconds and 3 git commands to generate.