From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.invisibles.org (invisibles.org [213.152.46.20]) by robin.gentoo.org (8.13.4/8.13.4) with ESMTP id j3OIhFr5013203 for ; Sun, 24 Apr 2005 18:43:16 GMT Received: from localhost (localhost [127.0.0.1]) by mail.invisibles.org (Postfix) with ESMTP id A64ED14343A2 for ; Sun, 24 Apr 2005 19:43:24 +0100 (BST) Received: from mail.invisibles.org ([127.0.0.1]) by localhost (jackfrost [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 03990-03 for ; Sun, 24 Apr 2005 19:43:17 +0100 (BST) Received: from [192.168.0.88] (kingmob.invisibles.org [192.168.0.88]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.invisibles.org (Postfix) with ESMTP id E61881438A0A for ; Sun, 24 Apr 2005 19:43:16 +0100 (BST) Message-ID: <426BE855.80207@invisibles.org> Date: Sun, 24 Apr 2005 19:41:25 +0100 From: Tim Dodge User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050330) X-Accept-Language: en-us, en Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-embedded@gentoo.org Reply-to: gentoo-embedded@lists.gentoo.org MIME-Version: 1.0 To: gentoo-embedded@lists.gentoo.org Subject: Re: [gentoo-embedded] arm-xscale-linux-uclibc and soft-float References: <42696AE8.6030601@invisibles.org> In-Reply-To: <42696AE8.6030601@invisibles.org> Content-Type: multipart/mixed; boundary="------------060409060708080903000903" X-Virus-Scanned: by amavisd-new using ClamAV at invisibles.org X-Archives-Salt: d9c12c3d-985e-4837-b407-ab4060f55a17 X-Archives-Hash: 2571b9f49db72c355a5070f67b7dbefc This is a multi-part message in MIME format. --------------060409060708080903000903 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Tim Dodge wrote: > Hi, > > I'm attempting to build an arm-xscale-linux-uclibc toolchain that uses > soft-float, so that I can build a version of gentoo for my zaurus c860. > > Without soft-float, everything seems to be okay - I've managed to build > a 2.6 kernel that boots into a minimal root fs. > > I have managed to build a soft-float version of the toolchain, but now > nothing will link, I'm getting undefined references to the float > functions like so: > > configure:1644: checking for C compiler default output > configure:1647: arm-xscale-linux-uclibc-gcc -Os -pipe > -march=armv5te -mtune=xscale conftest.c >&5 > > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__eqdf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__floatsidf' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__ltdf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__extendsfdf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__adddf3' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__fixdfsi' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__divdf3' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__muldf3' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__truncdfsf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__nedf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__gedf2' > /usr/lib/gcc/arm-xscale-linux-uclibc/3.4.3-20050110/../../../../arm-xscale-linux-uclibc/lib/libc.so: > undefined reference to `__subdf3' > collect2: ld returned 1 exit status > > I'm using gcc-3.4.3.20050110-r2.ebuild and uclibc-0.9.27.ebuild. > > I was under the impression that the soft-float routines had been added > to gcc since v3.4, and that libfloat is no longer required. > > Any idea what I'm doing wrong? > > Cheers, > Tim I've managed to successfully build the soft-float toolchain using these two patches from openembedded. I needed to alter the uclibc ebuild to also unset HAS_FPU, and build gcc using EXTRA_ECONF="--with-float=soft". Cheers, Tim --------------060409060708080903000903 Content-Type: text/plain; name="gcc-3.4.0-arm-lib1asm.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gcc-3.4.0-arm-lib1asm.patch" # Fixes errors like the following when building glibc (or any other executable # or shared library) when using gcc 3.4.0 for ARM with softfloat: # # .../libc_pic.os(.text+0x15834): In function `__modf': undefined reference to `__subdf3' # .../libc_pic.os(.text+0x158b8): In function `__modf': undefined reference to `__subdf3' # .../libc_pic.os(.text+0x1590c): In function `scalbn': undefined reference to `__muldf3' # .../libc_pic.os(.text+0x15e94): In function `__ldexpf': undefined reference to `__eqsf2' # .../libc_pic.os(.text+0xcee4c): In function `monstartup': undefined reference to `__fixsfsi' diff -urNd gcc-3.4.0-orig/gcc/config/arm/t-linux gcc-3.4.0/gcc/config/arm/t-linux --- gcc-3.4.0-orig/gcc/config/arm/t-linux 2003-09-20 23:09:07.000000000 +0200 +++ gcc-3.4.0/gcc/config/arm/t-linux 2004-05-01 20:31:59.102846400 +0200 @@ -4,7 +4,10 @@ LIBGCC2_DEBUG_CFLAGS = -g0 LIB1ASMSRC = arm/lib1funcs.asm -LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx +LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ + _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ + _fixsfsi _fixunssfsi # MULTILIB_OPTIONS = mhard-float/msoft-float # MULTILIB_DIRNAMES = hard-float soft-float --------------060409060708080903000903 Content-Type: text/plain; name="gcc-3.4.0-arm-nolibfloat.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gcc-3.4.0-arm-nolibfloat.patch" # Dimitry Andric , 2004-05-01 # # * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed # anymore. (The required functions are now in libgcc.) # # Fixes errors like # arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat # collect2: ld returned 1 exit status # make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1 # when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat diff -urNd gcc-3.4.0-orig/gcc/config/arm/linux-elf.h gcc-3.4.0/gcc/config/arm/linux-elf.h --- gcc-3.4.0-orig/gcc/config/arm/linux-elf.h 2004-01-31 07:18:11.000000000 +0100 +++ gcc-3.4.0/gcc/config/arm/linux-elf.h 2004-05-01 19:19:06.935979200 +0200 @@ -55,7 +73,7 @@ %{shared:-lc} \ %{!shared:%{profile:-lc_p}%{!profile:-lc}}" -#define LIBGCC_SPEC "%{msoft-float:-lfloat} -lgcc" +#define LIBGCC_SPEC "-lgcc" /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add the GNU/Linux magical crtbegin.o file (see crtstuff.c) which --------------060409060708080903000903-- -- gentoo-embedded@gentoo.org mailing list