[fpc-pascal] Re: Stack checking in dynamic libraries

Jonas Maebe jonas.maebe at elis.ugent.be
Sun Nov 8 19:54:54 CET 2009

cobines wrote on Sun, 08 Nov 2009:

> I have to conclude that the values in rtl/inc/systemh.inc: StackTop,
> StackBottom, StackLength are not behaving as thread-specific variables
> in the library, even though they are declared using ThreadVar.

Your problem is that every FPC-compiled library contains its own copy  
of the RTL. At this time you cannot create an FPC library whose RTL  
state is shared between a library and the main program. On Linux this  
will be possible after the patches attached to  
http://bugs.freepascal.org/view.php?id=12492 have been fully applied  
(they've only been applied partially for 2.4.0).

Furthermore, stack checking is broken for multi-threaded programs  
under *nix in 2.2.x. It has been fixed in 2.4.0. See  
http://bugs.freepascal.org/view.php?id=12942 for more info. And keep  
in mind that it's only an approximation, and can only be used to get a  
rough estimate of the required stack space (as explained in the  
comments to that bug).


This message was sent using IMP, the Internet Messaging Program.

More information about the fpc-pascal mailing list