* 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:
pierre 2011-07-01 19:28:32 +00:00
parent 450fd8784b
commit 372b16b2e6

View File

@ -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;