Jelajahi Sumber

* alignment fixes

pierre 27 tahun lalu
induk
melakukan
0505500441
1 mengubah file dengan 9 tambahan dan 2 penghapusan
  1. 9 2
      compiler/win_targ.pas

+ 9 - 2
compiler/win_targ.pas

@@ -554,12 +554,16 @@ unit win_targ;
 
 
          {  export address table }
          {  export address table }
          address_table:=new(paasmoutput,init);
          address_table:=new(paasmoutput,init);
+         address_table^.concat(new(pai_align,init_op(4,0)));
          address_table^.concat(new(pai_label,init(export_address_table)));
          address_table^.concat(new(pai_label,init(export_address_table)));
          name_table_pointers:=new(paasmoutput,init);
          name_table_pointers:=new(paasmoutput,init);
+         name_table_pointers^.concat(new(pai_align,init_op(4,0)));
          name_table_pointers^.concat(new(pai_label,init(export_name_table_pointers)));
          name_table_pointers^.concat(new(pai_label,init(export_name_table_pointers)));
          ordinal_table:=new(paasmoutput,init);
          ordinal_table:=new(paasmoutput,init);
+         ordinal_table^.concat(new(pai_align,init_op(4,0)));
          ordinal_table^.concat(new(pai_label,init(export_ordinal_table)));
          ordinal_table^.concat(new(pai_label,init(export_ordinal_table)));
          name_table:=new(paasmoutput,init);
          name_table:=new(paasmoutput,init);
+         name_table^.concat(new(pai_align,init_op(4,0)));
          { write each address }
          { write each address }
          hp:=pexported_item(current_module^._exports^.first);
          hp:=pexported_item(current_module^._exports^.first);
          while assigned(hp) do
          while assigned(hp) do
@@ -569,7 +573,7 @@ unit win_targ;
                    getlabel(name_label);
                    getlabel(name_label);
                    name_table_pointers^.concat(new(pai_const,init_rva(strpnew(lab2str(name_label)))));
                    name_table_pointers^.concat(new(pai_const,init_rva(strpnew(lab2str(name_label)))));
                    ordinal_table^.concat(new(pai_const,init_16bit(hp^.index-ordinal_base)));
                    ordinal_table^.concat(new(pai_const,init_16bit(hp^.index-ordinal_base)));
-                   name_table^.concat(new(pai_align,init(2)));
+                   name_table^.concat(new(pai_align,init_op(2,0)));
                    name_table^.concat(new(pai_label,init(name_label)));
                    name_table^.concat(new(pai_label,init(name_label)));
                    name_table^.concat(new(pai_string,init(hp^.name^+#0)));
                    name_table^.concat(new(pai_string,init(hp^.name^+#0)));
                 end;
                 end;
@@ -683,7 +687,10 @@ unit win_targ;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.16  1998-11-30 13:26:26  pierre
+  Revision 1.17  1998-12-01 23:35:43  pierre
+   * alignment fixes
+
+  Revision 1.16  1998/11/30 13:26:26  pierre
     * the code for ordering the exported procs/vars was buggy
     * the code for ordering the exported procs/vars was buggy
     + added -WB to force binding (Ozerski way of creating DLL)
     + added -WB to force binding (Ozerski way of creating DLL)
       this is off by default as direct writing of .edata section seems
       this is off by default as direct writing of .edata section seems