This is the mail archive of the crossgcc@sourceware.org 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.40 preview


On Sun, Feb 19, 2006 at 07:47:03PM +0000, Martin Guy wrote:
> You may be confusing matters here. With ARM FP there are three levers to set:
> - FP representation (FPA representation or IEEE-754)
> - FP code generation (FP instructions for FPA or VFP or iwmmxt/xscale
> or MaverickCrunch, all of which have different instruction sets)
> - FP implementation mechanism (a real FPU executing real instructions,
> soft float library calls or kernel or userland emulation by trapping
> illegal instruction)
> 
> oh, and probably these days a fourth:
> - ABI used for floating point calls in userland
> but don't mention that yet.

Thanks for clarifying. 

> To get library compatability for uboot, kernel and userland I think
> you need to decide whether it is a representation, implementation or
> code generation issue. Does uboot need to initialise the VFP
> processor or do lots of FP or something? Or is it just a
> library-compatability problem so that you can link it, as it seems?

The latter one, I'm not sure if u-boot uses floating point at all. But
with the default arm-softfloat toolchain, producing soft fpa, you cannot
use soft vfp code on the same system. I'm not sure about the details,
Marc and Sascha can probably say more about this as they did the
experiments and the patch. 

> gcc's default FP representation follows the processor/FPU combination
> that you select, or defaults to FPA if none is given or IEEE if
> -msoft-float is given.  That is why ARM people often say "soft float"
> when they mean IEEE754, since that was the only context it occurred in
> (or nowadays they say "VFP").
> 
> The reason is that historically the first physical FPU and the first
> set of soft-float code that became available historically used FPA and
> IEEE respectively, but changing the default selection mechanism would
> probably break things that rely on it. Like Debian frinstance.

So would it be a good solution to change just the default behaviour,
with default like in "no -mfpu= and no -msoft-float switch was given",
to '-mfpu=vfp -msoft-float' for a arm-softvfp-linux-gnu toolchain and
'-mfpu=fpa -msoftfloat' for arm-softfpa-linux-gnu (which is what it does
at the moment)? 

How would we handle the abi and endianess issues then?

Robert 
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9


------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.org


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