[U-Boot-Users] U-Boot with gcc-3.3.2 and ARM926EJS Targets fails due to __udiv0

Markus Pietrek maillist at fsforth.de
Tue Jan 27 15:24:33 CET 2004


Hi folks,

I'm currently porting U-Boot 1.0.0 to a NetSilicon NS9750 (ARM926EJS core). 
This port is partly derived from board/omap1610inn. The compiler is 
gcc-3.3.2, taken from the uClibc toolchain.

For my target the compiler is using his internal libgcc.a:__div0 routine which 
of course fails (it's an SWI instruction). But compiling U-Boot for an 
smdk2410 platform with the same compiler uses the correct U-Boot's own __div0 
code. I can't see any relevant differences in both build lines.

Can anyone help me? And is it really necessary to include libgcc.a?

The build line for the NS9750:
========================
UNDEF_SYM=`arm-linux-objdump -x board/ns9750dev/libns9750dev.a 
cpu/arm926ejs/libarm926ejs.a lib_arm/libarm.a fs/jffs2/libjffs2.a 
fs/fdos/libfdos.a fs/fat/libfat.a net/libnet.a disk/libdisk.a rtc/librtc.a 
dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a 
post/cpu/libcpu.a common/libcommon.a lib_generic/libgeneric.a |sed  -n -e 
's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
        arm-linux-ld -Bstatic -T 
/targets/ewp/LxMOD/build/apps/u-boot-1.0.0/board/ns9750dev/u-boot.lds -Ttext 
0x00F80000  $UNDEF_SYM cpu/arm926ejs/start.o \
                --start-group board/ns9750dev/libns9750dev.a 
cpu/arm926ejs/libarm926ejs.a lib_arm/libarm.a fs/jffs2/libjffs2.a 
fs/fdos/libfdos.a fs/fat/libfat.a net/libnet.a disk/libdisk.a rtc/librtc.a 
dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a 
post/cpu/libcpu.a common/libcommon.a lib_generic/libgeneric.a -L 
/usr/local/LxNETES-3/arm-linux/lib/gcc-lib/arm-linux/3.3.2 -lgcc --end-group 
\
                -Map u-boot.map -o u-boot
========================

The relevant entry in u-boot.map for __div0:


===========================
/usr/local/LxNETES-3/arm-linux/lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o)
                              drivers/libdrivers.a(serial_ns9750.o) 
(__udivsi3)
/
Compilation
============================


The build line for SMDK2410

=======================-
UNDEF_SYM=`arm-linux-objdump -x board/smdk2410/libsmdk2410.a 
cpu/arm920t/libarm920t.a lib_arm/libarm.a fs/jffs2/libjffs2.a 
fs/fdos/libfdos.a fs/fat/libfat.a net/libnet.a disk/libdisk.a rtc/librtc.a 
dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a 
post/cpu/libcpu.a common/libcommon.a lib_generic/libgeneric.a |sed  -n -e 
's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
        arm-linux-ld -Bstatic -T 
/targets/ewp/LxMOD/build/apps/u-boot.smdk/board/smdk2410/u-boot.lds -Ttext 
0x33F80000  $UNDEF_SYM cpu/arm920t/start.o \
                --start-group board/smdk2410/libsmdk2410.a 
cpu/arm920t/libarm920t.a lib_arm/libarm.a fs/jffs2/libjffs2.a 
fs/fdos/libfdos.a fs/fat/libfat.a net/libnet.a disk/libdisk.a rtc/librtc.a 
dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a 
post/cpu/libcpu.a common/libcommon.a lib_generic/libgeneric.a -L 
/usr/local/LxNETES-3/arm-linux/lib/gcc-lib/arm-linux/3.3.2 -lgcc --end-group 
\
                -Map u-boot.map -o u-boot
===================

The relevant entry in u-boot.map for __div0:

====================
lib_arm/libarm.a(_udivsi3.o)  cpu/arm920t/libarm920t.a(speed.o) (__udivsi3)

-- 
Markus Pietrek
FS Forth-Systeme GmbH
Phone: +49 (7667) 908 145,  FAX +49 (7667) 908 221






More information about the U-Boot mailing list