Sfoglia il codice sorgente

+ -iSO, -iSP, -iTO, -iTP

peter 27 anni fa
parent
commit
02904d8319

+ 20 - 9
compiler/compiler.pas

@@ -98,6 +98,7 @@ implementation
 
 
 var
+  CompilerInitedAfterArgs,
   CompilerInited : boolean;
 
 {$ifdef USEEXCEPT}
@@ -120,14 +121,19 @@ procedure DoneCompiler;
 begin
   if not CompilerInited then
    exit;
+{ Free compiler if args are read }
+  if CompilerInitedAfterArgs then
+   begin
+     CompilerInitedAfterArgs:=false;
+     doneparser;
+     DoneImport;
+     DoneExport;
+   end;
+{ Free memory for the others }
   CompilerInited:=false;
-{ Free memory }
   DoneSymtable;
   DoneGlobals;
   linker.done;
-  doneparser;
-  DoneImport;
-  DoneExport;
 {$ifdef UseBrowser}
   DoneBrowser;
 {$endif UseBrowser}
@@ -136,23 +142,24 @@ end;
 
 procedure InitCompiler(const cmd:string);
 begin
-{$ifdef UseBrowser}
-   InitBrowser;
-{$endif UseBrowser}
   if CompilerInited then
    DoneCompiler;
 { inits which need to be done before the arguments are parsed }
   InitVerbose;
+{$ifdef UseBrowser}
+  InitBrowser;
+{$endif UseBrowser}
   InitGlobals;
   InitSymtable;
   linker.init;
+  CompilerInited:=true;
 { read the arguments }
   read_arguments(cmd);
 { inits which depend on arguments }
   initparser;
   InitImport;
   InitExport;
-  CompilerInited:=true;
+  CompilerInitedAfterArgs:=true;
 end;
 
 
@@ -236,6 +243,7 @@ begin
    Compile:=0
   else
    Compile:=1;
+
 { no message possible after this !! }
   DoneVerbose;
 end;
@@ -244,7 +252,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.15  1998-10-29 11:35:40  florian
+  Revision 1.16  1998-12-15 10:23:23  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.15  1998/10/29 11:35:40  florian
     * some dll support for win32
     * fixed assembler writing for PalmOS
 

+ 5 - 2
compiler/pmodules.pas

@@ -100,7 +100,7 @@ unit pmodules;
            then
          begin
            datasegment^.insert(new(pai_align,init(4)));
-           datasegment^.insert(new(pai_string,init('FPC '+version_string+' for '+target_string+' - '+target_info.short_name)));
+           datasegment^.insert(new(pai_string,init('FPC '+version_string+' for '+target_cpu_string+' - '+target_info.short_name)));
          end;
       { Insert start and end of sections }
         fixseg(codesegment,sec_code);
