
Rongjun Lu wrote:
when I compiled arm-boot with the toolchains from SNAPGEAR(arm-linux-tools-20031127), following errors occured:
arm-linux-ld -nostdlib -Bstatic -T board/samsung/armboot.lds -Ttext 0x0c170000 cpu/arm920t/start.o common/libcommon.a fs/jffs2/libjffs2.a net/libnet.a disk/libdisk.a board/samsung/libsamsung.a cpu/arm920t/libarm920t.a drivers/libdrivers.a common/libcommon.a //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a -Map armboot.map -o armboot arm-linux-ld: ERROR: //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) uses hardware FP, whereas armboot uses software FP File in wrong format: failed to merge target specific data of file //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_udivsi3.o) arm-linux-ld: ERROR: //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) uses hardware FP, whereas armboot uses software FP File in wrong format: failed to merge target specific data of file //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_umodsi3.o) arm-linux-ld: ERROR: //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o) uses hardware FP, whereas armboot uses software FP File in wrong format: failed to merge target specific data of file //home/lurj/board_tms5471/build-tools/usr/local/bin/../lib/gcc-lib/arm-linux/3.3.2/libgcc.a(_dvmd_lnx.o)
As the ERROR suggests your toolchain is using hardware FP, but ARM CPU is lacking that. If you are building toolchain yourself be sure to use --with-float=soft at gcc configure. You would be probably better off using prebuilt and tested toolchain, or use somekind of tool for creating cross compiled toolchain instead.
regards, himba