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.aka...@linaro.org> > > Reviewed-by: Simon Glass <s...@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 >