[fpc-devel] Freepascal on SPARC, MIPS(EL) and ARM GNU/Linux hosts

Jonas Maebe jonas.maebe at elis.ugent.be
Sun Jan 2 04:38:06 CET 2005


On 24 Sep 2007, at 10:29, Sunil Amitkumar Janki wrote:

> I want to know how to build Freepascal so it runs on SPARC,
> MIPS(EL) and ARM GNU/Linux. For the latter two I will probably
> first have to cross-build to these architectures if possible but I
> don't know how to do this yet.

There is no MIPS support yet. ARM works though, although running the  
compiler itself on ARM usually doesn't work because of a lack of ram  
(and ARM systems are also quite slow usually).

> This is the error I get when I build FPC 2.2.0 on SPARC using
> FPC 2.0.0:
>
>> /opt/programming/pascal/freepascal/applications/compilers/ 
>> 2/2.0/2.0.0/bin/ppcsparc -Ur -Ur -Xs  -n -Xs -Fi../inc -Fi../sparc  
>> -Fi../unix -Fisparc -FE. -FU/tmp/fpc-2.2.0/rtl/units/sparc-linux - 
>> dsparc -dRELEASE ../objpas/rtlconsts.pp
>> /opt/programming/pascal/freepascal/applications/compilers/ 
>> 2/2.0/2.0.0/bin/ppcsparc -Ur -Ur -Xs  -n -Xs -Fi../inc -Fi../sparc  
>> -Fi../unix -Fisparc -FE. -FU/tmp/fpc-2.2.0/rtl/units/sparc-linux - 
>> dsparc -dRELEASE -Sg ../objpas/typinfo.pp
>> /opt/programming/pascal/freepascal/applications/compilers/ 
>> 2/2.0/2.0.0/bin/ppcsparc -Ur -Ur -Xs  -n -Xs -Fi../inc -Fi../sparc  
>> -Fi../unix -Fisparc -FE. -FU/tmp/fpc-2.2.0/rtl/units/sparc-linux - 
>> dsparc -dRELEASE ../objpas/math.pp
>> math.pp(2185,10) Error: Calling convention doesn't match forward
>> math.pp(2190,10) Error: Calling convention doesn't match forward
>> math.pp(2195,10) Error: Calling convention doesn't match forward
>> math.pp(2207,10) Error: Calling convention doesn't match forward
>> math.pp(2218,10) Error: Calling convention doesn't match forward
>> math.pp(2229,10) Error: Calling convention doesn't match forward
>> math.pp(2241,10) Error: Calling convention doesn't match forward
>> math.pp(2253,10) Error: Calling convention doesn't match forward
>> math.pp(2349) Fatal: There were 8 errors compiling module, stopping
>> math.pp(2349) Error: Compilation aborted
>> make[7]: *** [math.ppu] Error 1

Building FPC 2.2.0 is only supported starting with 2.0.4. Since there  
is no 2.0.4 for sparc/linux, you will have to cross-compile it from  
another platform (e.g. from linux/i386). Further, no one is currently  
maintaining sparc/linux, so it might not even build (although it  
should). I run a nightly test for sparc/solaris and from time to time  
fix regressions for that platform, but I don't actively use it. I  
fixed some sparc/linux bugs in the run-up to 2.2.0, but no longer  
have access to a sparc/linux system now.

You might want to have a look at the cross building faq:
http://www.stack.nl/~marcov/buildfaq.pdf

> I don't know if ARM and MIPS host support do in fact exist at all
> but if not I would like to add these. I am not too knowledgeable
> about ARM assembly and differences for the various versions.
>
> I do have some experience and documents on MIPS assembly so
> I should have to get by on that with the help of information across
> the internet. Any help will be appreciated.

There's not really much documentation about the code generator  
design. The easiest is probably to look at the sparc or arm code  
generator (whichever architecture is closest), to copy them to a mips  
directory and modify the copied files.

If you have specific questions, you're of course always welcome to  
ask here.


Jonas



More information about the fpc-devel mailing list