[fpc-devel] Building and running FPC natively on ARM under Debian "Lenny"
Mark Morgan Lloyd
markMLl.fpc-devel at telemetry.co.uk
Tue Oct 5 10:05:34 CEST 2010
Mark Morgan Lloyd wrote:
> I can confirm that I can build FPC 2.4.0 to run under Debian "Lenny" on
> an ARM-based system (Cisco/Linksys NSLU2 "Slug") using
>
> make 'NOGDB=1' 'OPT=-dFPC_ARMEL -CfSOFT' all
>
> This appears to be OK to the extent that it can compile Lazarus
> 0.9.28.3, although my initial attempt ("make all") bombed but for some
> reason "make 'OPT=-vt' all" was OK.
>
> If starting with a binary of 2.2.2 it's necessary first to generate
> 2.4.0 using 'OPT=-CfSOFT'. Obviously the amount of memory limits
> compilation and in particular linkage speed. I've not tried later
> versions yet.
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.
The output typically looks something like this, although I don't think
it always fails at the same point:
$ make all
make -C lcl all
make[1]: Entering directory `/usr/local/share/lazarus-stable/lcl'
/bin/rm -f units/arm-linux/alllclunits.ppu
/bin/mkdir -p units/arm-linux
/usr/local/bin/ppcarm -gl -Fu. -Funonwin32 -Fuforms -Fuwidgetset
-Fu/usr/local/lib/fpc/2.4.0/units/arm-linux/rtl -Fiinclude -FE.
-FUunits/arm-linux -darm alllclunits.pp
Free Pascal Compiler version 2.4.0 [2010/08/21] for arm
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for ARMEL
Compiling alllclunits.pp
Compiling lclversion.pas
Assembling lclversion
..
Assembling postscriptprinter
Compiling postscriptcanvas.pas
Compiling postscriptunicode.pas
Fatal: Compilation aborted
An unhandled exception occurred at $00033B60 :
EInOutError : File not found
$00033B60
$000F6A30
$0011A744
$000FA588
$000F4F20
$00140A14
$0011FF78
$0013648C
$0013FDA0
$00140950
$0011FF78
$0013648C
$0013FDA0
$00140950
$0011FF78
$00024370
$00008304
make[1]: *** [alllclunits.ppu] Error 217
make[1]: Leaving directory `/usr/local/share/lazarus-stable/lcl'
make: *** [lcl] Error 2
This is not immediately reproducible, so I can't simply rerun the
compiler using gdb to get a backtrace. Is there an easy way to make
sense of those numbers?
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-devel
mailing list