aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-bsp
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2021-11-08 10:50:24 +0000
committerKhem Raj <raj.khem@gmail.com>2021-11-09 06:53:02 -0800
commit2a46c9947c03c4dddc672e4920e41caa32b6a322 (patch)
tree8c53d9e5bc4206a6e92b57d2f517b8eab59d8476 /meta-oe/recipes-bsp
parent19de3586bee6ff6b06d0bf280760deddc41e3878 (diff)
downloadmeta-openembedded-2a46c9947c03c4dddc672e4920e41caa32b6a322.tar.gz
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>
Diffstat (limited to 'meta-oe/recipes-bsp')
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch53
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb34
2 files changed, 87 insertions, 0 deletions
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch b/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
new file mode 100644
index 0000000000..ac345f2752
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
@@ -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')
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb b/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb
new file mode 100644
index 0000000000..2165b42293
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.1.bb
@@ -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"