diff options
author | Theo Anderson <telans@posteo.de> | 2021-01-19 09:28:02 +1300 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2021-01-18 15:34:01 -0500 |
commit | 9f6631180eab5e24be3e8a2b09c06d226ff7e1ac (patch) | |
tree | 67c212928faab09ef1fdccaa97bcbed7a2304b85 /sys-boot/efibootmgr/files | |
parent | net-libs/libgsasl: Stabilize 1.8.1 sparc, #760381 (diff) | |
download | gentoo-9f6631180eab5e24be3e8a2b09c06d226ff7e1ac.tar.gz gentoo-9f6631180eab5e24be3e8a2b09c06d226ff7e1ac.tar.bz2 gentoo-9f6631180eab5e24be3e8a2b09c06d226ff7e1ac.zip |
sys-boot/efibootmgr: EAPI 7, version bump
Closes: https://bugs.gentoo.org/587094
Closes: https://bugs.gentoo.org/673536
Closes: https://bugs.gentoo.org/557248
Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Theo Anderson <telans@posteo.de>
Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/19098
Diffstat (limited to 'sys-boot/efibootmgr/files')
-rw-r--r-- | sys-boot/efibootmgr/files/efibootmgr-17-clang.patch | 82 | ||||
-rw-r--r-- | sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch | 14 |
2 files changed, 96 insertions, 0 deletions
diff --git a/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch b/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch new file mode 100644 index 000000000000..687b294c3339 --- /dev/null +++ b/sys-boot/efibootmgr/files/efibootmgr-17-clang.patch @@ -0,0 +1,82 @@ +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> +--- + 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) diff --git a/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch b/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch new file mode 100644 index 000000000000..614195f3c99d --- /dev/null +++ b/sys-boot/efibootmgr/files/efibootmgr-17-fix-efivar-37-conflict.patch @@ -0,0 +1,14 @@ +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': |