<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Adriaan van Os via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>> schrieb am Mi., 30. Okt. 2024, 06:50:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sven Barth via fpc-devel wrote:<br>
> Adriaan van Os via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org" target="_blank" rel="noreferrer">fpc-devel@lists.freepascal.org</a> <br>
> <mailto:<a href="mailto:fpc-devel@lists.freepascal.org" target="_blank" rel="noreferrer">fpc-devel@lists.freepascal.org</a>>> schrieb am Di., 29. Okt. 2024, <br>
> 15:47:<br>
>     The idea of building the RTL in a dynamic ibrary is to have one copy<br>
>     of the RTL threadvars, notably<br>
>     one copy of the _ExceptObjectStack threadvar. Will this still be<br>
>     true if a main program and a<br>
>     dynamic library both include sysinit.o ?<br>
> <br>
> <br>
> The sysinit unit contains the entrypoint and directly references symbols <br>
> provided by the main program, not the RTL, to pass them into the RTL. It <br>
> simply can't be inside a library. The exception handling is inside the <br>
> System and SysUtils units, so no conflict there. <br>
<br>
sysinit.o contains _FPC_LIBMAIN and thus has to be linked in when creating a dynamic library <br>
compiled with FPC. The crucial question is — do we then end up with one or two copies of the <br>
_ExceptObjectStack threadvar ?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">_FPC_LIBMAIN is for files with the header "library". Units moved to a shared library don't have a need for that symbol, because they'll be called from the main program. </div><div dir="auto">And if you should have a FPC library then you need to make sure that it's linked against the same shared RTL library to avoid issues. Only if a library links in its own RTL there will be separate symbols instead of shared ones. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>