[fpc-pascal] arm-linux, using unit cthreads fails

Bernd Mueller mueller.b at gmx.net
Wed Jan 16 17:07:16 CET 2008


Hello,

the following program is throwing an Access Violation on my system 
(ARM920T, uClibc):

program project1;
{$mode objfpc}{$H+}
uses
   cthreads, SysUtils;

function TheThread(pAnyArgument: Pointer): Longint;
begin
    repeat
       Sleep(1000);
    until FALSE;
end;

begin
    Writeln('Running...');
    BeginThread(@TheThread, NIL);
    repeat
    until FALSE;
end.

This is the error output:

# ./project1
Running...
An unhandled exception occurred at $40082E50 :
EAccessViolation : Access violation
   $40082E50 of ../objpas/sysconst.pp
   $0001CA04  BEGINTHREAD,  line 104 of 
D:/fpc231/9749/src/rtl/inc/thread.inc
   $0001C988  BEGINTHREAD,  line 81 of D:/fpc231/9749/src/rtl/inc/thread.inc
   $00010434  main,  line 21 of project1.pas
   $4005D6B4 of ../objpas/sysconst.pp

I crosscompiled the program with fpc 2.3.1 and following parameters:

ppcrossarm.exe -S2cgi -TLinux -Parm -gl -vewnhi -l -Fu. -oproject1 
-XRpathtodynlinker\gcc-4.1.2-uclibc


I tried to debug this and am stuck now in cthreads.pp. line 289:

if pthread_create(ppthread_t(@threadid), @thread_attr, @ThreadMain,ti) 
<> 0 then

The program is crashing within the execution of pthread_create
Using pthreads alone is working fine BTW. I can live with pthreads, but 
I would like to know, what is going wrong. Thanks for any hints and 
pointers.

Regards, Bernd.



More information about the fpc-pascal mailing list