meson: use the host architecture compiler/linker for src/boot/efi

cross building systemd to arm64 presently fails, because the build
system uses plain gcc and plain ld (build architecture compiler and
linker respectively) for building src/boot/efi. These values come from
the efi-cc and efi-ld options respectively. It rather should be using
host tools here.

Fixes: b710072da4 ("add support for building efi modules")
This commit is contained in:
Helmut Grohne 2018-09-27 17:17:37 +02:00 committed by Zbigniew Jędrzejewski-Szmek
parent 22041e475f
commit df7cacae69
2 changed files with 8 additions and 2 deletions

View File

@ -278,9 +278,9 @@ option('dbus', type : 'combo', choices : ['auto', 'true', 'false'],
option('gnu-efi', type : 'combo', choices : ['auto', 'true', 'false'],
description : 'gnu-efi support for sd-boot')
option('efi-cc', type : 'string', value : 'gcc',
option('efi-cc', type : 'string',
description : 'the compiler to use for EFI modules')
option('efi-ld', type : 'string', value : 'ld',
option('efi-ld', type : 'string',
description : 'the linker to use for EFI modules')
option('efi-libdir', type : 'string',
description : 'path to the EFI lib directory')

View File

@ -34,7 +34,13 @@ stub_sources = '''
if conf.get('ENABLE_EFI') == 1 and get_option('gnu-efi') != 'false'
efi_cc = get_option('efi-cc')
if efi_cc == ''
efi_cc = ' '.join(cc.cmd_array())
endif
efi_ld = get_option('efi-ld')
if efi_ld == ''
efi_ld = find_program('ld', required: true)
endif
efi_incdir = get_option('efi-includedir')
gnu_efi_path_arch = ''