meson: Fix gnu-efi detection for clang
authorJan Janssen <medhefgo@web.de>
Sat, 11 Dec 2021 12:47:21 +0000 (13:47 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 11 Dec 2021 19:31:41 +0000 (04:31 +0900)
The gnu-efi headers emit some warnings in clang when not compiled with
-ffreestanding. This is normally not an issue for has_header_symbol()
unless meson is run with CFLAGS="-Werror". Note that this differs
from the --werror option, which does not get passed to clang.

Work around this by adding some compile args to the has_header_symbol()
invocation.

src/boot/efi/meson.build

index d92fe0e5ec9e17320a703ce58e779b09c4e519f9..66d660aad5743c8a51416ae6d6b322a6af56e488 100644 (file)
@@ -33,6 +33,7 @@ if efi_arch.length() == 0
 endif
 
 if not cc.has_header_symbol('efi.h', 'EFI_IMAGE_MACHINE_X64',
+                args: ['-nostdlib', '-ffreestanding', '-fshort-wchar'],
                 include_directories: include_directories(efi_incdir, efi_incdir / efi_arch[1]))
 
         if get_option('gnu-efi') == 'true'