# 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 # -SfHEAP # include support for init final code of units into the rtl # -SfINITFINAL # -SfCLASSES # -SfEXCEPTIONS # -SfEXITCODE # -SfANSISTRINGS # -SfWIDESTRINGS # -SfTEXTIO # -SfCONSOLEIO # -SfFILEIO # -SfRANDOM # -SfVARIANTS # -SfOBJECTS # -SfDYNARRAYS # -SfTHREADING # -SfCOMMANDARGS # -SfPROCESSES # -SfSTACKCHECK # -SfDYNLIBS # include exit code support -SfEXITCODE # i386 is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUI386 -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUI386 # x86_64 is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUX86_64 -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUX86_64 # arm is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUARM -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUARM # mipsel is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUMIPSEL -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUMIPSEL # mips is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUMIPS -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUMIPS # powerpc is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUPOWERPC -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUPOWERPC # powerpc64 is powerful enough to handle most object pascal constructs # it is only a matter of size #ifdef CPUPOWERPC64 -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPUPOWERPC64 # does not require extra memory, neither code nor data # in programs not using e. g. writeln based I/O which is the common case for AVR #ifdef CPUAVR -SfOBJECTS -SfEXCEPTIONS -SfCLASSES -SfRTTI # AVR6 has normally more memory, so enable more functions #ifdef CPUAVR6 -SfANSISTRINGS -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif #endif # Minimal set for m68k, copied from AVR above # does not require extra memory, neither code nor data # in programs not using e. g. writeln based I/O #ifdef CPUM68K -SfSOFTFPU -SfOBJECTS -SfEXCEPTIONS -SfCLASSES -SfRTTI -SfANSISTRINGS -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif # Minimal set for i8086, copied from AVR above # does not require extra memory, neither code nor data # in programs not using e. g. writeln based I/OR #ifdef CPUI8086 -SfOBJECTS -SfEXCEPTIONS -SfCLASSES -SfRTTI -Cs2048 -CX -XX #endif #ifdef CPURISCV32 -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPURISCV32 #ifdef CPURISCV64 -SfSOFTFPU -SfCLASSES -SfEXCEPTIONS -SfANSISTRINGS -SfRTTI -SfWIDESTRINGS -SfDYNARRAYS -SfTHREADING -SfVARIANTS -SfOBJECTS -SfCOMMANDARGS -SfRANDOM -SfRESOURCES #endif CPURISCV64