diff options
author | Jan Janssen <medhefgo@web.de> | 2021-12-11 11:29:30 +0100 |
---|---|---|
committer | Jan Janssen <medhefgo@web.de> | 2021-12-11 11:29:30 +0100 |
commit | 1ad2c76d5da0bb4c05c3deb3eb1deda15fb2cd29 (patch) | |
tree | 4a709b4cbee831ff6f3cecff44aa2e687f03f976 /src/boot | |
parent | ci: Build test with different linkers (diff) | |
download | systemd-1ad2c76d5da0bb4c05c3deb3eb1deda15fb2cd29.tar.xz systemd-1ad2c76d5da0bb4c05c3deb3eb1deda15fb2cd29.zip |
meson: Auto detect efi-ld
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/efi/meson.build | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build index c095512bfb..d92fe0e5ec 100644 --- a/src/boot/efi/meson.build +++ b/src/boot/efi/meson.build @@ -48,6 +48,15 @@ if efi_cc.length() == 0 efi_cc = cc.cmd_array() endif +efi_ld = get_option('efi-ld') +if efi_ld == 'auto' + efi_ld = cc.get_linker_id().split('.')[1] + if efi_ld not in ['bfd', 'gold'] + warning('Not using @0@ as efi-ld, falling back to bfd'.format(efi_ld)) + efi_ld = 'bfd' + endif +endif + efi_libdir = '' foreach dir : [get_option('efi-libdir'), '/usr/lib/gnuefi' / efi_arch[0], @@ -256,7 +265,7 @@ foreach arg : get_option('c_args') endforeach efi_ldflags = [ - '-fuse-ld=' + get_option('efi-ld'), + '-fuse-ld=' + efi_ld, '-L', efi_libdir, '-nostdlib', '-T', efi_lds, @@ -276,7 +285,7 @@ if efi_arch[1] in ['aarch64', 'arm', 'riscv64'] efi_format = ['-O', 'binary'] else efi_ldflags += ['-pie'] - if get_option('efi-ld') == 'bfd' + if efi_ld == 'bfd' efi_ldflags += '-Wl,--no-dynamic-linker' endif efi_format = ['--target=efi-app-@0@'.format(efi_arch[1])] |