buildroot fails for ARM w/ gcc 4.1 and soft float

??? cjemi at zot.com.tw
Fri May 12 06:08:17 UTC 2006


del "-z defs" in Rules.mak
----- Original Message ----- 
From: "Khem Raj" <khem at mvista.com>
To: "Lance Spaulding" <lsjunk1 at cableone.net>
Cc: <uclibc at uclibc.org>
Sent: Friday, May 12, 2006 11:20 AM
Subject: Re: buildroot fails for ARM w/ gcc 4.1 and soft float


> Lance Spaulding wrote:
>> Hi Nitin,
>>
>> Thanks for the reply but I'm not sure where these values are defined.  I 
>> just tried building again for a generic  litttle-endian ARM with software 
>> floating point and ran into the same problems.  If I use a nightly 
>> snapshot and try to build gcc 4.1, I get the following errors:
> Check your libgcc build. It seems it did not build properly for soft float 
> case.
>>
>>  STRIP -x -R .note -R .comment lib/libc.a
>>  AR cr lib/libc.a
>>  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.28.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+0xd4): undefined reference to `__nedf2'
>> _fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
>> _fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
>> _fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
>> _fpmaxtostr.c:(.text+0x1d0): undefined reference to `__muldf3'
>> _fpmaxtostr.c:(.text+0x394): undefined reference to `__gedf2'
>> _fpmaxtostr.c:(.text+0x43c): undefined reference to `__adddf3'
>> libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
>> __psfs_do_numeric.c:(.text+0x518): undefined reference to `__truncdfsf2'
>> libc/libc_so.a(strtof.os): In function `strtof':
>> strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
>> /usr/local/arm-uclibc-tools/lib/gcc/arm-linux-uclibc/4.1.0/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 
>> `/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc'
>> make: *** 
>> [/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc/lib/libc.a] Error 
>> 2
>>
>> If I try to build w/o using the nightly snapshot (eg - use 0.9.28) , I 
>> get the following error instead:
>>
>> /usr/local/arm-uclibc-tools/bin/arm-linux-uclibc-strip -x -R .note -R 
>> .comment arm/resolve.o
>> /usr/local/arm-uclibc-tools/bin/arm-linux-uclibc-gcc  -Wall -Wstrict-prototypes 
>>  -Wno-trigraphs -fno-strict-aliasing -fno-stack-protector  -fstrict-aliasing 
>>  -Os -funit-at-a-time -DUCLIBC_LDSO=\"ld-uClibc.so.0\"    -mlittle-endian 
>>  -msoft-float -fPIC -DUCLIBC_RUNTIME_PREFIX=\"/\" -fno-builtin -nostdinc  
>> -D_LIBC -I../../ldso/include -I. -I../../include -isystem 
>> /usr/local/arm-uclibc-tools/lib/gcc/arm-linux-uclibc/4.1.0/include -c 
>> ldso.c -o ldso.o
>> /usr/local/arm-uclibc-tools/bin/arm-linux-uclibc-strip -x -R .note -R 
>> .comment ldso.o
>> /usr/local/arm-uclibc-tools/bin/arm-linux-uclibc-ld -EL -e _start -z 
>> now -Bsymbolic -shared --warn-common --export-dynamic --sort-common -z 
>> combreloc --discard-locals --discard-all --no-undefined -s -soname=ld-uClibc.so.0 
>> \
>>        -o ld-uClibc-0.9.28.so arm/resolve.o ldso.o 
>> /usr/local/arm-uclibc-tools/lib/gcc/arm-linux-uclibc/4.1.0/libgcc.a
>> /usr/local/arm-uclibc-tools/lib/gcc/arm-linux-uclibc/4.1.0/libgcc.a(_dvmd_lnx.o): 
>> In function `__div0':
>> /root/lance/buildroot/toolchain_build_arm_nofpu/gcc-4.1.0/gcc/config/arm/lib1funcs.asm:1000: 
>> undefined reference to `raise'
>> make[3]: *** [ld-uClibc-0.9.28.so] Error 1
>> make[3]: Leaving directory 
>> `/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.28/ldso/ldso'
>> make[2]: *** [ldso] Error 2
>> make[2]: Leaving directory 
>> `/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.28/ldso'
>> make[1]: *** [_dir_ldso] Error 2
>> make[1]: Leaving directory 
>> `/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.28'
>> make: *** 
>> [/root/lance/buildroot/toolchain_build_arm_nofpu/uClibc-0.9.28/lib/libc.a] 
>> Error 2
>>
>> Here's my buildroot/.config (minus the commented lines):
>>
>> BR2_HAVE_DOT_CONFIG=y
>> BR2_arm=y
>> BR2_generic_arm=y
>> BR2_ARM_TYPE="GENERIC_ARM"
>> BR2_ARCH="arm"
>> BR2_ENDIAN="LITTLE"
>>
>> BR2_WGET="wget --passive-ftp"
>> BR2_SVN="svn co"
>> BR2_TAR_OPTIONS=""
>> BR2_DL_DIR="$(BASE_DIR)/dl"
>> BR2_SOURCEFORGE_MIRROR="easynews"
>> BR2_STAGING_DIR="/usr/local/arm-uclibc-tools"
>> BR2_TOPDIR_PREFIX=""
>> BR2_TOPDIR_SUFFIX=""
>> BR2_GNU_BUILD_SUFFIX="pc-linux-gnu"
>> BR2_JLEVEL=1
>>
>> BR2_KERNEL_HEADERS_2_6_12=y
>> BR2_DEFAULT_KERNEL_HEADERS="2.6.12"
>>
>> BR2_UCLIBC_VERSION_SNAPSHOT=y
>> BR2_USE_UCLIBC_SNAPSHOT="snapshot"
>> BR2_ENABLE_LOCALE=y
>> BR2_PTHREADS_OLD=y
>>
>> BR2_BINUTILS_VERSION_2_16_1=y
>> BR2_BINUTILS_VERSION="2.16.1"
>> BR2_EXTRA_BINUTILS_CONFIG_OPTIONS=""
>>
>> BR2_GCC_VERSION_4_1_0=y
>> BR2_GCC_VERSION="4.1.0"
>> BR2_EXTRA_GCC_CONFIG_OPTIONS=""
>> BR2_INSTALL_LIBSTDCPP=y
>>
>> BR2_PACKAGE_GDB_SERVER=y
>> BR2_PACKAGE_GDB_HOST=y
>> BR2_GDB_VERSION_6_3=y
>> BR2_GDB_VERSION="6.3"
>>
>> BR2_ELF2FLT=y
>>
>> BR2_PACKAGE_SSTRIP_HOST=y
>> BR2_ENABLE_MULTILIB=y
>> BR2_LARGEFILE=y
>> BR2_SOFT_FLOAT=y
>> BR2_TARGET_OPTIMIZATION="-Os -pipe"
>> BR2_CROSS_TOOLCHAIN_TARGET_UTILS=y
>>
>> BR2_QTE_TMAKE_VERSION="1.13"
>> BR2_PACKAGE_SUDO=y
>>
>> I'm able to build OK except when I enable the software floating point 
>> options (in both the menuconfig and the gcc config that comes up later). 
>> Can someone tell me what Im doing wrong?  Or would someone post a working 
>> .config for software-floating point?
>>
>> Thanks,
>> Lance
>>
>>
>>
>>
>>
>> Nitin Gupta wrote:
>>
>>> When I stumbled upon something similar I found out that I was setting
>>> UCLIBC_HAS_FPU=y
>>> instead of
>>> HAS_FPU
>>>
>>> Hope it helps.
>>> Nitin
>>>
>>> Lance Spaulding wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm trying to build a 4.1 based cross compiler for an ARM without 
>>>> hardware floating point but keep getting errors.  According to the 
>>>> following bug report, these errors were fixed but I'm getting them with 
>>>> the daily snapshot (4/7/06):
>>>>
>>>> http://bugs.uclibc.org/bug_view_advanced_page.php?bug_id=574
>>>>
>>>> Here's the output from the compile showing the error:
>>>>
>>>>  AS lib/crtn.o
>>>>  STRIP -x -R .note -R .comment lib/libc.a
>>>>  AR cr lib/libc.a
>>>>  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.28.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+0xd4): undefined reference to `__nedf2'
>>>> _fpmaxtostr.c:(.text+0xf8): undefined reference to `__eqdf2'
>>>> _fpmaxtostr.c:(.text+0x114): undefined reference to `__divdf3'
>>>> _fpmaxtostr.c:(.text+0x120): undefined reference to `__ltdf2'
>>>> _fpmaxtostr.c:(.text+0x1d0): undefined reference to `__muldf3'
>>>> _fpmaxtostr.c:(.text+0x394): undefined reference to `__gedf2'
>>>> _fpmaxtostr.c:(.text+0x43c): undefined reference to `__adddf3'
>>>> libc/libc_so.a(__psfs_do_numeric.os): In function `__psfs_do_numeric':
>>>> __psfs_do_numeric.c:(.text+0x514): undefined reference to 
>>>> `__truncdfsf2'
>>>> libc/libc_so.a(strtof.os): In function `strtof':
>>>> strtof.c:(.text+0x1c): undefined reference to `__extendsfdf2'
>>>>
>>>> I've attached the .config I'm using.
>>>>
>>>> Is buildroot & uClibc supposed to work correctly with gcc 4.1 on ARM?
>>>>
>>>> Thanks in advance,
>>>> Lance
>>>> _______________________________________________
>>>> uClibc mailing list
>>>> uClibc at uclibc.org
>>>> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
>>>
>>>
>>>
>>
>> _______________________________________________
>> uClibc mailing list
>> uClibc at uclibc.org
>> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://busybox.net/cgi-bin/mailman/listinfo/uclibc
> 




More information about the uClibc mailing list