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