Browse Source

* get rid of some feature checks, probably the whole feature stuff is plainly the wrong way, embedded rtl compiles again, resolves #20913

git-svn-id: trunk@19907 -
florian 13 years ago
parent
commit
6a1a2d3464
7 changed files with 19 additions and 22 deletions
  1. 6 0
      rtl/embedded/rtl.cfg
  2. 2 2
      rtl/inc/compproc.inc
  3. 5 0
      rtl/inc/heap.inc
  4. 2 2
      rtl/inc/heaph.inc
  5. 1 11
      rtl/inc/system.inc
  6. 0 4
      rtl/inc/systemh.inc
  7. 3 3
      rtl/inc/text.inc

+ 6 - 0
rtl/embedded/rtl.cfg

@@ -1,5 +1,10 @@
 # first, disable all
 # first, disable all
 -Sf-
 -Sf-
+# enable required ones
+# they don't add much additional code or data
+-SfTEXTIO
+-SfFILEIO
+-SfHEAP
 # uncomment to enable the stuff you want to use
 # uncomment to enable the stuff you want to use
 
 
 # include full heap management into the rtl
 # include full heap management into the rtl
@@ -33,3 +38,4 @@
 #ifdef CPUARM
 #ifdef CPUARM
 -SfSOFTFPU
 -SfSOFTFPU
 #endif CPUARM
 #endif CPUARM
+

+ 2 - 2
rtl/inc/compproc.inc

@@ -366,7 +366,7 @@ Function fpc_Char_To_WChar(const c : Char): WideChar; compilerproc;
 Function fpc_WChar_To_Char(const c : WideChar): Char; compilerproc;
 Function fpc_WChar_To_Char(const c : WideChar): Char; compilerproc;
 {$endif FPC_HAS_FEATURE_WIDESTRINGS}
 {$endif FPC_HAS_FEATURE_WIDESTRINGS}
 
 
-{$ifdef FPC_HAS_FEATURE_TEXTIO}
+{ $ifdef FPC_HAS_FEATURE_TEXTIO}
 { from text.inc }
 { from text.inc }
 Function fpc_get_input:PText;compilerproc;
 Function fpc_get_input:PText;compilerproc;
 Function fpc_get_output:PText;compilerproc;
 Function fpc_get_output:PText;compilerproc;
