Pārlūkot izejas kodu

* preserve the actual file size (before aligning it to even bytes), when adding files to .a archives

git-svn-id: trunk@45278 -
nickysn 5 gadi atpakaļ
vecāks
revīzija
be26429159
1 mainītis faili ar 5 papildinājumiem un 1 dzēšanām
  1. 5 1
      compiler/owar.pas

+ 5 - 1
compiler/owar.pas

@@ -235,12 +235,16 @@ implementation
     procedure tarobjectwriter.closefile;
     procedure tarobjectwriter.closefile;
       const
       const
         LF:char=#10;
         LF:char=#10;
+      var
+        filesize:longint;
       begin
       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 }
         { align on an even boundary, by inserting an LF if necessary }
         if odd(ardata.size) then
         if odd(ardata.size) then
           write(LF,1);
           write(LF,1);
         { fix the size in the header }
         { 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 }
         { write the header }
         ardata.seek(objpos);
         ardata.seek(objpos);
         ardata.write(arhdr,sizeof(tarhdr));
         ardata.write(arhdr,sizeof(tarhdr));