mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-23 01:53:17 +02:00
* Look for __FPC_tls_callbacks, should be reset to nil for DLLs, not yet done
git-svn-id: trunk@17908 -
This commit is contained in:
parent
450fd8784b
commit
372b16b2e6
@ -2255,6 +2255,8 @@ const pemagic : array[0..3] of byte = (
|
||||
{callbacksection : TExeSection;}
|
||||
tlsexesymbol: TExeSymbol;
|
||||
tlssymbol: TObjSymbol;
|
||||
callbackexesymbol: TExeSymbol;
|
||||
callbacksymbol: TObjSymbol;
|
||||
begin
|
||||
{ according to GNU ld,
|
||||
the callback routines should be placed into .CRT$XL*
|
||||
@ -2272,6 +2274,18 @@ const pemagic : array[0..3] of byte = (
|
||||
tlssymbol:=tlsexesymbol.ObjSymbol;
|
||||
peoptheader.DataDirectory[PE_DATADIR_TLS].vaddr:=tlssymbol.address;
|
||||
peoptheader.DataDirectory[PE_DATADIR_TLS].size:=Sizeof(tlsdirectory);
|
||||
if IsSharedLibrary then
|
||||
begin
|
||||
{ Here we should reset __FPC_tls_callbacks value to nil }
|
||||
callbackexesymbol:=texesymbol(ExeSymbolList.Find(
|
||||
'__FPC_tls_callbacks'));
|
||||
if assigned (callbackexesymbol) then
|
||||
begin
|
||||
callbacksymbol:=callbackexesymbol.ObjSymbol;
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user