@@ -433,7 +433,7 @@ function fpc_SetupReadStr_Unicodestr(const s: unicodestring): PText; compilerpro
 {$ifndef FPC_WIDESTRING_EQUAL_UNICODESTRING}
 {$ifndef FPC_WIDESTRING_EQUAL_UNICODESTRING}
 function fpc_SetupReadStr_Widestr(const s: widestring): PText; compilerproc;
 function fpc_SetupReadStr_Widestr(const s: widestring): PText; compilerproc;
 {$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
 {$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
-{$endif FPC_HAS_FEATURE_TEXTIO}
+{ $endif FPC_HAS_FEATURE_TEXTIO}
 
 
 {$ifdef FPC_HAS_FEATURE_VARIANTS}
 {$ifdef FPC_HAS_FEATURE_VARIANTS}
 procedure fpc_variant_init(var v: tvardata);compilerproc;
 procedure fpc_variant_init(var v: tvardata);compilerproc;

+ 5 - 0
rtl/inc/heap.inc

@@ -270,6 +270,7 @@ begin
 {$endif HAS_MEMORYMANAGER}
 {$endif HAS_MEMORYMANAGER}
 end;
 end;
 
 
+{$ifdef FPC_HAS_FEATURE_HEAP}
 procedure GetMem(Out p:pointer;Size:ptruint);
 procedure GetMem(Out p:pointer;Size:ptruint);
 begin
 begin
   p := MemoryManager.GetMem(Size);
   p := MemoryManager.GetMem(Size);
@@ -357,8 +358,10 @@ procedure fpc_freemem(p:pointer);compilerproc;[public,alias:'FPC_FREEMEM'];
 begin
 begin
   MemoryManager.FreeMem(p);
   MemoryManager.FreeMem(p);
 end;
 end;
+{$endif FPC_HAS_FEATURE_HEAP}
 {$endif FPC_IN_HEAPMGR}
 {$endif FPC_IN_HEAPMGR}
 
 
+{$if defined(FPC_HAS_FEATURE_HEAP) or defined(FPC_IN_HEAPMGR)}
 {$ifndef HAS_MEMORYMANAGER}
 {$ifndef HAS_MEMORYMANAGER}
 {*****************************************************************************
 {*****************************************************************************
                                GetHeapStatus
                                GetHeapStatus
@@ -1615,3 +1618,5 @@ begin
 end;
 end;
 
 
 {$endif HAS_MEMORYMANAGER}
 {$endif HAS_MEMORYMANAGER}
+{$endif defined(FPC_HAS_FEATURE_HEAP) or defined(FPC_IN_HEAPMGR)}
+

+ 2 - 2
rtl/inc/heaph.inc

@@ -78,6 +78,7 @@ function  SysGetHeapStatus:THeapStatus;
 function  SysGetFPCHeapStatus:TFPCHeapStatus;
 function  SysGetFPCHeapStatus:TFPCHeapStatus;
 {$endif EMBEDDED}
 {$endif EMBEDDED}
 
 
+{$ifdef FPC_HAS_FEATURE_HEAP}
 { Tp7 functions }
 { Tp7 functions }
 Procedure Getmem(Out p:pointer;Size:ptruint);
 Procedure Getmem(Out p:pointer;Size:ptruint);
 Procedure Getmemory(Out p:pointer;Size:ptruint);
 Procedure Getmemory(Out p:pointer;Size:ptruint);
@@ -97,6 +98,5 @@ function ReAllocMem(var p:pointer;Size:ptruint):pointer;
 function ReAllocMemory(p:pointer;Size:ptruint):pointer; cdecl;
 function ReAllocMemory(p:pointer;Size:ptruint):pointer; cdecl;
 function GetHeapStatus:THeapStatus;
 function GetHeapStatus:THeapStatus;
 function GetFPCHeapStatus:TFPCHeapStatus;
 function GetFPCHeapStatus:TFPCHeapStatus;
-
-{ Bootstrapping }
+{$endif FPC_HAS_FEATURE_HEAP}
 
 

+ 1 - 11
rtl/inc/system.inc

@@ -64,9 +64,7 @@ Const
 {$i filerec.inc}
 {$i filerec.inc}
 {$endif FPC_HAS_FEATURE_FILEIO}
 {$endif FPC_HAS_FEATURE_FILEIO}
 
 
-{$ifdef FPC_HAS_FEATURE_TEXTIO}
 {$i textrec.inc}
 {$i textrec.inc}
-{$endif FPC_HAS_FEATURE_TEXTIO}
 
 
 {$ifdef FPC_HAS_FEATURE_EXITCODE}
 {$ifdef FPC_HAS_FEATURE_EXITCODE}
   {$ifdef FPC_OBJFPC_EXTENDED_IF}
   {$ifdef FPC_OBJFPC_EXTENDED_IF}
@@ -86,7 +84,6 @@ type
   FileFunc = Procedure(var t : TextRec);
   FileFunc = Procedure(var t : TextRec);
 {$endif FPC_HAS_FEATURE_TEXTIO}
 {$endif FPC_HAS_FEATURE_TEXTIO}
 
 
-
 const
 const
   STACK_MARGIN = 16384;    { Stack size margin for stack checking }
   STACK_MARGIN = 16384;    { Stack size margin for stack checking }
 { Random / Randomize constants }
 { Random / Randomize constants }
@@ -1012,14 +1009,13 @@ Begin
   Halt(0);
   Halt(0);
 End;
 End;
 
 
-Procedure Error(RunTimeError : TRunTimeError);
 
 
+Procedure Error(RunTimeError : TRunTimeError);
 begin
 begin
   RunError(RuntimeErrorExitCodes[RunTimeError]);
   RunError(RuntimeErrorExitCodes[RunTimeError]);
 end;
 end;
 
 
 
 
-{$ifdef FPC_HAS_FEATURE_CONSOLEIO}
 Procedure dump_stack(var f : text;bp : Pointer);
 Procedure dump_stack(var f : text;bp : Pointer);
 var
 var
   i : Longint;
   i : Longint;
@@ -1074,8 +1070,6 @@ begin
 end;
 end;
 {$endif FPC_HAS_FEATURE_EXCEPTIONS}
 {$endif FPC_HAS_FEATURE_EXCEPTIONS}
 
 
-{$endif FPC_HAS_FEATURE_CONSOLEIO}
-
 
 
 {$ifdef FPC_HAS_FEATURE_HEAP}
 {$ifdef FPC_HAS_FEATURE_HEAP}
 Type
 Type
@@ -1276,11 +1270,9 @@ end;
                                Heap
                                Heap
 *****************************************************************************}
 *****************************************************************************}
 
 
-{$ifdef FPC_HAS_FEATURE_HEAP}
 {$i sysheap.inc}
 {$i sysheap.inc}
 
 
 {$i heap.inc}
 {$i heap.inc}
-{$endif FPC_HAS_FEATURE_HEAP}
 
 
 {*****************************************************************************
 {*****************************************************************************
                           Thread support
                           Thread support
@@ -1332,9 +1324,7 @@ end;
 {$endif FPC_HAS_FEATURE_FILEIO}
 {$endif FPC_HAS_FEATURE_FILEIO}
 
 
 { Text file }
 { Text file }
-{$ifdef FPC_HAS_FEATURE_TEXTIO}
 {$i text.inc}
 {$i text.inc}
-{$endif FPC_HAS_FEATURE_TEXTIO}
 
 
 {$ifdef FPC_HAS_FEATURE_FILEIO}
 {$ifdef FPC_HAS_FEATURE_FILEIO}
 { Untyped file }
 { Untyped file }

+ 0 - 4
rtl/inc/systemh.inc

@@ -1118,12 +1118,10 @@ Function  Paramcount:Longint;
 Function  ParamStr(l:Longint):string;
 Function  ParamStr(l:Longint):string;
 {$endif FPC_HAS_FEATURE_COMMANDARGS}
 {$endif FPC_HAS_FEATURE_COMMANDARGS}
 
 
-{$ifdef FPC_HAS_FEATURE_CONSOLEIO}
 Procedure Dump_Stack(var f : text;bp:pointer);
 Procedure Dump_Stack(var f : text;bp:pointer);
 {$ifdef FPC_HAS_FEATURE_EXCEPTIONS}
 {$ifdef FPC_HAS_FEATURE_EXCEPTIONS}
 procedure DumpExceptionBackTrace(var f:text);
 procedure DumpExceptionBackTrace(var f:text);
 {$endif FPC_HAS_FEATURE_EXCEPTIONS}
 {$endif FPC_HAS_FEATURE_EXCEPTIONS}
-{$endif FPC_HAS_FEATURE_CONSOLEIO}
 
 
 Procedure RunError(w:Word);
 Procedure RunError(w:Word);
 Procedure RunError;{$ifdef SYSTEMINLINE}inline;{$endif}
 Procedure RunError;{$ifdef SYSTEMINLINE}inline;{$endif}
@@ -1229,9 +1227,7 @@ const
                                Heap
                                Heap
 *****************************************************************************}
 *****************************************************************************}
 
 
-{$ifdef FPC_HAS_FEATURE_HEAP}
 {$i heaph.inc}
 {$i heaph.inc}
-{$endif FPC_HAS_FEATURE_HEAP}
 
 
 {*****************************************************************************
 {*****************************************************************************
                           Thread support
                           Thread support

+ 3 - 3
rtl/inc/text.inc

@@ -704,7 +704,7 @@ begin
           fpc_WriteBlanks(f,Len-SLen);
           fpc_WriteBlanks(f,Len-SLen);
         if slen > 0 then
         if slen > 0 then
           begin
           begin
-            {$ifdef FPC_HAS_CPSTRING}
+            {$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_ANSISTRINGS)}
             a:=fpc_AnsiStr_To_AnsiStr(S,TextRec(f).CodePage);
             a:=fpc_AnsiStr_To_AnsiStr(S,TextRec(f).CodePage);
             fpc_WriteBuffer(f,PAnsiChar(a)^,Length(a));
             fpc_WriteBuffer(f,PAnsiChar(a)^,Length(a));
             {$else}
             {$else}
@@ -2020,14 +2020,14 @@ begin
     fmInput :
     fmInput :
       begin
       begin
         TextRec(f).InOutFunc:=@FileReadFunc;
         TextRec(f).InOutFunc:=@FileReadFunc;
-      {$ifdef FPC_HAS_CPSTRING}
+      {$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_WIDESTRINGS)}
         TextRec(f).CodePage:=WideStringManager.GetStandardCodePageProc(scpConsoleInput);
         TextRec(f).CodePage:=WideStringManager.GetStandardCodePageProc(scpConsoleInput);
       {$endif}
       {$endif}
       end;
       end;
     fmOutput :
     fmOutput :
       begin
       begin
         TextRec(f).InOutFunc:=@FileWriteFunc;
         TextRec(f).InOutFunc:=@FileWriteFunc;
-      {$ifdef FPC_HAS_CPSTRING}
+        {$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_WIDESTRINGS)}
         TextRec(f).CodePage:=WideStringManager.GetStandardCodePageProc(scpConsoleOutput);
         TextRec(f).CodePage:=WideStringManager.GetStandardCodePageProc(scpConsoleOutput);
       {$endif}
       {$endif}
         if Do_Isdevice(hdl) then
         if Do_Isdevice(hdl) then