[fpc-devel] error when crosscompile for arm
Dariusz Mazur
darekm at emadar.com
Wed Dec 2 16:19:53 CET 2009
Jonas Maebe pisze:
> On 02 Dec 2009, at 00:15, Dariusz Mazur wrote:
>
>
>> Jonas Maebe pisze:
>>
>>> On 30 Nov 2009, at 23:47, Dariusz Mazur wrote:
>>>
>>>
>>>> Is this possible to add special directive, that left the same behavior of comp under arm?
>>>> or any other hack?
>>>>
>>> Only a hardware hack: solder an x87-fpu on your ARM processor and use that... This cannot be fixed in software without emulating an x87-fpu (or 128 bit floats), because a double precision floating point type does not have the required precision to represent all comp values.
>>>
>> I was thinking, that soft FPU can emulate this,
>>
>
> It could once someone adds float80 support to it. Currently only single and double are supported.
>
>
>> or compiler can use comp internal as int64 and external as real.
>>
>
> That would result in precision loss.
>
Why. comp is 8 byte wide, the same as int64,
As I read Delphi help now, comp is internal Intel int64, but is
classified as real, because it is not ordinal type.
>
>> From these stage I have one suggestion.
>> on linux-i368 directive $E claim: switch $E is not supported
>>
>
> I think that's quite self-explanatory.
>
>
>> on linux-arm the same switch cause compiling error (problems with units generating with different switch ) remark: all compiled with -CfSOFT
>>
>
> Compiling with -Cfsoft and {$E-} will indeed probably causes errors. The compiler should simply give an error when you try to do that.
>
Not simpler ignore this?
On other platforms this is not enough, and more switches should be added
--
Darek
More information about the fpc-devel
mailing list