mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 16:49:20 +02:00
* Propagate AS_NEEDED flag down the expression tree an assign it to TStaticLibrary objects.
git-svn-id: trunk@23116 -
This commit is contained in:
parent
67a41e1e94
commit
7d19a6d551
@ -98,7 +98,7 @@ interface
|
|||||||
FImportLibraryList : TFPHashObjectList;
|
FImportLibraryList : TFPHashObjectList;
|
||||||
FGroupStack : TFPObjectList;
|
FGroupStack : TFPObjectList;
|
||||||
procedure Load_ReadObject(const para:TCmdStr);
|
procedure Load_ReadObject(const para:TCmdStr);
|
||||||
procedure Load_ReadStaticLibrary(const para:TCmdStr);
|
procedure Load_ReadStaticLibrary(const para:TCmdStr;asneededflag:boolean=false);
|
||||||
procedure Load_Group;
|
procedure Load_Group;
|
||||||
procedure Load_EndGroup;
|
procedure Load_EndGroup;
|
||||||
procedure ParseScript_Handle;
|
procedure ParseScript_Handle;
|
||||||
@ -954,7 +954,7 @@ Implementation
|
|||||||
end
|
end
|
||||||
else if src.token in [tkIDENT,tkLITERAL] then
|
else if src.token in [tkIDENT,tkLITERAL] then
|
||||||
begin
|
begin
|
||||||
Load_ReadStaticLibrary(src.tokenstr);
|
Load_ReadStaticLibrary(src.tokenstr,asneeded);
|
||||||
src.nextToken;
|
src.nextToken;
|
||||||
end
|
end
|
||||||
else if src.CheckFor('-') then
|
else if src.CheckFor('-') then
|
||||||
@ -1017,12 +1017,13 @@ Implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TInternalLinker.Load_ReadStaticLibrary(const para:TCmdStr);
|
procedure TInternalLinker.Load_ReadStaticLibrary(const para:TCmdStr;asneededflag:boolean);
|
||||||
var
|
var
|
||||||
objreader : TArObjectReader;
|
objreader : TArObjectReader;
|
||||||
objinput: TObjInput;
|
objinput: TObjInput;
|
||||||
objdata: TObjData;
|
objdata: TObjData;
|
||||||
ScriptLexer: TScriptLexer;
|
ScriptLexer: TScriptLexer;
|
||||||
|
stmt:TStaticLibrary;
|
||||||
begin
|
begin
|
||||||
{ TODO: Cleanup ignoring of FPC generated libimp*.a files}
|
{ TODO: Cleanup ignoring of FPC generated libimp*.a files}
|
||||||
{ Don't load import libraries }
|
{ Don't load import libraries }
|
||||||
@ -1040,8 +1041,9 @@ Implementation
|
|||||||
objdata:=objinput.newObjData(para);
|
objdata:=objinput.newObjData(para);
|
||||||
if objinput.ReadObjData(objreader,objdata) then
|
if objinput.ReadObjData(objreader,objdata) then
|
||||||
begin
|
begin
|
||||||
TFPObjectList(FGroupStack.Last).Add(TStaticLibrary.create_object(objdata));
|
stmt:=TStaticLibrary.create_object(objdata);
|
||||||
//exeoutput.addobjdata(objdata);
|
stmt.AsNeeded:=asneededflag;
|
||||||
|
TFPObjectList(FGroupStack.Last).Add(stmt);
|
||||||
end;
|
end;
|
||||||
objinput.Free;
|
objinput.Free;
|
||||||
objreader.Free;
|
objreader.Free;
|
||||||
|
Loading…
Reference in New Issue
Block a user