On Wed, Oct 16, 2024 at 05:10:35PM +0200, Rasmus Villemoes wrote: > In v2024.10, "make envtools" is broken for at least these defconfigs: > > am335x_evm_defconfig > rpi_3_defconfig > rpi_4_defconfig > mx7dsabresd_defconfig > wandboard_defconfig > imx8mp_evk_defconfig > > The only defconfig we use for which it is not broken is > stm32mp13_defconfig. They all work just fine in v2024.07. > > The symptoms are slightly different, but all related to the fact that > some transitively included header uses IS_ENABLED or CONFIG_IS_ENABLED > without linux/kconfig.h having already been included. > > A simple git bisect doesn't produce anything sensible, it ends up at > 3a9f642ca94 (crypto: nuvoton: npcm_sha: Support SHA 384/512) which > clearly has nothing to do with this. But digging deeper, one > eventually finds 0f92fa45603 ("env: Remove <common.h> and add needed > includes"). > > So at first I tried adding "#include <linux/kconfig.h>" in > include/env_default.h and include/env_flags.h. That fixes it for some, > but not all, of the above. For example rpi_3_defconfig still fails, > then in log.h complaining about BIT() and u8 not being defined. At > least BIT() is should have gotten from bitops.h, except that that's > behind ifdef __KERNEL__, so not set for the envtools build. > > It turns out that the envtools source code in fw_env_private.h already > has some hackery to deal with all this, in the form of the __ASSEMBLY__ > games it plays before including config.h. It seems that if we just > make sure to do that include early enough, so that config.h is indeed > parsed with that __ASSEMBLY__ hackery in place, everything builds > fine. > > Fixes: 0f92fa45603 ("env: Remove <common.h> and add needed includes") > Signed-off-by: Rasmus Villemoes <r...@prevas.dk>
Oh wow, good work. Reviewed-by: Tom Rini <tr...@konsulko.com> -- Tom
signature.asc
Description: PGP signature