From 527413ec243564a89ffaad6368d446de44415970 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 27 Feb 2018 21:42:23 -0800
Subject: [PATCH] Fix to run efi_cc and efi_ld correctly when cross-compiling

When cross-compiling, efi_cc and efi_ld may take the form of
'xxx-gcc --sysroot=xxx', and this would cause run_command and
the alike fail.

Fix to split them to make commands run correctly.

Upstream-Status: Pending

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 src/boot/efi/meson.build | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
index 992a3ba4c..9f9ec4911 100644
--- a/src/boot/efi/meson.build
+++ b/src/boot/efi/meson.build
@@ -157,7 +157,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.split() + ['-c', '@INPUT@', '-o', '@OUTPUT@']
                                                  + compile_args,
                                        depend_files : efi_headers)
                 if (common_sources + systemd_boot_sources).contains(file)
@@ -168,7 +168,17 @@ if have_gnu_efi
                 endif
         endforeach
 
-        libgcc_file_name = run_command(efi_cc, '-print-libgcc-file-name').stdout().strip()
+        find_libgcc_cmd_all = efi_cc + ' -print-libgcc-file-name'
+        find_libgcc_cmd = find_libgcc_cmd_all.split()[0]
+        find_libgcc_args = []
+        cmd_args_all = find_libgcc_cmd_all.split()
+        foreach arg : cmd_args_all
+                if arg != find_libgcc_cmd
+                        find_libgcc_args += arg
+                endif
+        endforeach
+
+        libgcc_file_name = run_command(find_libgcc_cmd, find_libgcc_args).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')
@@ -179,7 +189,7 @@ if have_gnu_efi
                         tuple[0],
                         input : tuple[2],
                         output : tuple[0],
-                        command : [efi_ld, '-o', '@OUTPUT@'] +
+                        command : efi_ld.split() + ['-o', '@OUTPUT@'] +
                                   efi_ldflags + tuple[2] +
                                   ['-lefi', '-lgnuefi', libgcc_file_name])
 
-- 
2.13.0

