2
0
Эх сурвалжийг харах

* 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 -

pierre 7 жил өмнө
parent
commit
bdd3b4e695

+ 1 - 0
.gitattributes

@@ -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

+ 4 - 1
rtl/embedded/Makefile

@@ -349,6 +349,9 @@ endif
 ifdef RELEASE
 override FPCOPT+=-Ur
 endif
+ifeq ($(ARCH),i8086)
+override [email protected]
+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)

+ 6 - 1
rtl/embedded/Makefile.fpc

@@ -59,6 +59,11 @@ ifdef RELEASE
 override FPCOPT+=-Ur
 endif
 
+# Always include rtl.cfg config file for i8086
+ifeq ($(ARCH),i8086)
+override [email protected]
+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) $<

+ 2 - 198
rtl/embedded/rtl.cfg

@@ -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 - 0
rtl/embedded/system.cfg

@@ -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