gcc 4.0.x arm softfloat difficulties
Dave Korn
dave.korn@artimi.com
Wed Jan 4 18:14:00 GMT 2006
Lennert Buytenhek wrote:
> Hi!
>
> I've been trying to get a gcc 4.0.x-based arm softfloat toolchain
> working (using crosstool), with little success so far.
Disclaimer: I have no knowledge of the situation with arm and fp, and I
never use glibc. So please regard this as an annoying question from an
under-informed idiot:
> gcc 4.0.1) and that causes glibc to be built hardfloat since gcc 3.3
> doesn't have arm softfloat support out-of-the-box.
Ok, so 3.3 doesn't have softfloat support.
> So, I forward-ported patches/gcc-3.4.2/gcc-3.4.0-arm-lib1asm.patch and
> patches/gcc-3.4.2/gcc-3.4.0-arm-nolibfloat.patch,
Let's just take a quick look at that second patch:
--- 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 _floatdidf _floatdisf
# MULTILIB_OPTIONS = mhard-float/msoft-float
# MULTILIB_DIRNAMES = hard-float soft-float
Ok, so you added a patch that causes the libgcc soft-float functions (such
as, say, just for example, oh, I dunno, maybe take '_floatdidf' as an
example?) to be added to the libgcc build, and then you continued, and then
you found ...
> libgcc/./_floatdidf_s.o: In function `__floatdidf':
> libgcc2.c:(.text+0x0): multiple definition of `__floatdidf'
>
libgcc/./_addsubdf3_s.o:/data/buytenh/crosstool/crosstool-0.38/build/arm-softf
loat-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-4.0.1/gcc/config/arm/ieee754-df.S:474
:
> first defined here
... that doing so causes a clash with something else also called _floatdidf,
but which lives in the very meaningfully-soundingly-named "ieee754-df.S".
> I can't really imagine that gcc 4.0.x arm softfloat doesn't work at all
> or that nobody is using it, so maybe someone here has an idea what to do
> before I proceed to plod on?
So just out of curiosity (here's where I either say something very very
stupid or solve the problem for you), if old versions of gcc didn't have soft
float, and you've taken a new version of gcc, and tried to add soft float, and
got an error from having _two_ versions of the softfloat functions ...
... doesn't that mean that someone else has _already_ added soft float to
gcc, sometime between 3.3 and 4.0.1, and your patch was unneccessary?
cheers,
DaveK
--
Can't think of a witty .sigline today....
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list