[fpc-devel] Arm Hardfloat

den.jean at telenet.be den.jean at telenet.be
Thu Oct 4 15:31:39 CEST 2012


> The hard float abi is not supported in fixes_2_6, and probably never
> will be. Additionally, you cannot compile programs for the hard
> float abi using a regular eabi compiler. You have to compile the ARM
> compiler with -dFPC_ARMHF.
I tried fixes_2_6 first as the idea was to use lazarus Qt and I
had problems with both lazarus and Qt binding using fpc 2.7
I only found FPC_ARMEL defined in fpc sources
and the VFPV3 in `fpc -i` made me believe this was how you define hardfloat.
To me all this is still a bit confusing.

I already find out reading 
that ARMEL does not include hardfloat calling convention and that
a new -dFPC_ARMHF has been defined. 

So I used trunk and now I am able to create a cross compiler
that seems to generate correct code. I had a small test program 
that calls a function with float arguments in a small test library.
This test program now works.

Next arm question :-)
Currently I am unable to generate a native
compiler, I do things like (from memory, not in front of beaglebone)
cd compiler
make cycle PP=old armel ppcarm 'all options like -dFPC_ARMHF -Cf.. -Ca.. -Cp.. '
this creates a ppcarm_hf and a armhf rtl
cd ..
make all install PP=previous ppcarm_hf
If use the ppcarm_hf as i noted by substituting as and ld with scripts,
that not the right hardfloat parameters were passed to as with PP=old armel ppcarm
This stops at compiling somewhere (fpmake if I remember well)
I understand that compiling trunk with trunk and on arm is not a good
idea. On top of that, this is very slow.
How can I avoid above. I would like to create it from cross.

But when I do 
make crosszipinstall it gives me a cross ppcrossarm (i386 executable)
and arm rtl/packages.
How can I generate a corresponding (to arm rtl/packages) ppcarm (arm executable)
from i386 so that i can copy over a full fpc installation to the arm board?

Kind regards,

Den Jean

More information about the fpc-devel mailing list