[PATCH v9 03/11] tools: build mkeficapsule with tools-only_defconfig

AKASHI Takahiro takahiro.akashi at linaro.org
Thu Jan 20 02:39:03 CET 2022


Heinrich,

On Wed, Jan 19, 2022 at 05:08:14PM +0100, Heinrich Schuchardt wrote:
> On 1/18/22 05:39, AKASHI Takahiro wrote:
> > Add CONFIG_TOOLS_MKEFICAPSULE. Then we want to always build mkeficapsule
> > if tools-only_defconfig is used.
> > 
> > Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
> > Reviewed-by: Simon Glass <sjg at chromium.org>
> > ---
> >   configs/tools-only_defconfig | 1 +
> >   tools/Kconfig                | 8 ++++++++
> >   tools/Makefile               | 3 +--
> >   3 files changed, 10 insertions(+), 2 deletions(-)
> > 
> > diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
> > index f482c9a1c1b0..5427797dd4c3 100644
> > --- a/configs/tools-only_defconfig
> > +++ b/configs/tools-only_defconfig
> > @@ -31,3 +31,4 @@ CONFIG_I2C_EDID=y
> >   # CONFIG_VIRTIO_MMIO is not set
> >   # CONFIG_VIRTIO_PCI is not set
> >   # CONFIG_VIRTIO_SANDBOX is not set
> > +CONFIG_TOOLS_MKEFICAPSULE=y
> > diff --git a/tools/Kconfig b/tools/Kconfig
> > index 91ce8ae3e516..117c921da3fe 100644
> > --- a/tools/Kconfig
> > +++ b/tools/Kconfig
> > @@ -90,4 +90,12 @@ config TOOLS_SHA512
> >   	help
> >   	  Enable SHA512 support in the tools builds
> > 
> > +config TOOLS_MKEFICAPSULE
> > +	bool "Build efimkcapsule command"
> > +	default y if EFI_CAPSULE_ON_DISK
> 
> We discussed this with Tom before. Building of tools should not depend
> on board options. Can we make this 'default y'?

No.
I think we have different opinions here.

I think that any of *board* configs should build only all the binaries
that are need to run U-Boot on that board.
For distros' case that you have mentioned before, we should
encourage them to use tools-only_defconfig for packaging U-Boot
host tools rather than using any particular *board* config.

# In either case, the resulting binary, as far as mkeficapsule is
concerned, is the exact same without any dependency of target configs.

> I wonder if a dependency are missing:
> 
> With CONFIG_FIT=n './mkeficapsule' shows the usage with:
> 
>    -f, --fit <fit image>       new FIT image file
> 
> I guess the tool should select:
> 
> CONFIG_FIT
> CONFIG_FIT_SIGNATURE
> 
> And #ifdef CONFIG_FIT_SIGNATURE should be removed in the code.

I'm not sure what your point is.

I believe that what you and Simon demand in building any host tool
is that the binary be the same whatever target configs are enabled
(or disabled).
So showing "-f, --fit <fit image>       new FIT image file" unconditionally
is a natural consequence.

It doesn't make sense that CONFIG_TOOLS_MKEFICAPSULE selects
any of target configs explicitly.

Furthermore, I don't have "#ifdef CONFIG_FIT_SIGNATURE" in mkeficapsule.c.
# there is some trick around CONFIG_FIT_SIGNATURE in tools/Kconfig, though.

-Takahiro Akashi

> Best regards
> 
> Heinrich
> 
> > +	help
> > +	  This command allows users to create a UEFI capsule file and,
> > +	  optionally sign that file. If you want to enable UEFI capsule
> > +	  update feature on your target, you certainly need this.
> > +
> >   endmenu
> > diff --git a/tools/Makefile b/tools/Makefile
> > index 1763f44cac43..766c0674f4a0 100644
> > --- a/tools/Makefile
> > +++ b/tools/Makefile
> > @@ -238,8 +238,7 @@ hostprogs-$(CONFIG_MIPS) += mips-relocs
> >   hostprogs-$(CONFIG_ASN1_COMPILER)	+= asn1_compiler
> >   HOSTCFLAGS_asn1_compiler.o = -idirafter $(srctree)/include
> > 
> > -mkeficapsule-objs	:= mkeficapsule.o $(LIBFDT_OBJS)
> > -hostprogs-$(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) += mkeficapsule
> > +hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule
> > 
> >   # We build some files with extra pedantic flags to try to minimize things
> >   # that won't build on some weird host compiler -- though there are lots of
> 


More information about the U-Boot mailing list