This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]