호스트는 페도라4 에 falinux사 Toolchain-gcc-3.4.3 를 설치하였읍니다.
2410보드에 U-boot를 올리기 위하여 컴파일하였는데, 다음의 에러가 발생하였습니다.
falinux에서 제공하는 크로스 컴파일러 3.4.3을 사용하여 컴파일 하였는데,
크로스 컴파일러의 libgcc.a 에서는 hardware FP를 사용하는데
U-boot에서는 software FP를 사용하기 때문에 에러가 발생합니다..
/usr/bin/arm-linux-ld: ERROR: /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_divsi3.oS) uses hardware FP, whereas u-boot uses software FP
/usr/bin/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_divsi3.oS)
/usr/bin/arm-linux-ld: ERROR: /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_umodsi3.oS) uses hardware FP, whereas u-boot uses software FP
/usr/bin/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_umodsi3.oS)
/usr/bin/arm-linux-ld: ERROR: /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_modsi3.oS) uses hardware FP, whereas u-boot uses software FP
/usr/bin/arm-linux-ld: failed to merge target specific data of file /usr/lib/gcc/arm-linux/3.4.3/libgcc.a(_modsi3.oS)
make: *** [u-boot] 오류 1
[root@localhost ln2410sbc_uboot-1.0.0]#
에러가 위와같이 발생할때 해결방법은
grep -nR 'msoft-float' *
를 실행하셔서 msoft-float가 들어간 U-BOOT 파일을 찿아주신후
2410 보드일경우
cpu/arm920t/ 위치에 msoft-float가 들어간 파일을 찿으셔서
msoft-float 옵션을 제거하신후에
make clobber
make 보드명_config
make
를 실행하시면 U-Boot 컴파일에러가 없어지더군요 ...
참고하세요 ...