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]
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel