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

Reply via email to