mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-04 14:39:54 +00:00
fwupd-efi: add new recipe
This is the EFI executable that is used by fwupd when building EFI capsules. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
Change the efi-cc argument to take an array, so that we can pass compiler flags
|
||||
such as --sysroot.
|
||||
|
||||
In the long term changing the fwupd-efi build to use the standard Meson
|
||||
CC/LD/etc would be the preferred fix.
|
||||
|
||||
Upstream-Status: Inappropriate [better fix in progress]
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
|
||||
diff --git a/efi/generate_sbat.py b/efi/generate_sbat.py
|
||||
index e42b365..4831a48 100755
|
||||
--- a/efi/generate_sbat.py
|
||||
+++ b/efi/generate_sbat.py
|
||||
@@ -7,6 +7,7 @@
|
||||
#
|
||||
# pylint: disable=missing-docstring, invalid-name
|
||||
|
||||
+import shlex
|
||||
import subprocess
|
||||
import sys
|
||||
import argparse
|
||||
@@ -19,7 +20,7 @@ def _generate_sbat(args):
|
||||
FWUPD_URL = "https://github.com/fwupd/fwupd"
|
||||
|
||||
subprocess.run(
|
||||
- [args.cc, "-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
|
||||
+ shlex.split(args.cc) + ["-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
|
||||
)
|
||||
|
||||
# not specified
|
||||
diff --git a/efi/meson.build b/efi/meson.build
|
||||
index 68ea4aa..dcf0d43 100644
|
||||
--- a/efi/meson.build
|
||||
+++ b/efi/meson.build
|
||||
@@ -184,7 +184,7 @@ o_file5 = custom_target('fwup-sbat.o',
|
||||
command : [
|
||||
join_paths(meson.current_source_dir(), 'generate_sbat.py'),
|
||||
'@OUTPUT@',
|
||||
- '--cc', efi_cc,
|
||||
+ '--cc', ' '.join(efi_cc),
|
||||
'--objcopy', efi_objcopy,
|
||||
'--project-name', meson.project_name(),
|
||||
'--project-version', meson.project_version(),
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index d869cd2..17ef7fb 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -1,4 +1,4 @@
|
||||
-option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules')
|
||||
+option('efi-cc', type : 'array', value : ['gcc'], description : 'the compiler to use for EFI modules')
|
||||
option('efi-ld', type : 'string', value : 'ld', description : 'the linker to use for EFI modules')
|
||||
option('efi-objcopy', type : 'string', value : 'objcopy', description : 'the objcopy utility to use for EFI modules')
|
||||
option('efi-libdir', type : 'string', description : 'path to the EFI lib directory')
|
||||
@@ -0,0 +1,34 @@
|
||||
SUMMARY = "EFI executable for fwupd"
|
||||
LICENSE = "LGPL-2.1+"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
|
||||
|
||||
SRC_URI = "git://github.com/fwupd/fwupd-efi;protocol=https;branch=main \
|
||||
file://cc.patch"
|
||||
SRCREV = "fee1b8f6473cb403b8ae7a56961ba0557e3f3efa"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS = "gnu-efi"
|
||||
|
||||
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
|
||||
|
||||
inherit meson
|
||||
|
||||
# These should be configured as needed
|
||||
SBAT_DISTRO_ID ?= "${DISTRO}"
|
||||
SBAT_DISTRO_SUMMARY ?= "${DISTRO_NAME}"
|
||||
SBAT_DISTRO_URL ?= ""
|
||||
|
||||
EXTRA_OEMESON += "-Defi-cc="${@meson_array('CC', d)}" \
|
||||
-Defi-ld='${HOST_PREFIX}ld' \
|
||||
-Defi-objcopy='${OBJCOPY}' \
|
||||
-Defi-includedir=${STAGING_INCDIR}/efi \
|
||||
-Defi-libdir=${STAGING_LIBDIR} \
|
||||
-Defi_sbat_distro_id='${SBAT_DISTRO_ID}' \
|
||||
-Defi_sbat_distro_summary='${SBAT_DISTRO_SUMMARY}' \
|
||||
-Defi_sbat_distro_url='${SBAT_DISTRO_URL}' \
|
||||
-Defi_sbat_distro_pkgname='${PN}' \
|
||||
-Defi_sbat_distro_version='${PV}'\
|
||||
"
|
||||
|
||||
# The compile assumes GCC at present
|
||||
TOOLCHAIN = "gcc"
|
||||
Reference in New Issue
Block a user