mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-02-08 05:57:26 +03:00
meson: Test correct efi linker for supported args
Fixes: #24241 (cherry picked from commit 6a941db798e3c5d896f6732afb4e6e482d708900) Closes https://github.com/systemd/systemd-stable/issues/216 (cherry picked from commit b3dd66f32beb1e2daea31c73ce4c3b4c4ad844fb)
This commit is contained in:
parent
3733943f5a
commit
658013a7f7
@ -247,11 +247,19 @@ efi_ldflags = [
|
|||||||
efi_crt0,
|
efi_crt0,
|
||||||
]
|
]
|
||||||
|
|
||||||
possible_link_flags = [
|
foreach arg : ['-Wl,--no-warn-execstack',
|
||||||
'-Wl,--no-warn-execstack',
|
'-Wl,--no-warn-rwx-segments']
|
||||||
'-Wl,--no-warn-rwx-segments',
|
# We need to check the correct linker for supported args. This is what
|
||||||
]
|
# cc.has_multi_link_arguments() is for, but it helpfully overrides our
|
||||||
efi_ldflags += cc.get_supported_link_arguments(possible_link_flags)
|
# choice of linker by putting its own -fuse-ld= arg after ours.
|
||||||
|
if run_command('bash', '-c',
|
||||||
|
'exec "$@" -x c -o/dev/null <(echo "int main(void){return 0;}")' +
|
||||||
|
' -fuse-ld=' + efi_ld + ' -Wl,--fatal-warnings ' + arg,
|
||||||
|
'bash', cc.cmd_array(),
|
||||||
|
check : false).returncode() == 0
|
||||||
|
efi_ldflags += arg
|
||||||
|
endif
|
||||||
|
endforeach
|
||||||
|
|
||||||
if efi_arch[1] in ['aarch64', 'arm', 'riscv64']
|
if efi_arch[1] in ['aarch64', 'arm', 'riscv64']
|
||||||
efi_ldflags += ['-shared']
|
efi_ldflags += ['-shared']
|
||||||
|
Loading…
x
Reference in New Issue
Block a user