[PATCH] scripts: dtc: libfdt: fdt_ro.c: always define fdt_check_full

Philippe Reynes philippe.reynes at softathome.com
Wed Feb 9 18:01:24 CET 2022

On some configs (like stm32mp15_dhcom_basic_defconfig), if configs
SPL_LOAD_FIT_FULL and SPL_FIT_FULL_CHECK are enabled. Then the compilatio
fails with the following error:

arm-linux-gnueabi-ld.bfd: boot/image-fit.o: in function `fit_check_format':
<PATH>/uboot/u-boot-stm/boot/image-fit.c:1641: undefined reference to `fdt_check_full'
scripts/Makefile.spl:509: recipe for target 'spl/u-boot-spl' failed

This issue happens because the function fdt_check_full is only defined if
"!defined(FDT_ASSUME_MASK) || FDT_ASSUME_MASK != 0xff". But this function
may be called even if this condition are not verified. To avoid this issue,
the function fdt_check_full is always defined.

Signed-off-by: Philippe Reynes <philippe.reynes at softathome.com>
 scripts/dtc/libfdt/fdt_ro.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/scripts/dtc/libfdt/fdt_ro.c b/scripts/dtc/libfdt/fdt_ro.c
index efe7efe921..63eaf57f43 100644
--- a/scripts/dtc/libfdt/fdt_ro.c
+++ b/scripts/dtc/libfdt/fdt_ro.c
@@ -937,4 +937,10 @@ int fdt_check_full(const void *fdt, size_t bufsize)
+int fdt_check_full(const void __always_unused *fdt,
+		   size_t __always_unused bufsize)
+	return 0;
+#endif /* #if !defined(FDT_ASSUME_MASK) || FDT_ASSUME_MASK != 0xff */

More information about the U-Boot mailing list