[fpc-devel] Building and running FPC natively on ARM under Debian "Lenny"

Jonas Maebe jonas.maebe at elis.ugent.be
Tue Oct 5 10:57:12 CEST 2010


On 05 Oct 2010, at 10:50, Mark Morgan Lloyd wrote:

> Jonas Maebe wrote:
>> On 05 Oct 2010, at 10:05, Mark Morgan Lloyd wrote:
>>> When running 2.4.0 on an ARM system (Debian v5 "Lenny", armel)  
>>> with limited memory (32Mb RAM + 768Mb swap) and using it to  
>>> compile a large project (Lazarus 0.9.28.2) I'm seeing intermittent  
>>> failures which go away if the make is restarted. I've not seen  
>>> this running on other platforms, and I don't believe it is a  
>>> problem in the Lazarus sources since the build will eventually  
>>> complete giving me runnable code.
>> A couple of days ago I fixed an error in svn trunk for ARMEL that  
>> caused the stack to become temporarily unbalanced after performing  
>> syscalls with 5 or more parameters (the bug is still there for  
>> OABI, but I can't fix that because I don't have access to an OABI  
>> machine).
>
> I don't at the moment have any spare ARM systems that I could set up  
> and expose for testing. I've got some development boards  
> (effectively, ARM-based PCs) but they came with CE and I'm not  
> paying the manufacturer $500 for Linux...

I've requested an account on the GCC compile farm (http://gcc.gnu.org/wiki/CompileFarm 
, anyone contributing to any free software project can do so), and I  
guess that at least one of their ARM machines will also support OABI  
binaries.

>> A side-effect of that bug was that if the caller passed the address  
>> of its own result as one of the parameters to the system call, it  
>> would afterwards return a random value as its result and checks for  
>> error results caused random failures like the one you posted (the  
>> reproducible case that allowed me to fix it was a similar error).
>
> That sounds promising and I'll try it in a few days (once I've got  
> the trial Lazarus compilations out of the way). What should I be  
> doing- updating to trunk?

Maybe the easiest is to simply download http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/rtl/linux/arm/syscall.inc?revision=16073&pathrev=16073 
  and replace  the rtl/linux/arm/syscall.inc file in the 2.4.0 source  
tree with that file. There are no FPC version-specific changes to that  
code.

> The overall exercise is extending the native testing I did of FPC on  
> various platforms to Lazarus. Granted that not many people are  
> likely to want to run it natively on an ARM target but I think it's  
> still worth knowing whether it can be done.

Sure!


Jonas



More information about the fpc-devel mailing list