From 6a1a2d3464282423d2b536ebf74d231dc474f363 Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 29 Dec 2011 14:06:30 +0000 Subject: [PATCH] * 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 - --- rtl/embedded/rtl.cfg | 6 ++++++ rtl/inc/compproc.inc | 4 ++-- rtl/inc/heap.inc | 5 +++++ rtl/inc/heaph.inc | 4 ++-- rtl/inc/system.inc | 12 +----------- rtl/inc/systemh.inc | 4 ---- rtl/inc/text.inc | 6 +++--- 7 files changed, 19 insertions(+), 22 deletions(-) diff --git a/rtl/embedded/rtl.cfg b/rtl/embedded/rtl.cfg index d65cf8a3e1..b83296fcff 100644 --- a/rtl/embedded/rtl.cfg +++ b/rtl/embedded/rtl.cfg @@ -1,5 +1,10 @@ # first, disable all -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 # include full heap management into the rtl @@ -33,3 +38,4 @@ #ifdef CPUARM -SfSOFTFPU #endif CPUARM + diff --git a/rtl/inc/compproc.inc b/rtl/inc/compproc.inc index 7eb68898f9..3caaf9d704 100644 --- a/rtl/inc/compproc.inc +++ b/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; {$endif FPC_HAS_FEATURE_WIDESTRINGS} -{$ifdef FPC_HAS_FEATURE_TEXTIO} +{ $ifdef FPC_HAS_FEATURE_TEXTIO} { from text.inc } Function fpc_get_input: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} function fpc_SetupReadStr_Widestr(const s: widestring): PText; compilerproc; {$endif FPC_WIDESTRING_EQUAL_UNICODESTRING} -{$endif FPC_HAS_FEATURE_TEXTIO} +{ $endif FPC_HAS_FEATURE_TEXTIO} {$ifdef FPC_HAS_FEATURE_VARIANTS} procedure fpc_variant_init(var v: tvardata);compilerproc; diff --git a/rtl/inc/heap.inc b/rtl/inc/heap.inc index 5cd05042f6..9a03214d24 100644 --- a/rtl/inc/heap.inc +++ b/rtl/inc/heap.inc @@ -270,6 +270,7 @@ begin {$endif HAS_MEMORYMANAGER} end; +{$ifdef FPC_HAS_FEATURE_HEAP} procedure GetMem(Out p:pointer;Size:ptruint); begin p := MemoryManager.GetMem(Size); @@ -357,8 +358,10 @@ procedure fpc_freemem(p:pointer);compilerproc;[public,alias:'FPC_FREEMEM']; begin MemoryManager.FreeMem(p); end; +{$endif FPC_HAS_FEATURE_HEAP} {$endif FPC_IN_HEAPMGR} +{$if defined(FPC_HAS_FEATURE_HEAP) or defined(FPC_IN_HEAPMGR)} {$ifndef HAS_MEMORYMANAGER} {***************************************************************************** GetHeapStatus @@ -1615,3 +1618,5 @@ begin end; {$endif HAS_MEMORYMANAGER} +{$endif defined(FPC_HAS_FEATURE_HEAP) or defined(FPC_IN_HEAPMGR)} + diff --git a/rtl/inc/heaph.inc b/rtl/inc/heaph.inc index fae6e4b5af..052e7e9ce4 100644 --- a/rtl/inc/heaph.inc +++ b/rtl/inc/heaph.inc @@ -78,6 +78,7 @@ function SysGetHeapStatus:THeapStatus; function SysGetFPCHeapStatus:TFPCHeapStatus; {$endif EMBEDDED} +{$ifdef FPC_HAS_FEATURE_HEAP} { Tp7 functions } Procedure Getmem(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 GetHeapStatus:THeapStatus; function GetFPCHeapStatus:TFPCHeapStatus; - -{ Bootstrapping } +{$endif FPC_HAS_FEATURE_HEAP} diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index 09894302eb..2ea4336d31 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -64,9 +64,7 @@ Const {$i filerec.inc} {$endif FPC_HAS_FEATURE_FILEIO} -{$ifdef FPC_HAS_FEATURE_TEXTIO} {$i textrec.inc} -{$endif FPC_HAS_FEATURE_TEXTIO} {$ifdef FPC_HAS_FEATURE_EXITCODE} {$ifdef FPC_OBJFPC_EXTENDED_IF} @@ -86,7 +84,6 @@ type FileFunc = Procedure(var t : TextRec); {$endif FPC_HAS_FEATURE_TEXTIO} - const STACK_MARGIN = 16384; { Stack size margin for stack checking } { Random / Randomize constants } @@ -1012,14 +1009,13 @@ Begin Halt(0); End; -Procedure Error(RunTimeError : TRunTimeError); +Procedure Error(RunTimeError : TRunTimeError); begin RunError(RuntimeErrorExitCodes[RunTimeError]); end; -{$ifdef FPC_HAS_FEATURE_CONSOLEIO} Procedure dump_stack(var f : text;bp : Pointer); var i : Longint; @@ -1074,8 +1070,6 @@ begin end; {$endif FPC_HAS_FEATURE_EXCEPTIONS} -{$endif FPC_HAS_FEATURE_CONSOLEIO} - {$ifdef FPC_HAS_FEATURE_HEAP} Type @@ -1276,11 +1270,9 @@ end; Heap *****************************************************************************} -{$ifdef FPC_HAS_FEATURE_HEAP} {$i sysheap.inc} {$i heap.inc} -{$endif FPC_HAS_FEATURE_HEAP} {***************************************************************************** Thread support @@ -1332,9 +1324,7 @@ end; {$endif FPC_HAS_FEATURE_FILEIO} { Text file } -{$ifdef FPC_HAS_FEATURE_TEXTIO} {$i text.inc} -{$endif FPC_HAS_FEATURE_TEXTIO} {$ifdef FPC_HAS_FEATURE_FILEIO} { Untyped file } diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 43f89e2f28..baf43b3d2a 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -1118,12 +1118,10 @@ Function Paramcount:Longint; Function ParamStr(l:Longint):string; {$endif FPC_HAS_FEATURE_COMMANDARGS} -{$ifdef FPC_HAS_FEATURE_CONSOLEIO} Procedure Dump_Stack(var f : text;bp:pointer); {$ifdef FPC_HAS_FEATURE_EXCEPTIONS} procedure DumpExceptionBackTrace(var f:text); {$endif FPC_HAS_FEATURE_EXCEPTIONS} -{$endif FPC_HAS_FEATURE_CONSOLEIO} Procedure RunError(w:Word); Procedure RunError;{$ifdef SYSTEMINLINE}inline;{$endif} @@ -1229,9 +1227,7 @@ const Heap *****************************************************************************} -{$ifdef FPC_HAS_FEATURE_HEAP} {$i heaph.inc} -{$endif FPC_HAS_FEATURE_HEAP} {***************************************************************************** Thread support diff --git a/rtl/inc/text.inc b/rtl/inc/text.inc index e0473d5c83..f9ef0f350b 100644 --- a/rtl/inc/text.inc +++ b/rtl/inc/text.inc @@ -704,7 +704,7 @@ begin fpc_WriteBlanks(f,Len-SLen); if slen > 0 then 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); fpc_WriteBuffer(f,PAnsiChar(a)^,Length(a)); {$else} @@ -2020,14 +2020,14 @@ begin fmInput : begin 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); {$endif} end; fmOutput : begin 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); {$endif} if Do_Isdevice(hdl) then