diff --git a/compiler/systems/t_embed.pas b/compiler/systems/t_embed.pas index e220d78670..38a20385d1 100644 --- a/compiler/systems/t_embed.pas +++ b/compiler/systems/t_embed.pas @@ -1266,13 +1266,15 @@ var StaticStr, GCSectionsStr, DynLinkStr, - StripStr: string; + StripStr, + FixedExeFileName: string; begin { for future use } StaticStr:=''; StripStr:=''; mapstr:=''; DynLinkStr:=''; + FixedExeFileName:=maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.elf'))); GCSectionsStr:='--gc-sections'; //if not(cs_link_extern in current_settings.globalswitches) then @@ -1290,7 +1292,7 @@ begin Replace(cmdstr,'$OPT',Info.ExtraOptions); if not(cs_link_on_target in current_settings.globalswitches) then begin - Replace(cmdstr,'$EXE',(maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.elf'))))); + Replace(cmdstr,'$EXE',FixedExeFileName); Replace(cmdstr,'$RES',(maybequoted(ScriptFixFileName(outputexedir+Info.ResName)))); Replace(cmdstr,'$STATIC',StaticStr); Replace(cmdstr,'$STRIP',StripStr); @@ -1300,7 +1302,7 @@ begin end else begin - Replace(cmdstr,'$EXE',maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.elf')))); + Replace(cmdstr,'$EXE',FixedExeFileName); Replace(cmdstr,'$RES',maybequoted(ScriptFixFileName(outputexedir+Info.ResName))); Replace(cmdstr,'$STATIC',StaticStr); Replace(cmdstr,'$STRIP',StripStr); @@ -1316,17 +1318,17 @@ begin { Post process } if success and not(cs_link_nolink in current_settings.globalswitches) then - success:=PostProcessExecutable(current_module.exefilename+'.elf',false); + success:=PostProcessExecutable(FixedExeFileName,false); if success and (target_info.system in [system_arm_embedded,system_avr_embedded,system_mipsel_embedded]) then begin success:=DoExec(FindUtil(utilsprefix+'objcopy'),'-O ihex '+ - ChangeFileExt(current_module.exefilename,'.elf')+' '+ - ChangeFileExt(current_module.exefilename,'.hex'),true,false); + FixedExeFileName+' '+ + maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.hex'))),true,false); if success then success:=DoExec(FindUtil(utilsprefix+'objcopy'),'-O binary '+ - ChangeFileExt(current_module.exefilename,'.elf')+' '+ - ChangeFileExt(current_module.exefilename,'.bin'),true,false); + FixedExeFileName+' '+ + maybequoted(ScriptFixFileName(ChangeFileExt(current_module.exefilename,'.bin'))),true,false); end; MakeExecutable:=success; { otherwise a recursive call to link method }