summaryrefslogtreecommitdiff
path: root/compiler/systems/t_freertos.pas
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/systems/t_freertos.pas')
-rw-r--r--compiler/systems/t_freertos.pas19
1 files changed, 17 insertions, 2 deletions
diff --git a/compiler/systems/t_freertos.pas b/compiler/systems/t_freertos.pas
index 027d29f15c..2c815cfbed 100644
--- a/compiler/systems/t_freertos.pas
+++ b/compiler/systems/t_freertos.pas
@@ -955,6 +955,8 @@ var
t: Text;
hp: TCmdStrListItem;
filepath: TCmdStr;
+ i,j: integer;
+ lib: AnsiString;
{$endif XTENSA}
begin
{$ifdef XTENSA}
@@ -1139,6 +1141,20 @@ begin
if ioresult<>0 then
exit;
+ { extract libraries from linker options and add to static libraries list }
+ Info.ExtraOptions:=trim(Info.ExtraOptions);
+ i := pos('-l', Info.ExtraOptions);
+ while i > 0 do
+ begin
+ j:=pos(' ',Info.ExtraOptions);
+ if j=0 then
+ j:=length(Info.ExtraOptions)+1;
+ lib:=copy(Info.ExtraOptions,i+2,j-i-2);
+ AddStaticCLibrary(lib);
+ delete(Info.ExtraOptions,i,j);
+ trim(Info.ExtraOptions);
+ i := pos('-l', Info.ExtraOptions);
+ end;
hp:=TCmdStrListItem(StaticLibFiles.First);
while assigned(hp) do
begin
@@ -1256,8 +1272,7 @@ begin
Replace(cmdstr,'$GCSECTIONS',GCSectionsStr);
Replace(cmdstr,'$DYNLINK',DynLinkStr);
end;
- if success and not(cs_link_nolink in current_settings.globalswitches) then
- success:=DoExec(FindUtil(utilsprefix+BinStr),cmdstr,true,false);
+ success:=DoExec(FindUtil(utilsprefix+BinStr),cmdstr,true,false);
{ Remove ReponseFile }
if success and not(cs_link_nolink in current_settings.globalswitches) then