@@ -1228,7 +1228,10 @@ unit pmodules;
 end.
 {
   $Log$
-  Revision 1.89  1998-12-11 00:03:34  peter
+  Revision 1.90  1998-12-15 10:23:26  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.89  1998/12/11 00:03:34  peter
     + globtype,tokens,version unit splitted from globals
 
   Revision 1.88  1998/12/08 10:18:11  peter

+ 1 - 1
compiler/ppheap.pas

@@ -29,7 +29,7 @@ unit ppheap;
   implementation
 
     uses
-       globals,files;
+       globtype,globals,files;
 
     procedure ppextra_info(p : pointer);
       begin

+ 5 - 2
compiler/scandir.inc

@@ -554,7 +554,7 @@ const
              hs:=version_string
            else
             if hs='FPCTARGET' then
-             hs:=target_string
+             hs:=target_cpu_string
            else
             hs:=getenv(hs);
            if hs='' then
@@ -985,7 +985,10 @@ const
 
 {
   $Log$
-  Revision 1.43  1998-11-16 15:41:43  peter
+  Revision 1.44  1998-12-15 10:23:29  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.43  1998/11/16 15:41:43  peter
     * tp7 didn't like my ifopt H+ :(
 
   Revision 1.42  1998/11/16 12:18:04  peter

+ 17 - 2
compiler/systems.pas

@@ -110,6 +110,7 @@ unit systems;
        tosinfo = packed record
           id        : tos;
           name      : string[30];
+          shortname : string[8];
           sharedlibext,
           staticlibext,
           sourceext,
@@ -210,11 +211,13 @@ implementation
        os_infos : array[1..oscnt] of tosinfo = (
           (
             id           : os_none;
-            name         : 'No operating system'
+            name         : 'No operating system';
+            shortname    : 'none'
           ),
           (
             id           : os_i386_go32v1;
             name         : 'GO32 V1 DOS extender';
+            shortname    : 'go32v1';
             sharedlibext : '.dll';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -234,6 +237,7 @@ implementation
           (
             id           : os_i386_go32v2;
             name         : 'GO32 V2 DOS extender';
+            shortname    : 'go32v2';
             sharedlibext : '.dll';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -253,6 +257,7 @@ implementation
           (
             id           : os_i386_linux;
             name         : 'Linux for i386';
+            shortname    : 'linux';
             sharedlibext : '.so';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -272,6 +277,7 @@ implementation
           (
             id           : os_i386_os2;
             name         : 'OS/2 via EMX';
+            shortname    : 'os2';
             sharedlibext : '.ao2';
             staticlibext : '.ao2';
             sourceext    : '.pas';
@@ -291,6 +297,7 @@ implementation
           (
             id           : os_i386_win32;
             name         : 'Win32 for i386';
+            shortname    : 'win32';
             sharedlibext : '.dll';
             staticlibext : '.aw';
             sourceext    : '.pp';
@@ -310,6 +317,7 @@ implementation
           (
             id           : os_m68k_amiga;
             name         : 'Commodore Amiga';
+            shortname    : 'amiga';
             sharedlibext : '.library';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -329,6 +337,7 @@ implementation
           (
             id           : os_m68k_atari;
             name         : 'Atari ST/STE';
+            shortname    : 'atari';
             sharedlibext : '.dll';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -348,6 +357,7 @@ implementation
           (
             id           : os_m68k_mac;
             name         : 'Macintosh m68k';
+            shortname    : 'mac';
             sharedlibext : '.dll';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -367,6 +377,7 @@ implementation
           (
             id           : os_m68k_linux;
             name         : 'Linux for m68k';
+            shortname    : 'linux';
             sharedlibext : '.so';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -386,6 +397,7 @@ implementation
           (
             id           : os_m68k_palmos;
             name         : 'PalmOS';
+            shortname    : 'palmos';
             sharedlibext : '.so';
             staticlibext : '.a';
             sourceext    : '.pp';
@@ -1213,7 +1225,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.52  1998-12-03 10:17:32  peter
+  Revision 1.53  1998-12-15 10:23:30  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.52  1998/12/03 10:17:32  peter
     * target_os.use_bound_instruction boolean
 
   Revision 1.51  1998/11/30 09:43:23  pierre

+ 7 - 1
compiler/tcinl.pas

@@ -880,6 +880,9 @@ implementation
                 internalerror(8);
               end;
             end;
+           { generate an error if no resulttype is set }
+           if not assigned(p^.resulttype) then
+             p^.resulttype:=generrordef;
            must_be_valid:=store_valid;
            count_ref:=store_count_ref;
        end;
@@ -888,7 +891,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.11  1998-12-11 23:36:08  florian
+  Revision 1.12  1998-12-15 10:23:31  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.11  1998/12/11 23:36:08  florian
     + again more stuff for int64/qword:
          - comparision operators
          - code generation for: str, read(ln), write(ln)

+ 5 - 1
compiler/tree.pas

@@ -455,6 +455,7 @@ unit tree;
          freelabel(p^._at);
          freelabel(p^.statement);
          dispose(p);
+         p:=nil;
       end;
 
     procedure swaptree(p:Ptree);
@@ -1656,7 +1657,10 @@ unit tree;
 end.
 {
   $Log$
-  Revision 1.58  1998-12-11 00:04:02  peter
+  Revision 1.59  1998-12-15 10:23:32  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.58  1998/12/11 00:04:02  peter
     + globtype,tokens,version unit splitted from globals
 
   Revision 1.57  1998/12/04 10:18:13  florian

+ 5 - 2
compiler/verbose.pas

@@ -237,7 +237,7 @@ procedure UpdateReplacement(var s:string);
 begin
   Replace(s,'$FPCVER',version_string);
   Replace(s,'$FPCDATE',date_string);
-  Replace(s,'$FPCTARGET',target_string);
+  Replace(s,'$FPCTARGET',target_cpu_string);
 end;
 
 
@@ -429,7 +429,10 @@ end.
 
 {
   $Log$
-  Revision 1.31  1998-12-11 00:04:04  peter
+  Revision 1.32  1998-12-15 10:23:33  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.31  1998/12/11 00:04:04  peter
     + globtype,tokens,version unit splitted from globals
 
   Revision 1.30  1998/12/02 16:23:38  jonas

+ 23 - 11
compiler/version.pas

@@ -24,30 +24,39 @@ unit version;
 interface
 
     const
-       { version string }
+       { word version for ppu file }
        wordversion = (0 shl 11)+99;
 
+       { version string }
        version_nr = '0';
        release_nr = '99';
        patch_nr   = '11';
        version_string = version_nr+'.'+release_nr+'.'+patch_nr;
 
-       { target string }
+       { date string }
+{$ifdef FPC}
+       date_string = {$I %DATE%};
+{$else}
+       date_string = 'N/A';
+{$endif}
+
+       { target cpu string }
 {$ifdef i386}
-       target_string = 'i386';
+       target_cpu_string = 'i386';
 {$endif}
 {$ifdef m68k}
-       target_string = 'M680x0';
+       target_cpu_string = 'm68k';
 {$endif}
 {$ifdef alpha}
-       target_string = 'Alpha';
+       target_cpu_string = 'alpha';
 {$endif}
 
-       { date string }
-{$ifdef FPC}
-       date_string = {$I %DATE%};
-{$else}
-       date_string = 'N/A';
+       { source cpu string }
+{$ifdef cpu86}
+        source_cpu_string = 'i386';
+{$endif}
+{$ifdef cpu68}
+        source_cpu_string = 'm68k';
 {$endif}
 
 
@@ -56,7 +65,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.2  1998-12-14 12:58:45  peter
+  Revision 1.3  1998-12-15 10:23:34  peter
+    + -iSO, -iSP, -iTO, -iTP
+
+  Revision 1.2  1998/12/14 12:58:45  peter
     * version 0.99.11
 
     + globtype,tokens,version unit splitted from globals