crosstool 0.28pre demo-arm-softfloat.sh FP issue

Leon Woestenberg leonw@mailcan.com
Thu Mar 11 14:23:00 GMT 2004


Hello,

two questions regarding assembly softfloat and printf("%f");

there is Nicolas Pitre's assembly softfloat patch for gcc-3.3.2 
(3.3-two), with some additionals by Robert Schwebel.
   crosstool-0.28-pre4/patches/gcc-3.3.2/gcc-3.3.2-arm-softfloat.patch

but it does not re-occur in gcc-3.3.3 (3.3-three):
   crosstool-0.28-pre4/patches/gcc-3.3.3/

Q1) Is this intentional (Dan)?

In crosstool, I have added (softlinked) the patch to gcc-3.3.3, and 
added the following patches to glibc-2.3.2 to solve the printf("%f") 
issue, at least for XScale, as discussed here:

http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-November/006590.html

This patchset is substantially different than the one mentioned in
demo-arm-softfloat.sh, which refers to:

http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html

Q2) Can someone with more knowledge than me on the issue, which patch is 
the better one for resolving the printf("%f") issue? They seem to take
different approaches.

Regards,

Leon.

Leon Woestenberg wrote:
> Hello Robert, Dan,
> 
> there is the assembly softfloat patch for gcc-3.3.2 (3.3-two):
>   crosstool-0.28-pre4/patches/gcc-3.3.2/gcc-3.3.2-arm-softfloat.patch
> 
> but it does not re-occur in gcc-3.3.3 (3.3-three):
>   crosstool-0.28-pre4/patches/gcc-3.3.3/
> 
> Is this intentional?
> 
> I have added (softlinked) the patch to gcc-3.3.3, and added the
> following patches to glibc-2.3.2 to solve the printf("%f") issue,
> at least for XScale, as discussed here:
> 
> http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-November/006590.html
> 
> This patchset is substantially different than the one mentioned in
> demo-arm-softfloat.sh, which refers to:
>   http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
> 
> Robert
> 
> Regards,
> 
> Leon.
> 
> 
> Dan Kegel wrote:
> 
>> Hi Leon,
>> I'm afraid I'm not able to follow this issue much, but
>> Robert Schwebel is; he's the one who dug up the copy of Nicolas'
>> patch that I use.  I'm cc'ing him, perhaps he can comment.
>> Thanks,
>> Dan
>>
>> Leon Woestenberg wrote:
>>
>>> Hello Dan,
>>>
>>> just been quickly viewing at your crosstool 0.28pre4.
>>>
>>> I have been following the softfloat issue concerning
>>> printf("%f", 1.0) for ARM architectures.
>>>
>>> In your demo-arm.sh, you mention this patch:
>>> http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html
>>>
>>> However, you may be more interested in this patch instead:
>>> http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-November/006590.html 
>>>
>>>
>>> This came forward in a very recent (as in current) discussion thread 
>>> on the arm-linux mailing list;
>>>
>>> http://lists.arm.linux.org.uk/pipermail/linux-arm/2004-March/thread.html#7214 
>>>
>>>
>>> (see the SoftFloat and SoftFloat Benchmarks threads, especially the 
>>> 3rd message in the SoftFloat thread.)
>>>
>>> I am very new in using crosstool, but I will try to add Nicolas Pitre's
>>> assembly optimized softfloat as well as the big endian patch (that makes
>>> glibc printf work OK) and try to test them on an XScale IXP425.
>>>
>>> Also note that the benchmarks show that Nicolas Pitre's patch passes 
>>> some FP tests.
>>>
>>> Regards,
>>>
>>> Leon.
>>>
>>> ------------------------------------------------------------------------
>>>
>>> Subject:
>>> Re: SoftFloat Benchmarks
>>> From:
>>> Eric BENARD / Free <ebenard@free.fr>
>>> Date:
>>> Tue, 9 Mar 2004 10:05:05 +0100
>>> To:
>>> Leon Woestenberg <leonw@mailcan.com>, linux-arm@lists.arm.linux.org.uk
>>>
>>> To:
>>> Leon Woestenberg <leonw@mailcan.com>, linux-arm@lists.arm.linux.org.uk
>>>
>>>
>>> Le Lundi 8 Mars 2004 23:14, Leon Woestenberg a écrit :
>>>
>>>> I am however, also interested in learning how you built your toolchain
>>>> with Nico's patches. Are you using a cross compilation tool or was this
>>>> hand-crafted?
>>>>
>>>
>>> Hand-crafted in order to have a good control on the build process (I 
>>> had to give several try for some stages). I'm using patches from 
>>> crosstool's patches directory and patches from mailing lists.
>>> I can post some details if necessary as I wrote the process on a paper.
>>>
>>>
>>>> Did you also make sure the "printf("%f", 1.0)" issue was solved in your
>>>> toolchain as discussed here?
>>>>
>>>> http://sources.redhat.com/ml/crossgcc/2004-02/msg00106.html
>>>>
>>>
>>> Yes. In fact I'm using these patches :
>>> http://lists.arm.linux.org.uk/pipermail/linux-arm/2003-November/006590.html 
>>>
>>>
>>> Which are giving good results with several test programs (I'll post 
>>> tests results later today as these results are also interesting).
>>>
>>> Patches I'm using :
>>> - binutils-2.15.90.0.1.1 :
>>>     arm-be.patch
>>> - GCC-3.3.3 :
>>>     gcc-3.3.2-arm-softfloat.diff  gcc-3.3.2-arm-targetbug.diff  t-linux
>>> - Glibc-2.3.2 :
>>>     arm-asm-clobber.patch     sscanf.patch
>>>     string2-typedef.patch
>>>     errlist-awk.patch         sysdep-cancel-arm-1.2-1.6.patch
>>>     patch-glibc-ieee754-arm-ieee754.h  patch-glibc-ieee754-dbl64-mpn2dbl
>>>     patch-glibc-ieee754-dbl64-dbl2mpn  patch-glibc-ieee754-flt32-mpn2flt
>>> - NWFPE :     nwfpe-double_cpdo.c  nwfpe-fpa11_cpdt.c
>>>
>>>
>>>> Also, there seem to be outstanding issues for non-XScale targets, as 
>>>> the
>>>> assembler is forced to target XScales (but that is good for IXP425 :).
>>>>
>>>> http://sources.redhat.com/ml/crossgcc/2004-02/msg00129.html
>>>>
>>>
>>> I'm not using this patch, nor this one : 
>>> http://gcc.gnu.org/ml/gcc-patches/2001-12/msg01370.html
>>>
>>> The toolchain is optimized and dedicated to big endian Xscale, but 
>>> that's not a real problem as it's easy to have an optimized toolchain 
>>> for each target and switch the PATH depending on the wanted target.
>>>
>>> If you want a generic toolchain optimized for each configuration you 
>>> will have to compile several glibc with each option and to handle 
>>> several directories and options for gcc to get and link to the 
>>> correct configuration (big-endian+ soft-float for example) and this 
>>> is not very clear to me, so I compiled several toolchains using the 
>>> same process but not the same options/patches :
>>>     - standard (let the kernel handle FP)
>>>     - softfloat, with Nicolas' patch
>>>     - -msoft-float : let have an external libfloat library.
>>>
>>> Eric
>>>
>>>
>>
>>
> 
> 


------
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