[fpc-devel] CThreads.pp

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Nov 16 19:21:09 CET 2012


On 16 Nov 2012, at 19:15, Ewald wrote:

> Well, the compiler gives this error:
> `Incompatible types: got 
>     "<address of function(Pointer,QWord,TThreadFunc,Pointer,LongWord,var Pointer):^untyped;Register>" expected
>     "<procedure variable type of function(Pointer,QWord,TThreadFunc,Pointer,LongWord,var TThreadID):^TThreadRec;Register>"
> 
> Rather weird, no? Have I missed something? Or is this due to the fact that I declare my threadmanager record using a typed constant?

In what syntax mode are you compiling? Keep in mind that turning a procedure/function into a procvar is different in FPC/ObjFPC and TP/Delphi modes (with/out the @).

> No, it's definetly sem_open, the litteral error is:
>     `Error: Identifier not found "sem_open"`
> 
> My uses list contains the exact same units as in CThreads.pp, in the same order, so I don't see why the symbol isn't found. Also, the entire load of $idfdef's are also copied into my source code.

The sem_open declaration is included in cthreads via rtl/darwin/pthread.inc (I know it's not actually a pthreads function, but that was the most logical place to put it)


Jonas


More information about the fpc-devel mailing list