summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-26 20:52:02 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-26 20:52:02 +0000
commit777a40cb89ae38ff1e747b4fac54cc736808eaad (patch)
tree27b0b2698eb3fb4030163e11bd03f7d5b79a22ea
parent25893d4612247064685c7f615f30ac14a88ab9b8 (diff)
downloadfpc-777a40cb89ae38ff1e747b4fac54cc736808eaad.tar.gz
* patch by Christo Crause to fix #38789: writing of linker commands should not depent in -s
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49267 3ad0048d-3df7-0310-abae-a5850022a9f2
-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