Build for ARM 926T fails if option software floating point is enabled

Khem Raj kraj at mvista.com
Fri Sep 7 23:29:13 UTC 2007


Pranav Sanghadia wrote:
> Hello Guys,
>
> I am new to embedded Linux, trying to build cross platform tools for 
> ARM 920t. I got following error message when option "software floating 
> point" is enabled. I found this issue reported as bug but do not see 
> clear solution. Can some one please help me?
>
> gcc version 4.1.1 20060724 (prerelease) (4.1.1-3mdk)
> uClibc - Latest verson
> binutils - 2.16.91
>
>
>
> STRIP -x -R .note -R .comment lib/uclibc_nonshared.a
>   AR cr lib/uclibc_nonshared.a
>   AR cr libc/libc_so.a
>   LD libuClibc-0.9.29.so <http://libuClibc-0.9.29.so>
> libc/libc_so.a(difftime.os): In function `difftime':
> difftime.c:(.text+0x8): undefined reference to `__floatsidf'
> difftime.c:(.text+0x2c): undefined reference to `__subdf3'
> libc/libc_so.a(_fpmaxtostr.os): In function `_fpmaxtostr':
> _fpmaxtostr.c:(.text+0xe0): undefined reference to `__nedf2'
> _fpmaxtostr.c:(.text+0x104): undefined reference to `__eqdf2'
> _fpmaxtostr.c:(.text+0x120): undefined reference to `__divdf3'
> _fpmaxtostr.c:(.text+0x12c): undefined reference to `__ltdf2'
> _fpmaxtostr.c:(.text+0x1e0): undefined reference to `__muldf3'
> _fpmaxtostr.c:(.text+0x394): undefined reference to `__gedf2'
> _fpmaxtostr.c:(.text+0x424): undefined reference to `__floatunsidf'
> libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
> __psfs_do_numeric.c:(.text+0x548): undefined reference to `__truncdfsf2'
> libc/libc_so.a(strtof.os): In function `strtof':
> strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
> libc/libc_so.a(__strtofpmax.os): In function `__strtofpmax':
> __strtofpmax.c:(.text+0x158): undefined reference to `__adddf3'
> /usr/local/buildroot/build_arm/staging_dir/usr/lib/gcc/arm-linux-uclibc/4.2.1/libgcc.a(_fixunsdfsi.o): 
> In function `__fixunsdfsi':
> libgcc2.c:(.text+0x34): undefined reference to `__fixdfsi'
> make[2]: *** [lib/libc.so] Error 1
> make[1]: *** [lib/libc.so.0] Error 2
> make[1]: Leaving directory 
> `/usr/local/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.29'
> make: *** 
> [/usr/local/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.29/lib/libc.a] 
> Error 2
>
> Regards,
>
> Pranav
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
You are missing a patch for soft float in libgcc. Search though 
crosstools archives.
try to patch your gcc with the below patch.

http://kegel.com/crosstool/crosstool-0.43/patches/gcc-3.4.5/gcc-3.4.0-arm-lib1asm.patch

-- 
Khem Raj
MontaVista Software Inc.




More information about the uClibc mailing list