فهرست منبع

+ cond FPC_USE_CPREFIX (needs also some RTL changes)
this allows to use unit global vars as DLL exports
(the underline prefix seems needed by dlltool)

pierre 26 سال پیش
والد
کامیت
221382d99c
5فایلهای تغییر یافته به همراه57 افزوده شده و 9 حذف شده
  1. 11 2
      compiler/cg386inl.pas
  2. 11 2
      compiler/cg68kinl.pas
  3. 11 2
      compiler/cgai386.pas
  4. 13 1
      compiler/options.pas
  5. 11 2
      compiler/symsym.inc

+ 11 - 2
compiler/cg386inl.pas

@@ -189,7 +189,11 @@ implementation
           begin
             new(r);
             reset_reference(r^);
-            r^.symbol:=newasmsymbol('U_'+upper(target_info.system_unit)+io[doread]);
+            r^.symbol:=newasmsymbol(
+{$ifdef FPC_USE_CPREFIX}
+              target_os.Cprefix+
+{$endif FPC_USE_CPREFIX}
+            'U_'+upper(target_info.system_unit)+io[doread]);
             emit_ref_reg(A_LEA,S_L,r,R_EDI)
           end;
 
@@ -1428,7 +1432,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.78  1999-11-09 22:54:45  peter
+  Revision 1.79  1999-11-20 01:22:18  pierre
+    + cond FPC_USE_CPREFIX (needs also some RTL changes)
+      this allows to use unit global vars as DLL exports
+      (the underline prefix seems needed by dlltool)
+
+  Revision 1.78  1999/11/09 22:54:45  peter
     * fixed wrong asm with inc(qword), but not it's not correctly supported
 
   Revision 1.77  1999/11/06 14:34:17  peter

+ 11 - 2
compiler/cg68kinl.pas

@@ -102,7 +102,11 @@ implementation
           begin
             new(r);
             reset_reference(r^);
-            r^.symbol:=stringdup('U_'+upper(target_info.system_unit)+io[byte(doread)]);
+            r^.symbol:=stringdup(
+{$ifdef FPC_USE_CPREFIX}
+              target_os.Cprefix+
+{$endif FPC_USE_CPREFIX}
+            'U_'+upper(target_info.system_unit)+io[byte(doread)]);
             exprasmlist^.concat(new(paicpu,op_ref_reg(A_LEA,S_L,r,R_A0)))
           end;
 
@@ -899,7 +903,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.18  1999-09-16 23:05:51  florian
+  Revision 1.19  1999-11-20 01:22:18  pierre
+    + cond FPC_USE_CPREFIX (needs also some RTL changes)
+      this allows to use unit global vars as DLL exports
+      (the underline prefix seems needed by dlltool)
+
+  Revision 1.18  1999/09/16 23:05:51  florian
     * m68k compiler is again compilable (only gas writer, no assembler reader)
 
   Revision 1.17  1999/08/25 11:59:50  jonas

+ 11 - 2
compiler/cgai386.pas

@@ -2843,7 +2843,11 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
                 begin
                    new(hr);
                    reset_reference(hr^);
-                   hr^.symbol:=newasmsymbol('U_SYSWIN32_ISCONSOLE');
+                   hr^.symbol:=newasmsymbol(
+{$ifdef FPC_USE_CPREFIX}
+              target_os.Cprefix+
+{$endif FPC_USE_CPREFIX}
+                   'U_SYSWIN32_ISCONSOLE');
                    if apptype=at_cui then
                      exprasmlist^.insert(new(paicpu,op_const_ref(A_MOV,S_B,
                        1,hr)))
@@ -3447,7 +3451,12 @@ procedure mov_reg_to_dest(p : ptree; s : topsize; reg : tregister);
 end.
 {
   $Log$
-  Revision 1.60  1999-11-17 17:04:58  pierre
+  Revision 1.61  1999-11-20 01:22:18  pierre
+    + cond FPC_USE_CPREFIX (needs also some RTL changes)
+      this allows to use unit global vars as DLL exports
+      (the underline prefix seems needed by dlltool)
+
+  Revision 1.60  1999/11/17 17:04:58  pierre
    * Notes/hints changes
 
   Revision 1.59  1999/11/15 14:04:00  pierre

+ 13 - 1
compiler/options.pas

@@ -561,6 +561,9 @@ begin
                      begin
                         { Specific info, which can be used in Makefiles }
                         case More[1] of
+{$ifdef FPC_USE_CPREFIX}
+                          'C' : QuickInfo('use C prefix');
+{$endif FPC_USE_CPREFIX}
                           'S' : begin
                                   case More[2] of
                                    'O' : QuickInfo(source_os.shortname);
@@ -1072,6 +1075,10 @@ begin
   def_symbol('SYSTEMTVARREC');
   def_symbol('INCLUDEOK');
   def_symbol('NEWMM');
+{$ifdef FPC_USE_CPREFIX}
+  { default on next round }
+  def_symbol('FPC_USE_CPREFIX');
+{$endif FPC_USE_CPREFIX}
 
 { some stuff for TP compatibility }
 {$ifdef i386}
@@ -1269,7 +1276,12 @@ end;
 end.
 {
   $Log$
-  Revision 1.36  1999-11-15 17:42:40  pierre
+  Revision 1.37  1999-11-20 01:22:19  pierre
+    + cond FPC_USE_CPREFIX (needs also some RTL changes)
+      this allows to use unit global vars as DLL exports
+      (the underline prefix seems needed by dlltool)
+
+  Revision 1.36  1999/11/15 17:42:40  pierre
    * -g disables reloc section for win32
 
   Revision 1.35  1999/11/12 11:03:50  peter

+ 11 - 2
compiler/symsym.inc

@@ -1147,7 +1147,11 @@
                prefix:='_';
            unitsymtable,
            globalsymtable :
-             prefix:='U_'+owner^.name^+'_';
+             prefix:=
+{$ifdef FPC_USE_CPREFIX}
+              target_os.Cprefix+
+{$endif FPC_USE_CPREFIX}
+              'U_'+owner^.name^+'_';
            else
              Message(sym_e_invalid_call_tvarsymmangledname);
          end;
@@ -2188,7 +2192,12 @@
 
 {
   $Log$
-  Revision 1.127  1999-11-17 17:05:04  pierre
+  Revision 1.128  1999-11-20 01:22:20  pierre
+    + cond FPC_USE_CPREFIX (needs also some RTL changes)
+      this allows to use unit global vars as DLL exports
+      (the underline prefix seems needed by dlltool)
+
+  Revision 1.127  1999/11/17 17:05:04  pierre
    * Notes/hints changes
 
   Revision 1.126  1999/11/15 22:00:48  peter