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:
committed by
Richard Purdie
parent
3fa18ba264
commit
157db777fc
@@ -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)
|
||||
+2
-6
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user