1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 05:09:24 +00:00

efibootmgr: update 17 -> 18

(From OE-Core rev: 1f96793eb395db2351e1062aa579e21897dc69c1)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2022-07-20 10:43:54 +02:00
committed by Richard Purdie
parent 3fa18ba264
commit 157db777fc
4 changed files with 2 additions and 167 deletions
@@ -1,31 +0,0 @@
From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Wed, 13 Jun 2018 09:41:01 -0400
Subject: [PATCH] remove extra decl
Signed-off-by: Peter Jones <pjones@redhat.com>
Upstream-Status: Backport [git://github.com/rhinstaller/efibootmgr.git]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
src/efibootmgr.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/efibootmgr.c b/src/efibootmgr.c
index de38f01..4e1a680 100644
--- a/src/efibootmgr.c
+++ b/src/efibootmgr.c
@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv)
"invalid numeric value %s\n",
optarg);
}
- /* XXX efivar-36 accidentally doesn't have a public
- * header for this */
- extern int efi_set_verbose(int verbosity, FILE *errlog);
efi_set_verbose(opts.verbose - 2, stderr);
break;
case 'V':
--
2.7.4
@@ -1,47 +0,0 @@
From 07f080184d067c1ebc3fec1b53dd4a06d1a2566a Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Mon, 17 Jan 2022 23:24:34 +0100
Subject: [PATCH] src: make compatible with efivar 38
Upstream-Status: Backport
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
src/efibootdump.c | 2 +-
src/efibootmgr.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/efibootdump.c b/src/efibootdump.c
index eceffd6..09bd76e 100644
--- a/src/efibootdump.c
+++ b/src/efibootdump.c
@@ -69,7 +69,7 @@ print_boot_entry(efi_load_option *loadopt, size_t data_size)
text_path = alloca(text_path_len);
if (!text_path)
error(100, "Couldn't allocate memory");
- rc = efidp_format_device_path(text_path, text_path_len,
+ rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
dp, pathlen);
if (rc < 0) {
printf("<bad device path>");
diff --git a/src/efibootmgr.c b/src/efibootmgr.c
index 4e1a680..b77b1fb 100644
--- a/src/efibootmgr.c
+++ b/src/efibootmgr.c
@@ -949,7 +949,7 @@ show_vars(const char *prefix)
pathlen = efi_loadopt_pathlen(load_option,
boot->data_size);
dp = efi_loadopt_path(load_option, boot->data_size);
- rc = efidp_format_device_path(text_path, text_path_len,
+ rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
dp, pathlen);
if (rc < 0)
error(18, "Could not parse device path");
@@ -960,7 +960,7 @@ show_vars(const char *prefix)
if (!text_path)
error(19, "Could not parse device path");
- rc = efidp_format_device_path(text_path, text_path_len,
+ rc = efidp_format_device_path((unsigned char *)text_path, text_path_len,
dp, pathlen);
if (rc < 0)
error(20, "Could not parse device path");
@@ -1,83 +0,0 @@
From 97668ae0bce776a36ea2001dea63d376be8274ac Mon Sep 17 00:00:00 2001
From: Peter Jones <pjones@redhat.com>
Date: Wed, 6 Mar 2019 13:08:33 -0500
Subject: [PATCH] Make sure PKGS= is propogated into the submake for "make
deps"
When we're doing make deps with "$(CC) -MF", gcc and clang have different
behavior, both broken in different ways, which we're hitting because of a
missing -I argument for libefivar's includes. On clang, when a header can't
be found, it emits a rule with the header as a prerequisite without a path,
such as efivar.h here:
efibootmgr.o: efibootmgr.c fix_coverity.h efivar.h efiboot.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
error.h
Then the build that utilizes that rule will fail to find the
prerequisite and tell you something like:
make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop.
make[1]: Leaving directory '/home/pjones/devel/github.com/efibootmgr/master/src'
With gcc, when a header can't be found, it emits a rule without that header
as a prerequisite, as such (again with efivar.h):
efibootmgr.o: efibootmgr.c fix_coverity.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
error.h
And then your build will fail if you haven't adjusted CFLAGS to tell it
where to find the header.
Both of these would be better just erroring, but at least gcc's doesn't
insert a *wrong* dependency.
This patch adds "PKGS=efivar efibootmgr popt" for all deps under src/.
Technically that's overkill, as efibootmgr itself doesn't need popt, but it
doesn't hurt anything to have the extra part there. The resulting
.efibootmgr.d file has the prerequisites expressed correctly:
efibootmgr.o: efibootmgr.c fix_coverity.h /usr/include/efivar/efivar.h \
/usr/include/efivar/efiboot.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/list.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/unparse_path.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efi.h \
/home/pjones/devel/github.com/efibootmgr/master/src/include/efibootmgr.h \
error.h
This fixes the issue described in github PR #96
Signed-off-by: Peter Jones <pjones@redhat.com>
Upstream-Status: Backport [https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac]
---
src/Makefile | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
index 258bac1..32fa188 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -31,8 +31,13 @@ efibootdump : PKGS=efivar efiboot popt
efibootnext : $(call objects-of,$(EFIBOOTNEXT_SOURCES))
efibootnext : PKGS=efivar efiboot popt
+deps : PKGS=efivar efiboot popt
deps : $(ALL_SOURCES)
- $(MAKE) -f $(TOPDIR)/Make.deps deps SOURCES="$(ALL_SOURCES)" SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)"
+ $(MAKE) -f $(TOPDIR)/Make.deps \
+ SOURCES="$(ALL_SOURCES)" \
+ SUBDIR_CFLAGS="$(SUBDIR_CFLAGS)" \
+ PKGS="$(PKGS)" \
+ deps
clean :
@rm -rfv *.o *.a *.so $(TARGETS)
@@ -10,12 +10,8 @@ DEPENDS = "efivar popt"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=master \
file://0001-remove-extra-decl.patch \
file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \
file://0001-src-make-compatible-with-efivar-38.patch \
"
SRCREV = "e067160ecef8208e1944002e5d50b275733211fb"
SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main"
SRCREV = "c3f9f0534e32158f62c43564036878b93b9e0fd6"
S = "${WORKDIR}/git"