From 93a08aaebd6f9dbd709c700d092e2cc8aa06d895 Mon Sep 17 00:00:00 2001 From: nickysn Date: Thu, 1 Aug 2019 16:43:39 +0000 Subject: [PATCH] + write the NewExe header in TNewExeOutput.writeData git-svn-id: trunk@42552 - --- compiler/ogomf.pas | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/compiler/ogomf.pas b/compiler/ogomf.pas index 042759bbac..79228c5fc1 100644 --- a/compiler/ogomf.pas +++ b/compiler/ogomf.pas @@ -479,6 +479,8 @@ interface FImports: TFPHashObjectList; procedure AddImportSymbol(const libname,symname,symmangledname:TCmdStr;OrdNr: longint;isvar:boolean); procedure AddImportLibrariesExtractedFromObjectModules; + function WriteNewExe:boolean; + property Header: TNewExeHeader read FHeader; protected procedure DoRelocationFixup(objsec:TObjSection);override; procedure Order_ObjSectionList(ObjSectionList : TFPObjectList;const aPattern:string);override; @@ -3573,6 +3575,13 @@ cleanup: end; end; + function TNewExeOutput.WriteNewExe: boolean; + begin + Header.WriteTo(FWriter); + { todo: write the rest of the file as well } + Result:=True; + end; + procedure TNewExeOutput.DoRelocationFixup(objsec: TObjSection); begin {todo} @@ -3606,6 +3615,7 @@ cleanup: CObjSymbol:=TOmfObjSymbol; CExeSection:=TNewExeSection; FHeader:=TNewExeHeader.Create; + MaxMemPos:=$FFFFFFFF; end; destructor TNewExeOutput.destroy; @@ -3643,8 +3653,13 @@ cleanup: function TNewExeOutput.writeData: boolean; begin - {todo} Result:=False; + if ExeWriteMode in [ewm_exefull,ewm_exeonly] then + begin + Result:=WriteNewExe; + if not Result then + exit; + end; end; {****************************************************************************