imx93 BareMetal(uboot) build issue

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

imx93 BareMetal(uboot) build issue

ソリューションへジャンプ
622件の閲覧回数
zhang_rui
Contributor II

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

 

 

0 件の賞賛
返信
1 解決策
502件の閲覧回数
zhang_rui
Contributor II

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.

PixPin_2025-07-08_10-12-47.png

 

元の投稿で解決策を見る

6 返答(返信)
599件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @zhang_rui 

How do you get toolchain? Can you share the steps? This error means this toolchain miss some packages.

Best Regards,
Zhiming

0 件の賞賛
返信
591件の閲覧回数
zhang_rui
Contributor II
toolchain came from yocto.

Getting toolchain step:
$ mkdir yocto-real-time-edge
$ cd yocto-real-time-edge
$ repo init -u https://github.com/nxp-real-time-edge-sw/yocto-real-time-edge.git \
-b real-time-edge-scarthgap \
-m real-time-edge-3.1.0.xml
$ DISTRO=nxp-real-time-edge-baremetal MACHINE=imx93evk source real-time-edge-setup-env.sh -b build_dir
$ bitbake meta-toolchain

The build process will then retrieve the following toolchain installation script:
nxp-real-time-edge-baremetal-glibc-x86_64-meta-toolchain-armv8a-imx93evk-toolchain-3.1.sh

$ ./nxp-real-time-edge-baremetal-glibc-x86_64-meta-toolchain-armv8a-imx93evk-toolchain-3.1.sh -d ./toolchain

building uboot step:
$ git clone https://github.com/nxp-real-time-edge-sw/real-time-edge-uboot.git
$ cd real-time-edge-uboot
$ git checkout Real-Time-Edge-v3.1-baremetal-202503
$ source ../toolchian/environment-setup-armv8a-poky-linux
$ make imx93_11x11_evk_baremetal_master_defconfig
$ make -j8

The error:
aarch64-poky-linux-ld.bfd: cannot find -lm: No such file or directory

The error indicates a missing libm.a file. However, U-Boot already provides this library at the following path:
real-time-edge-uboot/math/lib/libm.a.
When building U-Boot, the linker reports can find libm.a.
But when building U-Boot SPL, the linker reports cannot find libm.a.











Ibitbake

nxp-real-time-edge-baremetal-glibc-x86_64-meta-toolchain-armv8a-imx93evk-toolchain-3.1.sh
0 件の賞賛
返信
567件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @zhang_rui 

Please try to use below command to export sdk

bitbake -c populate_sdk nxp-real-time-edge-baremetal



Best Regards,
Zhiming

0 件の賞賛
返信
503件の閲覧回数
zhang_rui
Contributor II

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.

PixPin_2025-07-08_10-12-47.png

 

498件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @zhang_rui 

Thanks for update, i will feedback this to sw team.

Best Regards,
Zhiming

0 件の賞賛
返信
563件の閲覧回数
zhang_rui
Contributor II

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?

0 件の賞賛
返信