Skip to contentSkip to conversation

efibootmgr: explicitly depend on host-pkgconf and popt

PATCH New Peter Korsgaard 2 participants 5 messages Mar 23, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 efibootmgr: explicitly depend on host-pkgconf and popt

The efibootmgr build system uses host-pkgconf and popt, so explicitly add them to _DEPENDENCIES instead of relying on them getting pulled in by efivar.

---
 package/efibootmgr/Config.in     | 1 +
 package/efibootmgr/efibootmgr.mk | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
package/efibootmgr/Config.in +1 -0
index 492ebe6e6e..b87fb53225 100644
@@ -7,6 +7,7 @@ config BR2_PACKAGE_EFIBOOTMGR
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # efivar
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
 	select BR2_PACKAGE_EFIVAR
+	select BR2_PACKAGE_POPT
 	help
 	  A Linux user-space application to modify the Intel Extensible
 	  Firmware Interface (EFI) Boot Manager. This application can
package/efibootmgr/efibootmgr.mk +1 -1
index cdd500f088..bdc0019d99 100644
@@ -8,7 +8,7 @@ EFIBOOTMGR_VERSION = 15
 EFIBOOTMGR_SITE = $(call github,rhboot,efibootmgr,$(EFIBOOTMGR_VERSION))
 EFIBOOTMGR_LICENSE = GPL-2.0+
 EFIBOOTMGR_LICENSE_FILES = COPYING
-EFIBOOTMGR_DEPENDENCIES = efivar $(TARGET_NLS_DEPENDENCIES)
+EFIBOOTMGR_DEPENDENCIES = host-pkgconf efivar popt $(TARGET_NLS_DEPENDENCIES)
 EFIBOOTMGR_LDFLAGS = $(TARGET_LDFLAGS) $(TARGET_NLS_LIBS)
 EFIBOOTMGR_MAKE_ARGS = EFIDIR=buildroot
 
Signature · 1 line
2.11.0
#1 lore raw

PATCH v2 2/2 efivar: bump version

Drop 0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch and 0003-Remove-some-extra-const-that-gcc-complains-about.patch as they are now upstream.

The upstream repo moved to the 'rhboot' github project, so adjust upstream URL in .mk and help text to match.

Drop dependency on !musl as it is now support since e04281e60cf0d (makeguids: Ensure compatibility with other libcs).

Drop BINTARGETS workaround as this is fixed since 6c674283697 (Don't build static by default).

Drop popt dependency as it is no longer needed since 1aec5e7891 (Replace popt usage with getopt_long in efivar.c).

While we are at it, also add a hash for the license file.

---
Changes since v1:
- Drop popt dependency

 package/efibootmgr/Config.in                       |  2 -
 ...bc.patch => 0001-Allow-build-with-uClibc.patch} |  2 +-
 ...fs-to-avoid-the-multiple-definitions-bug-.patch | 29 -------------
 ...some-extra-const-that-gcc-complains-about.patch | 47 ----------------------
 package/efivar/Config.in                           |  8 +---
 package/efivar/efivar.hash                         |  3 +-
 package/efivar/efivar.mk                           |  9 +----
 7 files changed, 7 insertions(+), 93 deletions(-)
 rename package/efivar/{0002-Allow-build-with-uClibc.patch => 0001-Allow-build-with-uClibc.patch} (96%)
 delete mode 100644 package/efivar/0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch
 delete mode 100644 package/efivar/0003-Remove-some-extra-const-that-gcc-complains-about.patch
package/efibootmgr/Config.in +0 -2
index b87fb53225..d31f9b13ee 100644
@@ -3,7 +3,6 @@ config BR2_PACKAGE_EFIBOOTMGR
 	depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS # efivar
 	depends on !BR2_STATIC_LIBS # efivar
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # efivar
-	depends on !BR2_TOOLCHAIN_USES_MUSL # efivar
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # efivar
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
 	select BR2_PACKAGE_EFIVAR
@@ -20,6 +19,5 @@ comment "efibootmgr needs a glibc or uClibc toolchain w/ dynamic library, header
 	depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS
 	depends on BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
-		BR2_TOOLCHAIN_USES_MUSL || \
 		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
package/efivar/0001-Allow-build-with-uClibc.patch renamed from package/efivar/0002-Allow-build-with-uClibc.patch +1 -1
similarity index 96%
rename from package/efivar/0002-Allow-build-with-uClibc.patch
rename to package/efivar/0001-Allow-build-with-uClibc.patch
index 7c195872b0..01fa9dee70 100644
@@ -20,7 +20,7 @@ index 7f2d4dd..72c02d1 100644
  #include <stdlib.h>
 -#include <uchar.h>
  
- #include <efivar.h>
+ #include <efivar/efivar.h>
  #include "lib.h"
  
 +#ifdef __UCLIBC__
