efibootmgr: Pass correct flags to compiler from pkg-config
PATCH v2 1/1 efibootmgr: Pass correct flags to compiler from pkg-config
efivar.h is in usr/include/efirvar directory so it should be added to include search path via -I to compiler cmdline to fix
make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. | make[1]: *** Waiting for unfinished jobs....
When running clang to generate dependencies -MM -MG -MF it still parses the compile unit and complains if certain header is not found where as gcc does not do that, hence the compile error is only seen when compiling with clang.
FIx is use a weak default assignment for PKGS var which is used by pkg-config to deduce compiler flags, this helps in getting right -I flags even for dep step
--- ...failts-Set-PKGS-to-efivar-by-default.patch | 33 +++++++++++++++++++ meta/recipes-bsp/efibootmgr/efibootmgr_17.bb | 1 + 2 files changed, 34 insertions(+) create mode 100644 meta/recipes-bsp/efibootmgr/efibootmgr/0001-Make.defailts-Set-PKGS-to-efivar-by-default.patch
meta/recipes-bsp/efibootmgr/efibootmgr/0001-Make.defailts-Set-PKGS-to-efivar-by-default.patch new file +33 -0
@@ -0,0 +1,33 @@ +From f6c3154810938506c13e22d16935ae4d07e911dc Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +Date: Mon, 24 Jun 2019 22:27:21 -0700 +Subject: [PATCH] Make.defailts: Set PKGS to efivar by default + +This ensures that when make dep is run then pkg-config logic can add +efivar related variables to cflags and ldflags + +Fixes +make[1]: *** No rule to make target 'efivar.h', needed by 'efibootmgr.o'. Stop. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <[email protected]> +--- + Make.defaults | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Make.defaults b/Make.defaults +index c4c0592..d75c6f4 100644 +--- a/Make.defaults ++++ b/Make.defaults +@@ -32,7 +32,7 @@ AR := $(CROSS_COMPILE)gcc-ar + NM := $(CROSS_COMPILE)gcc-nm + RANLIB := $(CROSS_COMPILE)gcc-ranlib + +-PKGS = ++PKGS ?= efivar + + SUBDIR_CFLAGS ?= + clang_cflags = +-- +2.22.0 +
meta/recipes-bsp/efibootmgr/efibootmgr_17.bb +1 -0
@@ -12,6 +12,7 @@ COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ file://0001-remove-extra-decl.patch \ + file://0001-Make.defailts-Set-PKGS-to-efivar-by-default.patch \ " SRCREV = "e067160ecef8208e1944002e5d50b275733211fb"
Signature · 1 line
2.22.0
Quoted 13 lines · Khem Raj
efivar.his inusr/include/efirvardirectory so it should be added to include search path via -I to compiler cmdline to fixmake[1]: *** No rule to make target '
efivar.h', needed by 'efibootmgr.o'. Stop. | make[1]: *** Waiting for unfinished jobs....When running clang to generate dependencies -MM -MG -MF it still parses the compile unit and complains if certain header is not found where as gcc does not do that, hence the compile error is only seen when compiling with clang.
FIx is use a weak default assignment for PKGS var which is used by pkg-config to deduce compiler flags, this helps in getting right
Review
Quoted 4 lines
(quoted diff) +1
-1-I flags even for dep step +Upstream-Status: Pending
It would be better to backport the upstream fix instead:
https://github.com/rhboot/efibootmgr/commit/97668ae0bce776a36ea2001dea63d376be8274ac
cu
Adrian
Signature · 4 lines
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed