Procházet zdrojové kódy

* binary writer fix for GO32v2 from Peter

Tomas Hajny před 21 roky
rodič
revize
a3d82fd80f
2 změnil soubory, kde provedl 13 přidání a 3 odebrání
  1. 6 1
      compiler/assemble.pas
  2. 7 2
      compiler/ogcoff.pas

+ 6 - 1
compiler/assemble.pas

@@ -1039,6 +1039,8 @@ Implementation
                     not SmartAsm then
                   begin
                     objectdata.allocsymbol(currpass,Tai_datablock(hp).sym,Tai_datablock(hp).size);
+                    { common/external uses the size for address }
+                    Tai_datablock(hp).sym.address:=Tai_datablock(hp).size;
                     { force to be common/external, must be after setaddress as that would
                       set it to AB_GLOBAL }
                     Tai_datablock(hp).sym.currbind:=AB_COMMON;
@@ -1629,7 +1631,10 @@ Implementation
 end.
 {
   $Log$
-  Revision 1.71  2004-07-01 18:28:54  jonas
+  Revision 1.72  2004-08-24 19:31:44  hajny
+    * binary writer fix for GO32v2 from Peter
+
+  Revision 1.71  2004/07/01 18:28:54  jonas
     + detect assembler errors when using -ap
 
   Revision 1.70  2004/07/01 15:42:53  peter

+ 7 - 2
compiler/ogcoff.pas

@@ -605,7 +605,9 @@ const go32v2stub : array[0..2047] of byte=(
            curraddr:=currsec.mempos+currsec.datasize;
            { real address of the symbol }
            symaddr:=p.address;
-           if p.section<>nil then
+           { external/common symbols don't have a fixed memory position yet }
+           if (p.section<>nil) and
+              (p.currbind<>AB_COMMON) then
             inc(symaddr,p.section.mempos);
            { no symbol relocation need inside a section }
            if (p.section=currsec) and
@@ -1784,7 +1786,10 @@ initialization
 end.
 {
   $Log$
-  Revision 1.29  2004-06-20 08:55:30  florian
+  Revision 1.30  2004-08-24 19:31:44  hajny
+    * binary writer fix for GO32v2 from Peter
+
+  Revision 1.29  2004/06/20 08:55:30  florian
     * logs truncated
 
   Revision 1.28  2004/06/16 20:07:09  florian