diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-01-02 15:40:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-02 15:40:46 +0100 |
commit | 3c80c7bacf6d2a3add8f48b0d094f40c29079a14 (patch) | |
tree | 8f9bc69859f58ec3a670bca10f0ae7b29c289248 | |
parent | boot: Add disabled secure boot mode without setup mode (diff) | |
parent | meson: Get objcopy location from compiler (diff) | |
download | systemd-3c80c7bacf6d2a3add8f48b0d094f40c29079a14.tar.xz systemd-3c80c7bacf6d2a3add8f48b0d094f40c29079a14.zip |
Merge pull request #21928 from medhefgo/boot-meson
meson: Boot
-rw-r--r-- | meson_options.txt | 2 | ||||
-rw-r--r-- | src/boot/efi/meson.build | 16 |
2 files changed, 5 insertions, 13 deletions
diff --git a/meson_options.txt b/meson_options.txt index 216eb7c118..fa8c0b5e3f 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -418,8 +418,6 @@ 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 : 'array', - description : 'the compiler to use for EFI modules') # Note that LLD does not support PE/COFF relocations # https://lists.llvm.org/pipermail/llvm-dev/2021-March/149234.html option('efi-ld', type : 'combo', choices : ['auto', 'bfd', 'gold'], diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build index af45c013a6..ab970001e4 100644 --- a/src/boot/efi/meson.build +++ b/src/boot/efi/meson.build @@ -43,11 +43,7 @@ if not cc.has_header_symbol('efi.h', 'EFI_IMAGE_MACHINE_X64', subdir_done() endif -objcopy = find_program('objcopy') -efi_cc = get_option('efi-cc') -if efi_cc.length() == 0 - efi_cc = cc.cmd_array() -endif +objcopy = run_command(cc.cmd_array(), '-print-prog-name=objcopy', check: true).stdout().strip() efi_ld = get_option('efi-ld') if efi_ld == 'auto' @@ -62,7 +58,7 @@ efi_libdir = '' foreach dir : [get_option('efi-libdir'), '/usr/lib/gnuefi' / efi_arch[0], run_command('realpath', '-e', - '/usr/lib' / run_command(efi_cc, '-print-multi-os-directory').stdout().strip()).stdout().strip()] + '/usr/lib' / run_command(cc.cmd_array(), '-print-multi-os-directory').stdout().strip()).stdout().strip()] if dir != '' and fs.is_dir(dir) efi_libdir = dir break @@ -275,15 +271,13 @@ if run_command('grep', '-q', '__CTOR_LIST__', efi_lds).returncode() == 0 ] endif -efi_cc_version = run_command(efi_cc, '--version').stdout().split('\n')[0] -if efi_cc_version.contains('clang') and efi_cc_version.split('.')[0].split(' ')[-1].to_int() <= 10 +if cc.get_id() == 'clang' and cc.version().split('.')[0].to_int() <= 10 # clang <= 10 doesn't pass -T to the linker and then even complains about it being unused efi_ldflags += ['-Wl,-T,' + efi_lds, '-Wno-unused-command-line-argument'] endif summary({ 'EFI machine type' : efi_arch[0], - 'EFI CC' : '@0@'.format(' '.join(efi_cc)), 'EFI LD' : efi_ld, 'EFI lds' : efi_lds, 'EFI crt0' : efi_crt0, @@ -371,7 +365,7 @@ foreach file : fundamental_source_paths + common_sources + systemd_boot_sources o_file = custom_target(file.split('/')[-1] + '.o', input : file, output : file.split('/')[-1] + '.o', - command : [efi_cc, '-c', '@INPUT@', '-o', '@OUTPUT@', efi_cflags], + command : [cc.cmd_array(), '-c', '@INPUT@', '-o', '@OUTPUT@', efi_cflags], depend_files : efi_headers + fundamental_headers) if (fundamental_source_paths + common_sources + systemd_boot_sources).contains(file) systemd_boot_objects += o_file @@ -392,7 +386,7 @@ foreach tuple : [['systemd_boot.so', systemd_boot_efi_name, systemd_boot_objects tuple[0], input : tuple[2], output : tuple[0], - command : [efi_cc, '-o', '@OUTPUT@', efi_ldflags, efi_cflags, tuple[2], '-lefi', '-lgnuefi', '-lgcc'], + command : [cc.cmd_array(), '-o', '@OUTPUT@', efi_ldflags, efi_cflags, tuple[2], '-lefi', '-lgnuefi', '-lgcc'], install : tuple[3], install_dir : bootlibdir) |