[fpc-devel] ARM: problem with uses VFP instructions

Dariusz Mazur darekm at emadar.com
Wed Dec 2 15:17:28 CET 2009


Jonas Maebe pisze:
>
> On 02 Dec 2009, at 00:23, Dariusz Mazur wrote:
>
>> HI
>> I try to crosscompile for arm (uclibc and eabi). Source and listing 
>> error below.
>> But when I remove dynlibs form uses section, all goes OK
>> When I check link.res only few things are changed in section input
>> prt0->cprt0.o
>> ->crti.o
>>
>> What I should looking for.
>
> I don't understand the errors, because FPC does not yet support VFP at 
> all. So those FPC-generated object files cannot contain any VFP code. 
> On ARM systems, the kind of instructions used by an object file is 
> stored in its header by the assembler. Maybe you are using a toolchain 
> that has not been configured for softfloat to cross-compile.
i've make some investigation
problem start from crti.o linking from achieved toolchain (I use 
AT91SAM9260)
I found something like makro __FPV_FP in source for this library on 
uclibc.org
and explanation on http://wiki.debian.org/ArmEabiPort

When porting code to ARM EABI, the following preprocessor macros are 
interesting:

    *

      __VFP_FP__ means that the floating point format in use is that of
      the ARM VFP unit, which is native-endian IEEE-754.

    *

      __MAVERICK__ means that the floating point format is that of the
      irrus Logic MaverickCrunch
      <http://wiki.debian.org/MaverickCrunch>, which is also IEEE-754
      and is always little-endian.

    *

      __SOFTFP__ means that instead of floating point instructions,
      library calls are being generated for floating point math
      operations so that the code will run on a processor without an FPU.

__VFP_FP__ and __MAVERICK__ are mutually exclusive. If neither is set, 
that means the floating point format in use is the old mixed-endian 
45670123 format of the FPA unit.

Note that __VFP_FP__ does /not/ mean that VFP code generation has been 
selected. It only speaks of the floating point data format in use and is 
normally set when softfloat has been selected. The correct test for VFP 
code generation, for example around asm fragments containing VFP 
instructions, is


My question is: which variant use FPC


-- 
  Darek







More information about the fpc-devel mailing list