[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