diff --git a/compiler/owar.pas b/compiler/owar.pas index e6d91835ff..aed8f6724a 100644 --- a/compiler/owar.pas +++ b/compiler/owar.pas @@ -235,12 +235,16 @@ implementation procedure tarobjectwriter.closefile; const LF:char=#10; + var + filesize:longint; begin + { preserve file size, before aligning on an even boundary } + filesize:=ardata.size-objpos-sizeof(tarhdr); { align on an even boundary, by inserting an LF if necessary } if odd(ardata.size) then write(LF,1); { fix the size in the header } - createarhdr(objfn,ardata.size-objpos-sizeof(tarhdr),'42','42','644'); + createarhdr(objfn,filesize,'42','42','644'); { write the header } ardata.seek(objpos); ardata.write(arhdr,sizeof(tarhdr));