summaryrefslogtreecommitdiff
path: root/src/boot/efi
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2023-03-03 16:08:41 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2023-03-05 19:11:58 +0000
commitefcde781de4ebf7d15410b5d6cb7de3a8c67f6aa (patch)
treeca620522ce95e206e02d3d03d213a987106288aa /src/boot/efi
parentae9f36397f45dff8e2181c6af5f763e51a7c9639 (diff)
downloadsystemd-efcde781de4ebf7d15410b5d6cb7de3a8c67f6aa.tar.gz
meson: adjust for removal of gnu-efi compat
gnu-efi-3.0.11-13.fc39 in Fedora dropped the old include paths.
Diffstat (limited to 'src/boot/efi')
-rw-r--r--src/boot/efi/meson.build24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
index bf595c3390..ea55f1c9fa 100644
--- a/src/boot/efi/meson.build
+++ b/src/boot/efi/meson.build
@@ -19,7 +19,7 @@ elif efi_arch == 'x86_64' and '-m32' in get_option('efi-cflags')
efi_arch = 'x86'
endif
efi_arch = {
- # host_cc_arch: [efi_arch (see Table 3-2 in UEFI spec), gnu_efi_inc_arch]
+ # host_cc_arch: [efi_arch (see Table 3-2 in UEFI spec), obsolete gnu_efi_inc_arch]
'x86': ['ia32', 'ia32'],
'x86_64': ['x64', 'x86_64'],
'arm': ['arm', 'arm'],
@@ -28,14 +28,17 @@ efi_arch = {
}.get(efi_arch, [])
efi_incdir = get_option('efi-includedir')
-if efi_arch.length() > 0 and not cc.has_header(
- '@0@/@1@/efibind.h'.format(efi_incdir, efi_arch[1]),
- args: get_option('efi-cflags'))
-
- efi_arch = []
-endif
+found = false
+foreach efi_arch_candidate : efi_arch
+ efi_archdir = efi_incdir / efi_arch_candidate
+ if cc.has_header(efi_archdir / 'efibind.h',
+ args: get_option('efi-cflags'))
+ found = true
+ break
+ endif
+endforeach
-if efi_arch.length() == 0
+if not found
if get_option('gnu-efi') == 'true'
error('gnu-efi support requested, but headers not found or efi arch is unknown')
endif
@@ -45,7 +48,8 @@ endif
if not cc.has_header_symbol('efi.h', 'EFI_IMAGE_MACHINE_X64',
args: ['-nostdlib', '-ffreestanding', '-fshort-wchar'] + get_option('efi-cflags'),
- include_directories: include_directories(efi_incdir, efi_incdir / efi_arch[1]))
+ include_directories: include_directories(efi_incdir,
+ efi_archdir))
if get_option('gnu-efi') == 'true'
error('gnu-efi support requested, but found headers are too old (3.0.5+ required)')
@@ -313,7 +317,7 @@ summary({
'EFI LD' : efi_ld,
'EFI lds' : efi_lds,
'EFI crt0' : efi_crt0,
- 'EFI include directory' : efi_incdir},
+ 'EFI include directory' : efi_archdir},
section : 'Extensible Firmware Interface')
if efi_conf.get('SBAT_DISTRO', '') != ''