* Move rtl.cfg content to system.cfg

+ New rtl.cfg containg non-feature options of former file (i8086 only)
  * Use system.cfg for system unit compilation
  + add @rtl.cfg option for i8086 CPU

git-svn-id: trunk@37920 -
This commit is contained in:
pierre 2018-01-06 12:27:28 +00:00
parent 6d072872d0
commit bdd3b4e695
5 changed files with 220 additions and 200 deletions

1
.gitattributes vendored
View File

@ -9093,6 +9093,7 @@ rtl/embedded/sysfile.inc svneol=native#text/plain
rtl/embedded/sysheap.inc svneol=native#text/plain
rtl/embedded/sysos.inc svneol=native#text/plain
rtl/embedded/sysosh.inc svneol=native#text/plain
rtl/embedded/system.cfg svneol=native#text/plain
rtl/embedded/system.pp svneol=native#text/plain
rtl/embedded/systhrd.inc svneol=native#text/plain
rtl/embedded/sysutils.pp svneol=native#text/pascal

View File

@ -349,6 +349,9 @@ endif
ifdef RELEASE
override FPCOPT+=-Ur
endif
ifeq ($(ARCH),i8086)
override FPCOPT+=@rtl.cfg
endif
CPU_UNITS=
SYSINIT_UNITS=
CPU_SPECIFIC_COMMON_UNITS=
@ -2692,7 +2695,7 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
startup$(OEXT) : $(CPU_TARGET)/startup.s
$(AS) $(ASTARGET) -o $(UNITTARGETDIRPREFIX)startup$(OEXT) $(CPU_TARGET)/startup.s -mabi=32 -march=pic32mx -mtune=pic32mx -W -EL -msym32
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(INC)/softfpu.pp
$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @rtl.cfg $(REDIR)
$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @system.cfg $(REDIR)
uuchar$(PPUEXT): $(INC)/uuchar.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $<
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)

View File

@ -59,6 +59,11 @@ ifdef RELEASE
override FPCOPT+=-Ur
endif
# Always include rtl.cfg config file for i8086
ifeq ($(ARCH),i8086)
override FPCOPT+=@rtl.cfg
endif
CPU_UNITS=
SYSINIT_UNITS=
CPU_SPECIFIC_COMMON_UNITS=
@ -197,7 +202,7 @@ startup$(OEXT) : $(CPU_TARGET)/startup.s
#
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(INC)/softfpu.pp
$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @rtl.cfg $(REDIR)
$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @system.cfg $(REDIR)
uuchar$(PPUEXT): $(INC)/uuchar.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $<

View File

@ -1,206 +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
# -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
#endif
# Keep only options that are not features
# as those are now restricted to system unit compilation only
# 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

207
rtl/embedded/system.cfg Normal file
View File

@ -0,0 +1,207 @@
# 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
#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