From 595343fb4c99c2679d347ef7c19debfbfed6342e Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Sun, 30 Sep 2018 15:41:41 -0400 Subject: [PATCH] meson: use an array option for efi-cc Fixes: https://github.com/systemd/systemd/issues/10211 --- meson_options.txt | 2 +- src/boot/efi/meson.build | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/meson_options.txt b/meson_options.txt index 92e8fadcc5..0407b97b5b 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -278,7 +278,7 @@ 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', +option('efi-cc', type : 'array', description : 'the compiler to use for EFI modules') option('efi-ld', type : 'string', description : 'the linker to use for EFI modules') diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build index 39fbf7ec11..d234743f66 100644 --- a/src/boot/efi/meson.build +++ b/src/boot/efi/meson.build @@ -34,8 +34,8 @@ 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()) + if efi_cc.length() == 0 + efi_cc = cc.cmd_array() endif efi_ld = get_option('efi-ld') if efi_ld == '' @@ -57,7 +57,7 @@ if conf.get('ENABLE_EFI') == 1 and get_option('gnu-efi') != 'false' efi_libdir = get_option('efi-libdir') if efi_libdir == '' - cmd = 'cd /usr/lib/$(@0@ -print-multi-os-directory) && pwd'.format(efi_cc) + cmd = 'cd /usr/lib/$(@0@ -print-multi-os-directory) && pwd'.format(' '.join(efi_cc)) ret = run_command('sh', '-c', cmd) if ret.returncode() == 0 efi_libdir = ret.stdout().strip() @@ -149,7 +149,7 @@ if have_gnu_efi o_file = custom_target(file + '.o', input : file, output : file + '.o', - command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@'] + command : efi_cc + ['-c', '@INPUT@', '-o', '@OUTPUT@'] + compile_args, depend_files : efi_headers) if (common_sources + systemd_boot_sources).contains(file) @@ -160,7 +160,7 @@ if have_gnu_efi endif endforeach - libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip() + libgcc_file_name = run_command(efi_cc + ['-print-libgcc-file-name']).stdout().strip() systemd_boot_efi_name = 'systemd-boot@0@.efi'.format(EFI_MACHINE_TYPE_NAME) stub_efi_name = 'linux@0@.efi.stub'.format(EFI_MACHINE_TYPE_NAME) no_undefined_symbols = find_program('no-undefined-symbols.sh')