Hi everyone,
I'm trying to build U-Boot (version: Real-Time-Edge-v3.1-baremetal-202503), but I'm encountering some errors. Could you please help me fix this issue?
Thanks in advance!
1. building step
$ cd real-time-edge-uboot
$ source ../toolchian/environment-setup-armv8a-poky-linux
$ make imx93_11x11_evk_baremetal_master_defconfig
$ make -j8
The error:
...
CC spl/drivers/clk/clk-mux.o
CC spl/drivers/core/simple-bus.o
CC spl/drivers/clk/clk-gate.o
AR spl/drivers/pinctrl/built-in.o
CC spl/drivers/serial/serial-uclass.o
CC spl/drivers/core/dump.o
CC spl/drivers/clk/clk-fixed-factor.o
CC spl/drivers/serial/serial_lpuart.o
AR spl/drivers/soc/built-in.o
CC spl/drivers/watchdog/ulp_wdog.o
CC spl/drivers/clk/clk-composite.o
CC spl/drivers/watchdog/wdt-uclass.o
CC spl/drivers/core/of_extra.o
CC spl/drivers/core/ofnode.o
CC spl/drivers/core/read_extra.o
AR spl/drivers/clk/built-in.o
AR spl/drivers/watchdog/built-in.o
AR spl/drivers/serial/built-in.o
AR spl/drivers/core/built-in.o
AR spl/drivers/built-in.o
LD spl/u-boot-spl
aarch64-poky-linux-ld.bfd: cannot find -lm: No such file or directory
make[1]: *** [scripts/Makefile.spl:528:spl/u-boot-spl] 错误 1
make: *** [Makefile:2070:spl/u-boot-spl] 错误 2
解決済! 解決策の投稿を見る。
The issue is fixed—U-Boot SPL requires building from inside the spl directory.
Building detail(make V=1):
( cd spl && aarch64-poky-linux-ld.bfd -z noexecstack --no-warn-rwx-segments -T u-boot-spl.lds --gc-sections -Bstatic --gc-sections --no-dynamic-linker --build-id=none -Ttext 0x2049A000 arch/arm/cpu/armv8/start.o --whole-archive arch/arm/mach-imx/built-in.o arch/arm/cpu/armv8/built-in.o arch/arm/cpu/built-in.o arch/arm/lib/built-in.o board/freescale/imx93_smart/built-in.o board/freescale/common/built-in.o common/spl/built-in.o common/init/built-in.o boot/built-in.o common/built-in.o cmd/built-in.o env/built-in.o lib/built-in.o disk/built-in.o drivers/built-in.o dts/built-in.o fs/built-in.o --no-whole-archive -L ./math/lib -L /media/sangfor/vdb/nxp/imx93/real-time_edge_v3_1/toolchian/sysroots/armv8a-poky-linux/usr/lib/aarch64-poky-linux/13.3.0 -lgcc -lm -Map u-boot-spl.map -o u-boot-spl )
However, since libm.a was not present in the spl directory, I resolved the issue by copying the real-time-edge-uboot/math directory into real-time-edge-uboot/spl. After this step, the build completed successfully.
Hi @zhang_rui
How do you get toolchain? Can you share the steps? This error means this toolchain miss some packages.
Best Regards,
Zhiming
Hi @zhang_rui
Please try to use below command to export sdk
bitbake -c populate_sdk nxp-real-time-edge-baremetal
Best Regards,
Zhiming
The issue is fixed—U-Boot SPL requires building from inside the spl directory.
Building detail(make V=1):
( cd spl && aarch64-poky-linux-ld.bfd -z noexecstack --no-warn-rwx-segments -T u-boot-spl.lds --gc-sections -Bstatic --gc-sections --no-dynamic-linker --build-id=none -Ttext 0x2049A000 arch/arm/cpu/armv8/start.o --whole-archive arch/arm/mach-imx/built-in.o arch/arm/cpu/armv8/built-in.o arch/arm/cpu/built-in.o arch/arm/lib/built-in.o board/freescale/imx93_smart/built-in.o board/freescale/common/built-in.o common/spl/built-in.o common/init/built-in.o boot/built-in.o common/built-in.o cmd/built-in.o env/built-in.o lib/built-in.o disk/built-in.o drivers/built-in.o dts/built-in.o fs/built-in.o --no-whole-archive -L ./math/lib -L /media/sangfor/vdb/nxp/imx93/real-time_edge_v3_1/toolchian/sysroots/armv8a-poky-linux/usr/lib/aarch64-poky-linux/13.3.0 -lgcc -lm -Map u-boot-spl.map -o u-boot-spl )
However, since libm.a was not present in the spl directory, I resolved the issue by copying the real-time-edge-uboot/math directory into real-time-edge-uboot/spl. After this step, the build completed successfully.
Hi @zhang_rui
Thanks for update, i will feedback this to sw team.
Best Regards,
Zhiming
Hi @Zhiming_Liu
I don’t believe the toolchain is causing the build issue. As I mentioned, when building U-Boot SPL, the linker reports that it cannot find libm.a, even though the file exists at real-time-edge-uboot/math/lib/libm.a.
Here is the build detail(make V=1):
( cd spl && aarch64-poky-linux-ld.bfd -z noexecstack --no-warn-rwx-segments -T u-boot-spl.lds --gc-sections -Bstatic --gc-sections --no-dynamic-linker --build-id=none -Ttext 0x2049A000 arch/arm/cpu/armv8/start.o --whole-archive arch/arm/mach-imx/built-in.o arch/arm/cpu/armv8/built-in.o arch/arm/cpu/built-in.o arch/arm/lib/built-in.o board/freescale/imx93_smart/built-in.o board/freescale/common/built-in.o common/spl/built-in.o common/init/built-in.o boot/built-in.o common/built-in.o cmd/built-in.o env/built-in.o lib/built-in.o disk/built-in.o drivers/built-in.o dts/built-in.o fs/built-in.o --no-whole-archive -L ./math/lib -L /media/sangfor/vdb/nxp/imx93/real-time_edge_v3_1/toolchian/sysroots/armv8a-poky-linux/usr/lib/aarch64-poky-linux/13.3.0 -lgcc -lm -Map u-boot-spl.map -o u-boot-spl )
aarch64-poky-linux-ld.bfd: cannot find -lm: No such file or directory
$ ls ./math/lib
libm.a
Could you please attempt to build U-Boot and check if you can reproduce this build error?