[fpc-devel] help with softfloat for arm big endian crosscompiler

Terry Kemp tkemp at klc.net.nz
Wed Dec 13 03:45:21 CET 2006


Hi,

questions...
Is -CfSOFT supported on arm 2.0.5?
Do I need to add/define something when I build the crosscompiler to get
softfloat support?
Is changing system_arm_linux_info.endian to endian_big in
fpc/compiler/systems/i_linux.pas enough? I see in 
references to {$if defined(CPUARM) and defined(FPUFPA)} and {$ifdef
FPC_LITTLE_ENDIAN} but no FPUSOFT or FPC_BIG_ENDIAN.

I have successfully made a crosscompiler for big endian arm and it
(ppcarm) compiles without problems and the resultant elf executes on the
arm.

But if I use any floating point it crashes out with...

$ ppcarm -XParm-linux- -Xs -XX -CpARMV5 -CfSOFT -n -B -vewhli \
-Fu~/arm-linux-fpc.i386-linux/lib/fpc/2.0.5/units/arm-linux/rtl \
floattest
Target OS: Linux for ARM
Compiling floattest.pp
2 67/864 Kb Used
floattest.pp(8,9) Fatal: Internal error 200308252
floattest.pp(8,9) Fatal: Compilation aborted

This is with...
program floattest;

Var
 a, b, c: single;
begin
 a := 1.5;
 b := 2.5;
 c := a * b;
 writeln(c);
end.

$ ppcarm -i
Free Pascal Compiler version 2.0.5

Compiler Date      : 2006/10/24
Compiler CPU Target: arm

Supported targets:
  Linux for ARM

Supported CPU instruction sets:
  ARMV3
  ARMV4
  ARMV5

Supported FPU instruction sets:
  SOFT
  LIBGCC
  FPA
  FPA10
  FPA11
  VFP

Thanks for any help here.
Terry




More information about the fpc-devel mailing list