[fpc-pascal] some problem in SVN FPC for arm linux (v 2.3.1)
josepascual (almudi)
josepascual at almudi.com
Tue May 1 13:03:32 CEST 2007
> On 01/05/07, josepascual (almudi) <josepascual at almudi.com> wrote:
> >
> > I have done it, I'm going to svn/fpc/ directory and I run fpcmake
> > -Tarm-linux.
> >
> > question:
> > a) should I run fpcmake -pw -Tarm-linux?
> > b) or should I run fpcmake -rpw -Tarm-linux? (recursive)
> > c) or only fpcmake -Tarm-linux
> >
>
> fpcmake -rTall
>
> you shouldn't have to do this if you haven't modified Makefile.fpc in
> any of the directories. it doesn't hurt, though.
I have downloaded SVN version for 2.1.3. I have no patch anything as other
times before,
I'm compiling with -CfSOFT (I want to generate a ppcrossarm eabi)
make clean crossall CPU_TARGET=arm OS_TARGET=linux
CROSSBINDIR=/usr/local/arm/gcc-4.1.1-glibc-2.5-gnueabi/bin/
BINUTILSPREFIX=armv4t-crosstool-linux-gnueabi-
PP=/usr/local/lib/fpc/2.1.1/ppc386 OPT="-CfSOFT"
.
.
.
/trabajo/x86/freepascal/svn/fpc/rtl/units/arm-linux/system.s: Assembler
messages:
/trabajo/x86/freepascal/svn/fpc/rtl/units/arm-linux/system.s:12610: Error:
selected processor does not support `rfs r0'
/trabajo/x86/freepascal/svn/fpc/rtl/units/arm-linux/system.s:12613: Error:
selected processor does not support `wfs r0'
system.pp(335) Error: Error while assembling exitcode 1
system.pp(335) Fatal: There were 2 errors compiling module, stopping
Fatal: Compilation aborted
.
.
.
I resolved it other times removing assembler code in rtl/arm/mathu.inc and
rtl/arm/arm.inc for rfs and wfs arm instruction,
but Is it correct?
extracted from rtl/arm/mathu.inc
.
.
{$if not(defined(gba)) and not(defined(nds))}
const
_FPU_MASK_IM = $00010000; { invalid operation }
_FPU_MASK_ZM = $00020000; { divide by zero }
_FPU_MASK_OM = $00040000; { overflow }
_FPU_MASK_UM = $00080000; { underflow }
_FPU_MASK_PM = $00100000; { inexact }
_FPU_MASK_DM = $00000000; { denormalized operation }
_FPU_MASK_ALL = $001f0000; { mask for all flags }
function FPU_GetCW : dword; nostackframe; assembler;
asm
rfs r0
end;
procedure FPU_SetCW(cw : dword); nostackframe; assembler;
asm
wfs r0
end;
{$endif}
.
.
.
What is gba and nds?
extracted from rtl/arm/arm.inc
procedure fpc_cpuinit;
begin
{$if not(defined(wince)) and not(defined(gba)) and not(defined(nds))}
asm
rfs r0
and r0,r0,#0xffe0ffff
orr r0,r0,#0x00020000
wfs r0
end;
{$endif}
end;
More information about the fpc-pascal
mailing list