[fpc-devel] Armel for Debian "Lenny"

Mark Morgan Lloyd markMLl.fpc-devel at telemetry.co.uk
Sun Sep 13 08:57:13 CEST 2009


Jonas Maebe wrote:
> On 12 Sep 2009, at 18:58, Mark Morgan Lloyd wrote:
> 
>> What's the current situation with armel?
> 
> I think the latest svn should work fine (both trunk and fixes_2_4).
> 
>> I've got the armel-generating 2.3.1 (I think from Florian) but I can't 
>> complete a "make all"- it barfs during cycle 2.
> 
> If that's an old starting compiler (what does "ppcarm -iD" show?), make 
> sure to add "-O-" to the OPT="..." flags. Other than that, I'm not sure 
> what the problem could be.
> 
> 
> Jonas
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel


ppcarm -iD shows 2008/11/29. I've tried doing things like using ppc1 or 
ppc2 built part-way through the cycle and it hasn't appeared to change 
toe problem.

On trunk make NOGDB=1 "OPT=-O- -gl" all eventually gets me to

..
/usr/local/src/fpc/trunk/compiler/ppcwpo1 -Ur -Xs -O2 -n -Fuarm 
-Fusystems -Fu/usr/local/src/fpc/trunk/rtl/units/arm-linux -Fiarm -FE. 
-FUarm/units/arm-linux -dRELEASE -O- -gl -darm -dGDB -dBROWSERLOG 
-Owdevirtcalls,optvmts -Fw/usr/local/src/fpc/trunk/compiler/pp2.wpo 
-darm -dGDB -dBROWSERLOG  pp.pas
cgobj.pas(3384,38) Warning: range check error while evaluating constants
Fatal: Compilation aborted
An unhandled exception occurred at $000ACFC8 :
EAccessViolation : Access violation
   $000ACFC8  TSCANNERFILE__READCHAR,  line 2658 of scanner.pas
   $000ADB5C  TSCANNERFILE__SKIPSPACE,  line 2987 of scanner.pas
   $000AE480  TSCANNERFILE__READTOKEN,  line 3304 of scanner.pas
   $001247E4  CONSUME,  line 133 of pbase.pas
   $00176C48  PROC_UNIT,  line 1184 of pmodules.pas
   $00152F94  COMPILE,  line 394 of parser.pas
   $0016B400  TPPUMODULE__LOADPPU,  line 1531 of fppu.pas
   $00175768  LOADUNITS,  line 713 of pmodules.pas
   $00175B4C  PARSE_IMPLEMENTATION_USES,  line 801 of pmodules.pas
   $00176888  PROC_UNIT,  line 1103 of pmodules.pas
   $00152F94  COMPILE,  line 394 of parser.pas
   $0016B400  TPPUMODULE__LOADPPU,  line 1531 of fppu.pas
   $00175768  LOADUNITS,  line 713 of pmodules.pas
   $00175B4C  PARSE_IMPLEMENTATION_USES,  line 801 of pmodules.pas
   $00176888  PROC_UNIT,  line 1103 of pmodules.pas
   $00152F94  COMPILE,  line 394 of parser.pas
   $0016B400  TPPUMODULE__LOADPPU,  line 1531 of fppu.pas

make[4]: *** [ppcarm] Error 217
make[4]: Leaving directory `/usr/local/src/fpc/trunk/compiler'
make[3]: *** [wpocycle] Error 2
make[3]: Leaving directory `/usr/local/src/fpc/trunk/compiler'
make[2]: *** [cycle] Error 2
make[2]: Leaving directory `/usr/local/src/fpc/trunk/compiler'
make[1]: *** [compiler_cycle] Error 2
make[1]: Leaving directory `/usr/local/src/fpc/trunk'
make: *** [build-stamp.arm-linux] Error 2

If I try compiling manually (cut-and-paste command line) it fails 
similarly. GDB does give me what appears to be a sensible backtrace, 
first few lines as below.

Program received signal SIGSEGV, Segmentation fault.
0x000acfc8 in TSCANNERFILE__READCHAR (this=0x41265c90) at scanner.pas:2658
2658            c:=inputpointer^;

#0  0x000acfc8 in TSCANNERFILE__READCHAR (this=0x41265c90) at 
scanner.pas:2658
#1  0x000adb5c in TSCANNERFILE__SKIPSPACE (this=0x41265c90) at 
scanner.pas:2987
#2  0x000ae480 in TSCANNERFILE__READTOKEN (ALLOWRECORDTOKEN=true, 
this=0x41265c90) at scanner.pas:3304
#3  0x001247e4 in CONSUME (I=_POINT) at pbase.pas:133
#4  0x00176c48 in PROC_UNIT () at pmodules.pas:1184
#5  0x00152f94 in COMPILE (FILENAME='ptype.pas') at parser.pas:394
#6  0x0016b400 in TPPUMODULE__LOADPPU (this=0x41339e20) at fppu.pas:1531
#7  0x00175768 in LOADUNITS () at pmodules.pas:713
#8  0x00175b4c in PARSE_IMPLEMENTATION_USES () at pmodules.pas:801
#9  0x00176888 in PROC_UNIT () at pmodules.pas:1103
#10 0x00152f94 in COMPILE (FILENAME='pexpr.pas') at parser.pas:394
..

If I don't use -O- I think it fails (with similar messages) at an 
earlier cycle, i.e. compiling with ppc1 or ppc2. In this case compiling 
manually works so I've not been able to get a backtrace.

It would be very useful if I could get FPC working on this platform 
(NSLu2 "Slug") but I could at a pinch to Debian "Etch" which is arm 
rather than armel. However part of the reason I'm doing this is because 
I've been running the compiler in parallel on x86, SPARC, PPC and ARM 
and have found something interesting which I think has no bearing on 
this problem so I'd rather deal with it separately.

-- 
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