package/efivar/0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch deleted +0 -29
deleted file mode 100644
index 2bc3ff243f..0000000000
@@ -1,29 +0,0 @@
-From 314eb67b239e60c2ed3700e2baf9cd0e590465f3 Mon Sep 17 00:00:00 2001
-From: Peter Jones <[email protected]>
-Date: Thu, 27 Oct 2016 09:19:18 -0400
-Subject: [PATCH] Use -z muldefs to avoid the multiple definitions bug
- without -flto
-
-This fixes github issue #64
-
-Signed-off-by: Peter Jones <[email protected]>
-Signed-off-by: Andy Shevchenko <[email protected]>
----
- Make.defaults | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Make.defaults b/Make.defaults
-index aa974d9..c9d599f 100644
---- a/Make.defaults
-+++ b/Make.defaults
-@@ -32,6 +32,7 @@ cflags	= $(CFLAGS) -I${TOPDIR}/src/include/efivar/ \
- clang_ccldflags =
- gcc_ccldflags =
- ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \
-+	-Wl,-z,muldefs \
- 	$(if $(findstring clang,$(CCLD)),$(clang_ccldflags),) \
- 	$(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \
- 	$(call pkg-config-ccldflags)
--- 
-2.10.2
-
package/efivar/0003-Remove-some-extra-const-that-gcc-complains-about.patch deleted +0 -47

47 lines not on this page · raw message

package/efivar/Config.in +2 -6
index 0fa9adf387..74f2bb5abb 100644
@@ -16,19 +16,15 @@ config BR2_PACKAGE_EFIVAR
 	# failures. So, prevent this package to be built using those
 	# toolchains.
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
-	# doesn't build with musl due to lack of __bswap_constant_16
-	depends on !BR2_TOOLCHAIN_USES_MUSL
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
-	select BR2_PACKAGE_POPT
 	help
 	  Tools and libraries to manipulate EFI variables
 
-	  https://github.com/rhinstaller/efivar
+	  https://github.com/rhboot/efivar
 
-comment "efivar needs a glibc or uClibc toolchain w/ dynamic library, headers >= 3.12, gcc >= 4.9"
+comment "efivar needs a toolchain w/ dynamic library, headers >= 3.12, gcc >= 4.9"
 	depends on BR2_PACKAGE_EFIVAR_ARCH_SUPPORTS
 	depends on BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
-		BR2_TOOLCHAIN_USES_MUSL || \
 		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
 	depends on !BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS
package/efivar/efivar.hash +2 -1
index e337b96450..e8a65adc4b 100644
@@ -1,2 +1,3 @@
 # locally computed hash
-sha256 20709c76311f8eb8be92977b7ac008ce62501fa9f7fe885a784321540fc352f9 efivar-30.tar.gz
+sha256 9691399a424b8e3776b7ed2df1893c4162285a93697d781f387d0f0d258a7f4b  efivar-34.tar.gz
+sha256 91df770634adc2755e78cae33a0d01e702ce2f69046408ae93d0d934ff29691b  COPYING
package/efivar/efivar.mk +2 -7
index d06192ed22..492a4468bf 100644
@@ -4,21 +4,16 @@
 #
 ################################################################################
 
-EFIVAR_VERSION = 30
-EFIVAR_SITE = $(call github,rhinstaller,efivar,$(EFIVAR_VERSION))
+EFIVAR_VERSION = 34
+EFIVAR_SITE = $(call github,rhboot,efivar,$(EFIVAR_VERSION))
 EFIVAR_LICENSE = LGPL-2.1
 EFIVAR_LICENSE_FILES = COPYING
-EFIVAR_DEPENDENCIES = popt
 EFIVAR_INSTALL_STAGING = YES
 
-# BINTARGETS is set to skip efivar-static which requires static popt,
-# and since we depend on dynamic libraries, efivar will never be built
-# in a static-only environment.
 # -fPIC is needed at least on MIPS, otherwise fails to build shared
 # -library.
 EFIVAR_MAKE_OPTS = \
 	libdir=/usr/lib \
-	BINTARGETS=efivar \
 	LDFLAGS="$(TARGET_LDFLAGS) -fPIC"
 
 define EFIVAR_BUILD_CMDS
Signature · 1 line
2.11.0
#2 lore raw

PATCH v2 2/2 efivar: bump version

Quoted 18 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Peter" == Peter Korsgaard <[email protected]> writes:

Drop 0001-Use-z-muldefs-to-avoid-the-multiple-definitions-bug-.patch and 0003-Remove-some-extra-const-that-gcc-complains-about.patch as they are now upstream.

The upstream repo moved to the 'rhboot' github project, so adjust upstream URL in .mk and help text to match.

Drop dependency on !musl as it is now support since e04281e60cf0d (makeguids: Ensure compatibility with other libcs).

Drop BINTARGETS workaround as this is fixed since 6c674283697 (Don't build static by default).

Drop popt dependency as it is no longer needed since 1aec5e7891 (Replace popt usage with getopt_long in efivar.c).

Quoted 6 lines

While we are at it, also add a hash for the license file.

---
Changes since v1:
- Drop popt dependency

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#3 lore raw

PATCH 1/2 efibootmgr: explicitly depend on host-pkgconf and popt

In reply to Peter Korsgaard

Hello,

Quoted 3 lines · Peter Korsgaard

The efibootmgr build system uses host-pkgconf and popt, so explicitly add them to _DEPENDENCIES instead of relying on them getting pulled in by efivar.

Minor nit: if it's the efibootmgr *build system* that uses popt, then one would expect to see a dependency on host-popt, not popt. I guess it's not the *build system* that depends on popt, but efibootmgr itself, no ?

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#4 lore raw

PATCH 1/2 efibootmgr: explicitly depend on host-pkgconf and popt

Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Thomas" == Thomas Petazzoni <[email protected]> writes:

Hello,
On Fri, 23 Mar 2018 10:57:40 +0100, Peter Korsgaard wrote:

Quoted 8 lines
Quoted 3 lines

The efibootmgr build system uses host-pkgconf and popt, so explicitly add them to _DEPENDENCIES instead of relying on them getting pulled in by efivar.

Minor nit: if it's the efibootmgr *build system* that uses popt, then one would expect to see a dependency on host-popt, not popt. I guess it's not the *build system* that depends on popt, but efibootmgr itself, no ?

Yes, the wording is maybe not super clear. What I meant is that the Makefile (E.G. the build system) explicitly refers to pkg-config and popt.

I'll reword and commit, thanks.

Signature · 1 line
Bye, Peter Korsgaard