[fpc-devel] RTL make shared

Adriaan van Os adriaan at adriaan.biz
Tue Oct 29 15:40:19 CET 2024


Sven Barth via fpc-devel wrote:
> Adriaan van Os via fpc-devel <fpc-devel at lists.freepascal.org 
> <mailto:fpc-devel at lists.freepascal.org>> schrieb am Di., 29. Okt. 2024, 
> 11:29:
> 
>     Trying to build the FPC RTL as a dynamic library on MacOS (with make
>     shared), I run into several
>     problems
> 
> 
> I don't know when that was tested last in any platform... 

Thanks for the reply.

Isn't this related to library packages ?

> 
> 
>     2. When I do the linking pass by hand, ld complains about unknown
>     symbols
> 
>     ld: Undefined symbols:
>        FPC_RESLOCATION, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        FPC_RESOURCESTRINGTABLES, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        FPC_RESSTRINITTABLES, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        FPC_THREADVARTABLES, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        INITFINAL, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        _PASCALMAIN, referenced from:
>            _TC_$SYSINIT_$$_SYSINITENTRYINFORMATION in sysinit.o
>        __stklen, referenced from:
>            _SYSINIT_$$_FPC_SYSTEMMAIN$LONGINT$PPANSICHAR$PPANSICHAR in
>     sysinit.o
> 
> 
> sysinit should be part of the program, not the library. 

The idea of building the RTL in a dynamic ibrary is to have one copy of the RTL threadvars, notably 
one copy of the _ExceptObjectStack threadvar. Will this still be true if a main program and a 
dynamic library both include sysinit.o ?

Regards,

Adriaan van Os



More information about the fpc-devel mailing list