package/uboot-tools: select p11-kit when building target mkeficapsule

Since upstream commit 0c716a157be460006a4b762625de329b5e36dbf9 (first
release: v2026.07) mkeficapsule supports PKCS#11 keys, and in turn
requires GnuTLS with PKCS#11 support.

Without it, building mkeficapsule for the target fails:

  HOSTLD  tools/mkeficapsule
/home/fiona/br-test-pkg/bootlin-armv5-uclibc/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/14.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: tools/mkeficapsule.o: in function `main':
mkeficapsule.c:(.text.startup+0x530): undefined reference to `gnutls_pkcs11_init'
/home/fiona/br-test-pkg/bootlin-armv5-uclibc/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/14.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: mkeficapsule.c:(.text.startup+0x544): undefined reference to `gnutls_pkcs11_add_provider'
/home/fiona/br-test-pkg/bootlin-armv5-uclibc/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/14.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: mkeficapsule.c:(.text.startup+0x5fc): undefined reference to `gnutls_pkcs11_obj_list_import_url4'
/home/fiona/br-test-pkg/bootlin-armv5-uclibc/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/14.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: mkeficapsule.c:(.text.startup+0x620): undefined reference to `gnutls_x509_crt_import_pkcs11'
/home/fiona/br-test-pkg/bootlin-armv5-uclibc/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/14.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: mkeficapsule.c:(.text.startup+0x1334): undefined reference to `gnutls_pkcs11_deinit'
collect2: error: ld returned 1 exit status

The error can be reproduced using "utils/test-pkg -c" with the
following config:

BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE=y

For host-uboot-tools this was solved in Buildroot commit
6597563da7 "package/gnutls: add host
support for pkcs11" by unconditionally enabling PKCS#11 support for
host-gnutls. For the target a more fine-grained approach is desirable,
so instead select BR2_PACKAGE_P11_KIT if
BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE=y and propagate dependencies.

Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Fiona Klute
2026-08-09 13:11:30 +02:00
committed by Julien Olivain
parent 732a933e34
commit fa32b20b10

View File

@@ -68,17 +68,22 @@ config BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE
config BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE config BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE
bool "mkeficapsule" bool "mkeficapsule"
depends on !BR2_STATIC_LIBS # gnutls depends on !BR2_STATIC_LIBS # gnutls, p11-kit
depends on BR2_TOOLCHAIN_HAS_THREADS # p11-kit
depends on BR2_USE_MMU # p11-kit
depends on BR2_USE_WCHAR # gnutls depends on BR2_USE_WCHAR # gnutls
select BR2_PACKAGE_GNUTLS select BR2_PACKAGE_GNUTLS
select BR2_PACKAGE_P11_KIT
help help
Install the mkeficapsule tool on the target system Install the mkeficapsule tool on the target system
The mkeficapsule tool from Das U-Boot bootloader, which allows The mkeficapsule tool from Das U-Boot bootloader, which allows
generation of UEFI capsule binaries. generation of UEFI capsule binaries.
comment "mkeficapsule support needs a toolchain w/ wchar, dynamic library" comment "mkeficapsule support needs a toolchain w/ wchar, threads, dynamic library"
depends on !BR2_USE_WCHAR || BR2_STATIC_LIBS depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \
|| BR2_STATIC_LIBS
config BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE config BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE
bool "mkenvimage" bool "mkenvimage"