[PATCH v2] fs: Fix SPL build if SPL_FS_LOADER is enabled and FS_LOADER is disabled

From: Hiago De Franco hiago.franco@toradex.com
When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build fails with the following errors:
AR spl/boot/built-in.o LD spl/u-boot-spl arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function `fw_get_filesystem_firmware': /u-boot/drivers/misc/fs_loader.c:162: undefined reference to `fs_set_blk_dev' arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ fs_loader.c:185: undefined reference to `fs_read' arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function `select_fs_dev': /u-boot/drivers/misc/fs_loader.c:89: undefined reference to `fs_set_blk_dev_with_part' make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 make: *** [Makefile:2055: spl/u-boot-spl] Error 2
Fix it by replacing the FS_LOADER with SPL_FS_LOADER in the Makefile, so the fs.c with the necessary function definitions are compiled.
Fixes: b071a07743d4 ("drivers: misc: Makefile: Enable fs_loader compilation at SPL Level") Suggested-by: Francesco Dolcini francesco.dolcini@toradex.com Signed-off-by: Hiago De Franco hiago.franco@toradex.com Signed-off-by: Francesco Dolcini francesco.dolcini@toradex.com --- v2: fix sandbox_noinst_defconfig and config SPL_BLK_FS --- configs/sandbox_noinst_defconfig | 1 + drivers/block/Kconfig | 2 +- fs/Makefile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/configs/sandbox_noinst_defconfig b/configs/sandbox_noinst_defconfig index f37230151a05..9ddb606f8f9b 100644 --- a/configs/sandbox_noinst_defconfig +++ b/configs/sandbox_noinst_defconfig @@ -186,6 +186,7 @@ CONFIG_P2SB=y CONFIG_PWRSEQ=y CONFIG_SPL_PWRSEQ=y CONFIG_FS_LOADER=y +CONFIG_SPL_FS_LOADER=y CONFIG_MMC_SANDBOX=y CONFIG_DM_MTD=y CONFIG_MTD_CONCAT=y diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index 48529a6982f5..5283d8981e09 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig @@ -109,7 +109,7 @@ config EFI_MEDIA
config SPL_BLK_FS bool "Load images from filesystems on block devices" - depends on SPL_BLK + depends on SPL_BLK && SPL_FS_LOADER help Use generic support to load images from fat/ext filesystems on different types of block devices such as NVMe. diff --git a/fs/Makefile b/fs/Makefile index 7b05c79e0ccf..a3ee0a361d3d 100644 --- a/fs/Makefile +++ b/fs/Makefile @@ -5,7 +5,7 @@ # Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_FS_LOADER) += fs.o +obj-$(CONFIG_SPL_FS_LOADER) += fs.o obj-$(CONFIG_SPL_FS_FAT) += fat/ obj-$(CONFIG_SPL_FS_EXT4) += ext4/ obj-$(CONFIG_SPL_FS_CBFS) += cbfs/

On Mon, 16 Sep 2024 15:03:36 +0200, Francesco Dolcini wrote:
When SPL_FS_LOADER is set to y and FS_LOADER is not enabled, the SPL build fails with the following errors:
AR spl/boot/built-in.o LD spl/u-boot-spl arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function `fw_get_filesystem_firmware': /u-boot/drivers/misc/fs_loader.c:162: undefined reference to `fs_set_blk_dev' arm-none-linux-gnueabihf-ld.bfd: /home/frh/tdx/src/u-boot/drivers/misc/ fs_loader.c:185: undefined reference to `fs_read' arm-none-linux-gnueabihf-ld.bfd: drivers/misc/fs_loader.o: in function `select_fs_dev': /u-boot/drivers/misc/fs_loader.c:89: undefined reference to `fs_set_blk_dev_with_part' make[1]: *** [scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 make: *** [Makefile:2055: spl/u-boot-spl] Error 2
[...]
Applied to u-boot/next, thanks!
participants (2)
-
Francesco Dolcini
-
Tom Rini