[fpc-devel] fpc libraries do not work in freeBSD...

Sergei Gorelkin sergei_gorelkin at mail.ru
Tue Aug 5 20:29:28 CEST 2014

05.08.2014 22:02, Sven Barth пишет:
> Am 05.08.2014 15:35 schrieb "Marco van de Voort" <marcov at stack.nl <mailto:marcov at stack.nl>>:
>  > But the FPC version has these symbols in the main program, maybe you must
>  > make sure that those (operatingsystem*) systems are available from the
>  > mainprogram too and preloaded with the proper values.
> The main program should not need to do anything here. It's more likely that there is a problem in
> our FreeBSD startup files for libraries.
FreeBSD loader does not pass argc,argv and envp to shared library initialization procedure, like it 
happens on Linux. Since FPC does not have a shared RTL, such hack with exporting symbols from 
executable is likely an only way to initialize RTLs compiled into shared libraries.

However starting from version 9.2 IIRC, FreeBSD loader looks more like Linux one, but it passes 
argc,argv and envp only to initialization procedures pointed at by DT_INIT_ARRAY, not to one pointed 
at by DT_INIT. I.e. fixing the issue requires changes to startup files/link scripts and means that 
no support for versions <9.2 will be available.


More information about the fpc-devel mailing list