Browse Source

* synchronize with trunk

git-svn-id: branches/z80@44584 -
nickysn 5 years ago
parent
commit
87eae35e2f
59 changed files with 1024 additions and 112 deletions
  1. 3 0
      .gitattributes
  2. 11 1
      Makefile
  3. 1 1
      compiler/systems/t_amiga.pas
  4. 25 1
      installer/Makefile
  5. 4 1
      packages/Makefile
  6. 7 1
      rtl/Makefile
  7. 16 1
      rtl/aix/Makefile
  8. 8 0
      rtl/amicommon/athreads.pp
  9. 8 0
      rtl/amicommon/dos.pp
  10. 8 3
      rtl/amicommon/paramhandling.inc
  11. 6 0
      rtl/amicommon/sysfile.inc
  12. 7 0
      rtl/amicommon/sysos.inc
  13. 8 0
      rtl/amicommon/sysutils.pp
  14. 19 1
      rtl/amiga/Makefile
  15. 72 27
      rtl/amiga/m68k/legacydos.inc
  16. 50 0
      rtl/amiga/m68k/legacydosh.inc
  17. 60 14
      rtl/amiga/m68k/legacyexec.inc
  18. 33 0
      rtl/amiga/m68k/legacyexech.inc
  19. 2 2
      rtl/amiga/m68k/legacyutil.inc
  20. 21 0
      rtl/amiga/m68k/legacyutilh.inc
  21. 17 0
      rtl/amiga/m68k/si_prc.pp
  22. 27 7
      rtl/amiga/system.pp
  23. 25 1
      rtl/android/Makefile
  24. 10 1
      rtl/android/jvm/Makefile
  25. 19 1
      rtl/aros/Makefile
  26. 19 1
      rtl/atari/Makefile
  27. 22 1
      rtl/beos/Makefile
  28. 16 1
      rtl/darwin/Makefile
  29. 19 1
      rtl/dragonfly/Makefile
  30. 13 13
      rtl/embedded/Makefile
  31. 19 1
      rtl/emx/Makefile
  32. 19 1
      rtl/freebsd/Makefile
  33. 16 1
      rtl/gba/Makefile
  34. 19 1
      rtl/go32v2/Makefile
  35. 22 1
      rtl/haiku/Makefile
  36. 10 1
      rtl/java/Makefile
  37. 29 1
      rtl/linux/Makefile
  38. 7 4
      rtl/linux/Makefile.fpc
  39. 1 1
      rtl/linux/linux.pp
  40. 16 1
      rtl/macos/Makefile
  41. 16 1
      rtl/morphos/Makefile
  42. 16 1
      rtl/msdos/Makefile
  43. 16 1
      rtl/nativent/Makefile
  44. 16 1
      rtl/nds/Makefile
  45. 19 1
      rtl/netbsd/Makefile
  46. 19 1
      rtl/netware/Makefile
  47. 19 1
      rtl/netwlibc/Makefile
  48. 19 1
      rtl/openbsd/Makefile
  49. 19 1
      rtl/os2/Makefile
  50. 16 1
      rtl/palmos/Makefile
  51. 16 1
      rtl/solaris/Makefile
  52. 13 1
      rtl/symbian/Makefile
  53. 19 1
      rtl/watcom/Makefile
  54. 13 1
      rtl/wii/Makefile
  55. 13 1
      rtl/win16/Makefile
  56. 19 1
      rtl/win32/Makefile
  57. 19 1
      rtl/win64/Makefile
  58. 13 1
      rtl/wince/Makefile
  59. 10 1
      utils/Makefile

+ 3 - 0
.gitattributes

@@ -10103,8 +10103,11 @@ rtl/amiga/m68k/doslibf.inc svneol=native#text/plain
 rtl/amiga/m68k/execd.inc svneol=native#text/plain
 rtl/amiga/m68k/execd.inc svneol=native#text/plain
 rtl/amiga/m68k/execf.inc svneol=native#text/plain
 rtl/amiga/m68k/execf.inc svneol=native#text/plain
 rtl/amiga/m68k/legacydos.inc svneol=native#text/plain
 rtl/amiga/m68k/legacydos.inc svneol=native#text/plain
+rtl/amiga/m68k/legacydosh.inc svneol=native#text/plain
 rtl/amiga/m68k/legacyexec.inc svneol=native#text/plain
 rtl/amiga/m68k/legacyexec.inc svneol=native#text/plain
+rtl/amiga/m68k/legacyexech.inc svneol=native#text/plain
 rtl/amiga/m68k/legacyutil.inc svneol=native#text/plain
 rtl/amiga/m68k/legacyutil.inc svneol=native#text/plain
+rtl/amiga/m68k/legacyutilh.inc svneol=native#text/plain
 rtl/amiga/m68k/m68kamiga.inc svneol=native#text/plain
 rtl/amiga/m68k/m68kamiga.inc svneol=native#text/plain
 rtl/amiga/m68k/prt0.as svneol=native#text/plain
 rtl/amiga/m68k/prt0.as svneol=native#text/plain
 rtl/amiga/m68k/si_prc.pp svneol=native#text/plain
 rtl/amiga/m68k/si_prc.pp svneol=native#text/plain

+ 11 - 1
Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: help
 default: help
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -766,6 +766,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_DIRS+=compiler rtl utils packages installer
 override TARGET_DIRS+=compiler rtl utils packages installer
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_DIRS+=compiler rtl utils packages installer
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_DIRS+=compiler rtl utils packages installer
 override TARGET_DIRS+=compiler rtl utils packages installer
 endif
 endif
@@ -2604,6 +2607,13 @@ TARGET_DIRS_UTILS=1
 TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_INSTALLER=1
 TARGET_DIRS_INSTALLER=1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_INSTALLER=1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 TARGET_DIRS_COMPILER=1
 TARGET_DIRS_COMPILER=1
 TARGET_DIRS_RTL=1
 TARGET_DIRS_RTL=1

+ 1 - 1
compiler/systems/t_amiga.pas

@@ -361,7 +361,7 @@ begin
   if UseVLink then
   if UseVLink then
     begin
     begin
       if create_smartlink_sections then
       if create_smartlink_sections then
-        GCSectionsStr:='-gc-all -sc -sd';
+        GCSectionsStr:='-gc-all -mtype';
     end;
     end;
 
 
   { Call linker }
   { Call linker }

+ 25 - 1
installer/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -388,6 +388,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-linux)
 ifeq ($(FULL_TARGET),riscv64-linux)
 override TARGET_PROGRAMS+=installer writeidx
 override TARGET_PROGRAMS+=installer writeidx
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_PROGRAMS+=installer writeidx
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override CLEAN_UNITS+=scroll insthelp
 override CLEAN_UNITS+=scroll insthelp
 endif
 endif
@@ -664,6 +667,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override CLEAN_UNITS+=scroll insthelp
 override CLEAN_UNITS+=scroll insthelp
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override CLEAN_UNITS+=scroll insthelp
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override CLEAN_UNITS+=scroll insthelp
 override CLEAN_UNITS+=scroll insthelp
 endif
 endif
@@ -718,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-linux)
 ifeq ($(FULL_TARGET),riscv64-linux)
 override CLEAN_FILES+=installer.pas
 override CLEAN_FILES+=installer.pas
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override CLEAN_FILES+=installer.pas
+endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -2767,6 +2776,21 @@ REQUIRE_PACKAGES_CHM=1
 REQUIRE_PACKAGES_REGEXPR=1
 REQUIRE_PACKAGES_REGEXPR=1
 REQUIRE_PACKAGES_IDE=1
 REQUIRE_PACKAGES_IDE=1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_IDE=1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 4 - 1
packages/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -1307,6 +1307,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 endif
 endif

+ 7 - 1
rtl/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -604,6 +604,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_DIRS+=linux
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
@@ -2069,6 +2072,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+TARGET_DIRS_LINUX=1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif

+ 16 - 1
rtl/aix/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -633,6 +633,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math sortbase fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
 endif
 endif
@@ -915,6 +918,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1197,6 +1203,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
 endif
@@ -1480,6 +1489,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
 endif
@@ -1762,6 +1774,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
 endif

+ 8 - 0
rtl/amicommon/athreads.pp

@@ -38,6 +38,14 @@ uses
 {$include timerd.inc}
 {$include timerd.inc}
 {$include doslibd.inc}
 {$include doslibd.inc}
 {$include doslibf.inc}
 {$include doslibf.inc}
+
+{$ifdef cpum68k}
+{$if defined(amiga_v1_0_only) or defined(amiga_v1_2_only)}
+{$include legacyexech.inc}
+{$include legacydosh.inc}
+{$endif}
+{$endif}
+
 {$ENDIF}
 {$ENDIF}
 
 
 const
 const

+ 8 - 0
rtl/amicommon/dos.pp

@@ -76,6 +76,14 @@ implementation
 {$include doslibf.inc}
 {$include doslibf.inc}
 {$include utilf.inc}
 {$include utilf.inc}
 
 
+{$ifdef cpum68k}
+{$if defined(amiga_v1_0_only) or defined(amiga_v1_2_only)}
+{$include legacyexech.inc}
+{$include legacydosh.inc}
+{$include legacyutilh.inc}
+{$endif}
+{$endif}
+
 {$packrecords default}
 {$packrecords default}
 
 
 const
 const

+ 8 - 3
rtl/amicommon/paramhandling.inc

@@ -240,10 +240,15 @@ begin
     if l = 0 then
     if l = 0 then
     begin
     begin
       s1 := GetProgDir;
       s1 := GetProgDir;
-      if s1[Length(s1)] = ':' then
-        paramstr := s1 + GetProgramName
+      if length(s1) > 0 then
+      begin
+        if s1[Length(s1)] = ':' then
+          paramstr := s1 + GetProgramName
+        else
+          paramstr:=s1+'/'+GetProgramName;
+      end
       else
       else
-        paramstr:=s1+'/'+GetProgramName;
+        paramstr:=GetProgramName;
     end
     end
     else
     else
     begin
     begin

+ 6 - 0
rtl/amicommon/sysfile.inc

@@ -287,7 +287,9 @@ begin
   end;
   end;
 end;
 end;
 
 
+{$IFNDEF AMIGA_LEGACY}
 {$DEFINE ASYS_FILESIZE_USE_EXAMINEFH}
 {$DEFINE ASYS_FILESIZE_USE_EXAMINEFH}
+{$ENDIF}
 { I changed the double-Seek filesize method which we
 { I changed the double-Seek filesize method which we
   were using for 10+ years to the new ExamineFH() method.
   were using for 10+ years to the new ExamineFH() method.
   It should be available AmigaOS 2.0+, and much faster.
   It should be available AmigaOS 2.0+, and much faster.
@@ -335,12 +337,16 @@ end;
 procedure do_truncate(handle: THandle; pos: longint);
 procedure do_truncate(handle: THandle; pos: longint);
 begin
 begin
   checkCTRLC;
   checkCTRLC;
+{$IFNDEF AMIGA_LEGACY}
   if CheckInList(ASYS_fileList,handle)<>nil then begin
   if CheckInList(ASYS_fileList,handle)<>nil then begin
 
 
     { Seeking from OFFSET_BEGINNING }
     { Seeking from OFFSET_BEGINNING }
     if SetFileSize(handle,pos,OFFSET_BEGINNING)<0 then
     if SetFileSize(handle,pos,OFFSET_BEGINNING)<0 then
       dosError2InOut(IoErr);
       dosError2InOut(IoErr);
   end;
   end;
+{$ELSE}
+  dosError2InOut(ERROR_NOT_IMPLEMENTED);
+{$ENDIF}
 end;
 end;
 
 
 procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
 procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);

+ 7 - 0
rtl/amicommon/sysos.inc

@@ -31,6 +31,13 @@
 {$include execf.inc}
 {$include execf.inc}
 {$include doslibf.inc}
 {$include doslibf.inc}
 
 
+{$ifdef cpum68k}
+{$if defined(amiga_v1_0_only) or defined(amiga_v1_2_only)}
+{$include legacyexec.inc}
+{$include legacydos.inc}
+{$include legacyutil.inc}
+{$endif}
+{$endif}
 
 
 {*****************************************************************************
 {*****************************************************************************
                              CPU specific
                              CPU specific

+ 8 - 0
rtl/amicommon/sysutils.pp

@@ -77,6 +77,14 @@ uses
 {$include doslibf.inc}
 {$include doslibf.inc}
 {$include utilf.inc}
 {$include utilf.inc}
 
 
+{$ifdef cpum68k}
+{$if defined(amiga_v1_0_only) or defined(amiga_v1_2_only)}
+{$include legacyexech.inc}
+{$include legacydosh.inc}
+{$include legacyutilh.inc}
+{$endif}
+{$endif}
+
 { * Followings are implemented in the system unit! * }
 { * Followings are implemented in the system unit! * }
 function PathConv(path: shortstring): shortstring; external name 'PATHCONV';
 function PathConv(path: shortstring): shortstring; external name 'PATHCONV';
 function PathConv(path: RawByteString): RawByteString; external name 'PATHCONVRBS';
 function PathConv(path: RawByteString): RawByteString; external name 'PATHCONVRBS';

+ 19 - 1
rtl/amiga/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -632,6 +632,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
@@ -914,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1196,6 +1202,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1478,6 +1487,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
@@ -1761,6 +1773,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
 endif
 endif
@@ -2043,6 +2058,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 endif
 endif

+ 72 - 27
rtl/amiga/m68k/legacydos.inc

@@ -23,7 +23,7 @@
 }
 }
 
 
 
 
-function CreateNewProc(tags: PTagItem): PProcess;
+function CreateNewProc(tags: PTagItem): PProcess; public name '_fpc_amiga_createproc';
 begin
 begin
 {$warning CreateNewProc unimplemented!}
 {$warning CreateNewProc unimplemented!}
   CreateNewProc:=nil;
   CreateNewProc:=nil;
@@ -31,7 +31,7 @@ end;
 
 
 function NameFromLock(lock  : LongInt;
 function NameFromLock(lock  : LongInt;
                       buffer: PChar;
                       buffer: PChar;
-                      len   : LongInt): LongBool;
+                      len   : LongInt): LongBool; public name '_fpc_amiga_namefromlock';
 var
 var
   fib_area: array[1..sizeof(TFileInfoBlock) + sizeof(longint)] of byte;
   fib_area: array[1..sizeof(TFileInfoBlock) + sizeof(longint)] of byte;
   fib: pfileinfoblock;
   fib: pfileinfoblock;
@@ -82,57 +82,57 @@ end;
 
 
 function NameFromFH(fh    : BPTR;
 function NameFromFH(fh    : BPTR;
                     buffer: PChar;
                     buffer: PChar;
-                    len   : LongInt): LongBool;
+                    len   : LongInt): LongBool; public name '_fpc_amiga_namefromfh';
 begin
 begin
 {$warning NameFromFH unimplemented!}
 {$warning NameFromFH unimplemented!}
   NameFromFH:=false;
   NameFromFH:=false;
 end;
 end;
 
 
 function ExamineFH(fh : BPTR;
 function ExamineFH(fh : BPTR;
-                   fib: PFileInfoBlock): LongBool;
+                   fib: PFileInfoBlock): LongBool; public name '_fpc_amiga_examinefh';
 begin
 begin
 {$warning ExamineFH unimplemented!}
 {$warning ExamineFH unimplemented!}
   ExamineFH:=false;
   ExamineFH:=false;
 end;
 end;
 
 
-function LockDosList(flags: Cardinal): PDosList;
+function LockDosList(flags: Cardinal): PDosList; public name '_fpc_amiga_lockdoslist';
 begin
 begin
 {$warning LockDosList unimplemented!}
 {$warning LockDosList unimplemented!}
   LockDosList:=nil;
   LockDosList:=nil;
 end;
 end;
 
 
-procedure UnLockDosList(flags: Cardinal);
+procedure UnLockDosList(flags: Cardinal); public name '_fpc_amiga_unlockdoslist';
 begin
 begin
 {$warning UnlockDosList unimplemented!}
 {$warning UnlockDosList unimplemented!}
 end;
 end;
 
 
 function NextDosEntry(dlist: PDosList;
 function NextDosEntry(dlist: PDosList;
-                      flags: Cardinal): PDosList;
+                      flags: Cardinal): PDosList; public name '_fpc_amiga_nextdosentry';
 begin
 begin
 {$warning NextDosEntry unimplemented!}
 {$warning NextDosEntry unimplemented!}
   NextDosEntry:=nil;
   NextDosEntry:=nil;
 end;
 end;
 
 
 function MatchFirst(pat   : PChar;
 function MatchFirst(pat   : PChar;
-                    anchor: PAnchorPath): LongInt;
+                    anchor: PAnchorPath): LongInt; public name '_fpc_amiga_matchfirst';
 begin
 begin
 {$warning MatchFirst unimplemented!}
 {$warning MatchFirst unimplemented!}
   MatchFirst:=-1;
   MatchFirst:=-1;
 end;
 end;
 
 
-function MatchNext(anchor: PAnchorPath): LongInt;
+function MatchNext(anchor: PAnchorPath): LongInt; public name '_fpc_amiga_matchnext';
 begin
 begin
 {$warning MatchNext unimplemented!}
 {$warning MatchNext unimplemented!}
   MatchNext:=-1;
   MatchNext:=-1;
 end;
 end;
 
 
-procedure MatchEnd(anchor: PAnchorPath);
+procedure MatchEnd(anchor: PAnchorPath); public name '_fpc_amiga_matchend';
 begin
 begin
 {$warning MatchEnd unimplemented!}
 {$warning MatchEnd unimplemented!}
 end;
 end;
 
 
 function SystemTagList(command: PChar;
 function SystemTagList(command: PChar;
-                       tags   : PTagItem): LongInt;
+                       tags   : PTagItem): LongInt; public name '_fpc_amiga_systemtaglist';
 begin
 begin
 {$warning SystemTagList unimplemented!}
 {$warning SystemTagList unimplemented!}
   SystemTagList:=-1;
   SystemTagList:=-1;
@@ -141,14 +141,14 @@ end;
 function GetVar(name  : PChar;
 function GetVar(name  : PChar;
                 buffer: PChar;
                 buffer: PChar;
                 size  : LongInt;
                 size  : LongInt;
-                flags : LongInt): LongInt;
+                flags : LongInt): LongInt; public name '_fpc_amiga_getvar';
 begin
 begin
 {$warning GetVar unimplemented!}
 {$warning GetVar unimplemented!}
   GetVar:=-1;
   GetVar:=-1;
 end;
 end;
 
 
 function SetFileDate(name: PChar;
 function SetFileDate(name: PChar;
-                     date: PDateStamp): LongBool;
+                     date: PDateStamp): LongBool; public name '_fpc_amiga_setfiledate';
 begin
 begin
 {$warning SetFileDate unimplemented!}
 {$warning SetFileDate unimplemented!}
   SetFileDate:=false;
   SetFileDate:=false;
@@ -156,32 +156,77 @@ end;
 
 
 function SetFileSize(fh  : LongInt;
 function SetFileSize(fh  : LongInt;
                      pos : LongInt;
                      pos : LongInt;
-                     mode: LongInt): LongInt;
+                     mode: LongInt): LongInt; public name '_fpc_amiga_setfilesize';
 begin
 begin
 {$warning SetFileSize unimplemented!}
 {$warning SetFileSize unimplemented!}
   SetFileSize:=-1;
   SetFileSize:=-1;
 end;
 end;
 
 
-
-function GetProgramDir: LongInt;
-begin
-{$warning GetProgramDir unimplemented!}
-  GetProgramDir:=0;
-end;
-
-
 function GetProgramName(buf: PChar;
 function GetProgramName(buf: PChar;
-                        len: LongInt): LongBool;
+                        len: LongInt): LongBool; public name '_fpc_amiga_getprogramname';
+var
+  pr: PProcess;
+  pn: PChar;
+  pl: longint;
+  pcli: PCommandLineInterface;
 begin
 begin
-{$warning GetProgramName unimplemented!}
   GetProgramName:=false;
   GetProgramName:=false;
+  pl:=0;
+
+  if len > 0 then
+    begin
+      pr:=PProcess(FindTask(nil));
+      pcli:=PCommandLineInterface(pr^.pr_CLI shl 2);
+      if (pcli <> nil) and (pcli^.cli_CommandName <> 0) then
+        begin
+          pn:=PChar(pcli^.cli_CommandName shl 2) + 1;
+          pl:=Byte(pn[-1]);
+          if pl > len-1 then 
+            pl:=len-1;
+          move(pn[0],buf[0],pl);
+          GetProgramName:=true;
+        end;
+      buf[pl]:=#0;
+    end;
 end;
 end;
 
 
+function GetProgramDir: LongInt; public name '_fpc_amiga_getprogramdir';
+var
+  cmd: array[0..255] of char;
+  prglock: LongInt;
+begin
+  { this is quite minimalistic and only covers the simplest cases }
+  if GetProgramName(cmd,length(cmd)) then
+    begin
+      prglock:=Lock(cmd,SHARED_LOCK);
+      GetProgramDir:=ParentDir(prglock);
+      Unlock(prglock);
+    end
+  else
+    GetProgramDir:=0;
+end;
 
 
 var
 var
   __fpc_global_args: pchar; external name '__fpc_args';
   __fpc_global_args: pchar; external name '__fpc_args';
+  __fpc_global_arglen: dword; external name '__fpc_arglen';
+  __fpc_args_buffer: pchar;
 
 
-function GetArgStr: PChar;
-begin
-  GetArgStr:=__fpc_global_args;
+function GetArgStr: PChar; public name '_fpc_amiga_getargstr';
+var
+  len: dword;
+begin
+  { the string we get from pre-v2.0 OS is not empty
+    or zero terminated on start, so we need to copy it
+    to an alternate buffer, and zero terminate according
+    to the length. This allocation will be freed on exit
+    by the memory pool. }
+  if __fpc_args_buffer = nil then
+    begin
+      len:=__fpc_global_arglen-1;
+      __fpc_args_buffer:=SysAllocMem(len+1);
+      if len > 0 then
+        move(__fpc_global_args^,__fpc_args_buffer^,len);
+      __fpc_args_buffer[len]:=#0;
+    end;
+  GetArgStr:=__fpc_args_buffer;
 end;
 end;

+ 50 - 0
rtl/amiga/m68k/legacydosh.inc

@@ -0,0 +1,50 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2020 Karoly Balogh, Free Pascal Development team
+
+    Headers for Amiga legacy (OS 1.x/2.x) support functions
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+{* dos.library *}
+
+function CreateNewProc(tags: PTagItem): PProcess; external name '_fpc_amiga_createproc';
+function NameFromLock(lock  : LongInt;
+                      buffer: PChar;
+                      len   : LongInt): LongBool; external name '_fpc_amiga_namefromlock';
+function NameFromFH(fh    : BPTR;
+                    buffer: PChar;
+                    len   : LongInt): LongBool; external name '_fpc_amiga_namefromfh';
+function ExamineFH(fh : BPTR;
+                   fib: PFileInfoBlock): LongBool; external name '_fpc_amiga_examinefh';
+function LockDosList(flags: Cardinal): PDosList; external name '_fpc_amiga_lockdoslist';
+procedure UnLockDosList(flags: Cardinal); external name '_fpc_amiga_unlockdoslist';
+function NextDosEntry(dlist: PDosList;
+                      flags: Cardinal): PDosList; external name '_fpc_amiga_nextdosentry';
+function MatchFirst(pat   : PChar;
+                    anchor: PAnchorPath): LongInt; external name '_fpc_amiga_matchfirst';
+function MatchNext(anchor: PAnchorPath): LongInt; external name '_fpc_amiga_matchnext';
+procedure MatchEnd(anchor: PAnchorPath); external name '_fpc_amiga_matchend';
+function SystemTagList(command: PChar;
+                       tags   : PTagItem): LongInt; external name '_fpc_amiga_systemtaglist';
+function GetVar(name  : PChar;
+                buffer: PChar;
+                size  : LongInt;
+                flags : LongInt): LongInt; external name '_fpc_amiga_getvar';
+function SetFileDate(name: PChar;
+                     date: PDateStamp): LongBool; external name '_fpc_amiga_setfiledate';
+function SetFileSize(fh  : LongInt;
+                     pos : LongInt;
+                     mode: LongInt): LongInt; external name '_fpc_amiga_setfilesize';
+function GetProgramName(buf: PChar;
+                        len: LongInt): LongBool; external name '_fpc_amiga_getprogramname';
+function GetProgramDir: LongInt; external name '_fpc_amiga_getprogramdir';
+function GetArgStr: PChar; external name '_fpc_amiga_getargstr';

+ 60 - 14
rtl/amiga/m68k/legacyexec.inc

@@ -24,7 +24,7 @@
 
 
 
 
 function AllocVec(byteSize    : Cardinal;
 function AllocVec(byteSize    : Cardinal;
-                  requirements: Cardinal): Pointer;
+                  requirements: Cardinal): Pointer; public name '_fpc_amiga_allocvec';
 var
 var
   p: pointer;
   p: pointer;
 begin
 begin
@@ -37,7 +37,7 @@ begin
   AllocVec:=p;
   AllocVec:=p;
 end;
 end;
 
 
-procedure FreeVec(memoryBlock: Pointer);
+procedure FreeVec(memoryBlock: Pointer); public name '_fpc_amiga_freevec';
 begin
 begin
   if memoryBlock <> nil then
   if memoryBlock <> nil then
     begin
     begin
@@ -62,7 +62,7 @@ type
 
 
 function CreatePool(requirements: Cardinal;
 function CreatePool(requirements: Cardinal;
                     puddleSize  : Cardinal;
                     puddleSize  : Cardinal;
-                    threshSize  : Cardinal): Pointer;
+                    threshSize  : Cardinal): Pointer; public name '_fpc_amiga_createpool';
 var
 var
   p: PAmigaLegacyPool;
   p: PAmigaLegacyPool;
 begin
 begin
@@ -75,14 +75,8 @@ begin
   CreatePool:=p;
   CreatePool:=p;
 end;
 end;
 
 
-procedure DeletePool(poolHeader: Pointer);
-begin
-  
-{$warning DeletePool unimplemented!}
-end;
-
 function AllocPooled(poolHeader: Pointer;
 function AllocPooled(poolHeader: Pointer;
-                     memSize   : Cardinal): Pointer;
+                     memSize   : Cardinal): Pointer; public name '_fpc_amiga_allocpooled';
 var
 var
   p: PAmigaLegacyPoolEntry;
   p: PAmigaLegacyPoolEntry;
   ph: PAmigaLegacyPool absolute poolHeader;
   ph: PAmigaLegacyPool absolute poolHeader;
@@ -103,7 +97,7 @@ end;
 
 
 procedure FreePooled(poolHeader: Pointer;
 procedure FreePooled(poolHeader: Pointer;
                     memory    : Pointer;
                     memory    : Pointer;
-                    memSize   : Cardinal);
+                    memSize   : Cardinal); public name '_fpc_amiga_freepooled';
 var
 var
   p: PAmigaLegacyPoolEntry;
   p: PAmigaLegacyPoolEntry;
   ph: PAmigaLegacyPool absolute poolHeader;
   ph: PAmigaLegacyPool absolute poolHeader;
@@ -121,12 +115,64 @@ begin
     end;
     end;
 end;
 end;
 
 
-procedure StackSwap(newStack: PStackSwapStruct);
+procedure DeletePool(poolHeader: Pointer); public name '_fpc_amiga_deletepool';
+var
+  p: PAmigaLegacyPool absolute poolHeader;
+  pe: PAmigaLegacyPoolEntry;
 begin
 begin
-{$warning StackSwap unimplemented!}
+  if p <> nil then
+    begin
+      while p^.pool_chain <> nil do
+        begin
+          pe:=p^.pool_chain;
+          FreePooled(poolHeader, pointer(pe) + sizeof(TAmigaLegacyPoolEntry), pe^.pe_size);
+        end;
+      execFreeMem(p,sizeof(TAmigaLegacyPool));
+    end;
+end;
+
+procedure StackSwap(newStack: PStackSwapStruct); assembler; nostackframe; public name '_fpc_amiga_stackswap';
+asm
+    move.l   a6,-(sp)
+    move.l   newStack,-(sp)
+
+    move.l   AOS_ExecBase,a6
+    sub.l    a1,a1
+    jsr      -294(a6)    // FindTask()
+    move.l   d0,-(sp)
+
+    move.l   AOS_ExecBase,a6
+    jsr      -120(a6)    // Disable()
+
+    move.l   (sp)+,a1    // task
+    move.l   (sp)+,a0    // newStack
+
+    move.l   58(a1),d0   // task^.tc_SPLower
+    move.l   (a0),58(a1)
+    move.l   d0,(a0)+
+
+    move.l   62(a1),d0   // task^.tc_SPUpper
+    move.l   (a0),62(a1)
+    move.l   d0,(a0)+
+
+    move.l   (sp)+,a6
+    move.l   (sp)+,d0     // return address
+
+    move.l   (a0),d1
+    move.l   sp,(a0)
+    move.l   d1,sp
+
+    move.l   d0,-(sp)
+    move.l   a6,-(sp)
+
+    move.l   AOS_ExecBase,a6
+    jsr      -126(a6)    // Enable()
+
+    move.l   (sp)+,a6
+    rts
 end;
 end;
 
 
-procedure ObtainSemaphoreShared(sigSem: PSignalSemaphore);
+procedure ObtainSemaphoreShared(sigSem: PSignalSemaphore); public name '_fpc_amiga_obtainsemaphoreshared';
 begin
 begin
   { NOTE: this still needs v33+ (OS v1.2 or later) }
   { NOTE: this still needs v33+ (OS v1.2 or later) }
   { ObtainSemaphoreShared is used by athreads, and simply replacing
   { ObtainSemaphoreShared is used by athreads, and simply replacing

+ 33 - 0
rtl/amiga/m68k/legacyexech.inc

@@ -0,0 +1,33 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2020 Karoly Balogh, Free Pascal Development team
+
+    Headers for Amiga legacy (OS 1.x/2.x) support functions
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+{* exec.library *}
+
+function AllocVec(byteSize    : Cardinal;
+                  requirements: Cardinal): Pointer; external name '_fpc_amiga_allocvec';
+procedure FreeVec(memoryBlock: Pointer); external name '_fpc_amiga_freevec';
+function CreatePool(requirements: Cardinal;
+                    puddleSize  : Cardinal;
+                    threshSize  : Cardinal): Pointer; external name '_fpc_amiga_createpool';
+function AllocPooled(poolHeader: Pointer;
+                     memSize   : Cardinal): Pointer; external name '_fpc_amiga_allocpooled';
+procedure FreePooled(poolHeader: Pointer;
+                    memory    : Pointer;
+                    memSize   : Cardinal); external name '_fpc_amiga_freepooled';
+procedure DeletePool(poolHeader: Pointer); external name '_fpc_amiga_deletepool';
+
+procedure StackSwap(newStack: PStackSwapStruct); external name '_fpc_amiga_stackswap';
+procedure ObtainSemaphoreShared(sigSem: PSignalSemaphore); external name '_fpc_amiga_obtainsemaphoreshared';

+ 2 - 2
rtl/amiga/m68k/legacyutil.inc

@@ -23,12 +23,12 @@
 }
 }
 
 
 procedure Amiga2Date(seconds: Cardinal;
 procedure Amiga2Date(seconds: Cardinal;
-                     result : PClockData);
+                     result : PClockData); public name '_fpc_amiga_amiga2date';
 begin
 begin
 {$warning Amiga2Date unimplemented!}
 {$warning Amiga2Date unimplemented!}
 end;
 end;
 
 
-function Date2Amiga(date: PClockData): Cardinal;
+function Date2Amiga(date: PClockData): Cardinal; public name '_fpc_amiga_date2amiga';
 begin
 begin
 {$warning Date2Amiga unimplemented!}
 {$warning Date2Amiga unimplemented!}
   Date2Amiga:=0;
   Date2Amiga:=0;

+ 21 - 0
rtl/amiga/m68k/legacyutilh.inc

@@ -0,0 +1,21 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2020 Karoly Balogh, Free Pascal Development team
+
+    Headers for Amiga legacy (OS 1.x/2.x) support functions
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+
+{* utility.library *}
+
+procedure Amiga2Date(seconds: Cardinal;
+                     result : PClockData); external name '_fpc_amiga_amiga2date';
+function Date2Amiga(date: PClockData): Cardinal; external name '_fpc_amiga_date2amiga';

+ 17 - 0
rtl/amiga/m68k/si_prc.pp

@@ -30,6 +30,17 @@ var
 {$include execd.inc}
 {$include execd.inc}
 {$include execf.inc}
 {$include execf.inc}
 
 
+{$if defined(AMIGA_V1_0_ONLY) or defined(AMIGA_V1_2_ONLY)}
+{$define AMIGA_LEGACY}
+{$include legacyexech.inc}
+{$endif}
+
+{$ifdef AMIGA_LEGACY}
+var
+  args: pointer; public name '__fpc_args';
+  arglen: dword; public name '__fpc_arglen';
+{$endif}
+
 var
 var
   sst: TStackSwapStruct;
   sst: TStackSwapStruct;
 
 
@@ -42,6 +53,12 @@ var
   newStack: Pointer;
   newStack: Pointer;
   task: PTask;
   task: PTask;
 begin
 begin
+{$IFDEF AMIGA_LEGACY}
+  asm
+    move.l d0, arglen
+    move.l a0, args
+  end;
+{$ENDIF}
   AOS_ExecBase:=realExecBase;
   AOS_ExecBase:=realExecBase;
   newStack:=nil;
   newStack:=nil;
 
 

+ 27 - 7
rtl/amiga/system.pp

@@ -21,9 +21,15 @@ unit System;
 interface
 interface
 
 
 {$define FPC_IS_SYSTEM}
 {$define FPC_IS_SYSTEM}
-{$define FPC_HAS_ANSI_TEXTFILEREC}
+{$define FPC_ANSI_TEXTFILEREC}
 
 
-{.$define FPC_AMIGA_USE_TINYHEAP}
+{$if defined(AMIGA_V1_0_ONLY) or defined(AMIGA_V1_2_ONLY)}
+{$define AMIGA_LEGACY}
+{$endif}
+
+{$ifdef AMIGA_LEGACY}
+{$.define FPC_AMIGA_USE_TINYHEAP}
+{$endif}
 
 
 {$ifdef FPC_AMIGA_USE_TINYHEAP}
 {$ifdef FPC_AMIGA_USE_TINYHEAP}
 {$define HAS_MEMORYMANAGER}
 {$define HAS_MEMORYMANAGER}
@@ -41,6 +47,17 @@ interface
 {$undef fpc_softfpu_interface}
 {$undef fpc_softfpu_interface}
 {$endif defined(cpum68k) and defined(fpusoft)}
 {$endif defined(cpum68k) and defined(fpusoft)}
 
 
+const
+{$if defined(AMIGA_V1_0_ONLY)}
+  OS_MINVERSION = 0;
+{$else}
+{$if defined(AMIGA_V1_2_ONLY)}
+  OS_MINVERSION = 33;
+{$else}
+  OS_MINVERSION = 37;
+{$endif}
+{$endif}
+
 const
 const
   LineEnding = #10;
   LineEnding = #10;
   LFNSupport = True;
   LFNSupport = True;
@@ -250,11 +267,13 @@ begin
     AOS_wbMsg:=GetMsg(@self^.pr_MsgPort);
     AOS_wbMsg:=GetMsg(@self^.pr_MsgPort);
   end;
   end;
 
 
-  AOS_DOSBase:=OpenLibrary('dos.library',37);
+  AOS_DOSBase:=OpenLibrary('dos.library',OS_MINVERSION);
   if AOS_DOSBase=nil then Halt(1);
   if AOS_DOSBase=nil then Halt(1);
-  AOS_UtilityBase:=OpenLibrary('utility.library',37);
+{$ifndef AMIGA_LEGACY}
+  AOS_UtilityBase:=OpenLibrary('utility.library',OS_MINVERSION);
   if AOS_UtilityBase=nil then Halt(1);
   if AOS_UtilityBase=nil then Halt(1);
-  AOS_IntuitionBase:=OpenLibrary('intuition.library',37); { amunits support kludge }
+{$endif}
+  AOS_IntuitionBase:=OpenLibrary('intuition.library',OS_MINVERSION); { amunits support kludge }
   if AOS_IntuitionBase=nil then Halt(1);
   if AOS_IntuitionBase=nil then Halt(1);
 
 
 {$IFDEF AMIGAOS4}
 {$IFDEF AMIGAOS4}
@@ -295,10 +314,11 @@ procedure SysInitStdIO;
 begin
 begin
   OpenStdIO(Input,fmInput,StdInputHandle);
   OpenStdIO(Input,fmInput,StdInputHandle);
   OpenStdIO(Output,fmOutput,StdOutputHandle);
   OpenStdIO(Output,fmOutput,StdOutputHandle);
+  OpenStdIO(ErrOutput,fmOutput,StdErrorHandle);
+{$ifndef FPC_STDOUT_TRUE_ALIAS}
   OpenStdIO(StdOut,fmOutput,StdOutputHandle);
   OpenStdIO(StdOut,fmOutput,StdOutputHandle);
-
   OpenStdIO(StdErr,fmOutput,StdErrorHandle);
   OpenStdIO(StdErr,fmOutput,StdErrorHandle);
-  OpenStdIO(ErrOutput,fmOutput,StdErrorHandle);
+{$endif FPC_STDOUT_TRUE_ALIAS}
 end;
 end;
 
 
 function GetProcessID: SizeUInt;
 function GetProcessID: SizeUInt;

+ 25 - 1
rtl/android/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -630,6 +630,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types  sysconst cthreads sortbase classes fgl  rtlconsts dos cwstring fpcylix unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types  sysconst cthreads sortbase classes fgl  rtlconsts dos cwstring fpcylix unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types  sysconst cthreads sortbase classes fgl  rtlconsts dos cwstring fpcylix unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types  sysconst cthreads sortbase classes fgl  rtlconsts dos cwstring fpcylix unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem linuxvcs sysutils typinfo math charset cpall character getopts errors dl dynlibs types  sysconst cthreads sortbase classes fgl  rtlconsts dos cwstring fpcylix unixcp fpwidestring
 endif
 endif
@@ -912,6 +915,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
@@ -1194,6 +1200,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1476,6 +1485,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math  typinfo  sysconst rtlconsts
 override TARGET_RSTS+=math  typinfo  sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math  typinfo  sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math  typinfo  sysconst rtlconsts
 override TARGET_RSTS+=math  typinfo  sysconst rtlconsts
 endif
 endif
@@ -1758,6 +1770,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override CLEAN_UNITS+=syslinux linux
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 endif
 endif
@@ -2041,6 +2056,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 endif
 endif
@@ -2323,6 +2341,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
 endif
 endif
@@ -2605,6 +2626,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif

+ 10 - 1
rtl/android/jvm/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -619,6 +619,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
 endif
 endif
@@ -902,6 +905,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1184,6 +1190,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif

+ 19 - 1
rtl/aros/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -625,6 +625,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
@@ -907,6 +910,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo $(LINEINFOUNIT) cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1189,6 +1195,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1471,6 +1480,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
@@ -1755,6 +1767,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) i386
 endif
 endif
@@ -2037,6 +2052,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/atari/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -620,6 +620,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
 endif
 endif
@@ -902,6 +905,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=si_prc sysutils dos ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1184,6 +1190,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1466,6 +1475,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
@@ -1749,6 +1761,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
 endif
@@ -2031,6 +2046,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
 endif

+ 22 - 1
rtl/beos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -620,6 +620,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
 override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
 override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl cthreads sysconst sysutils types charset cpall typinfo sortbase classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc character fpwidestring unicodedata unicodenumtable cmem dynlibs cwstring unixcp
 endif
 endif
@@ -902,6 +905,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1184,6 +1190,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
 endif
@@ -1466,6 +1475,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
@@ -1749,6 +1761,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
 endif
@@ -2031,6 +2046,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
 endif
@@ -2313,6 +2331,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif

+ 16 - 1
rtl/darwin/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -637,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
 override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
 override TARGET_UNITS+=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo sortbase fgl classes math types charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb errors termio sysconst cthreads rtlconsts cwstring bsd fpwidestring fpintres fpextres objc objcbase unixcp
 endif
 endif
@@ -919,6 +922,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1201,6 +1207,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 endif
 endif
@@ -1484,6 +1493,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
@@ -1766,6 +1778,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/dragonfly/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -632,6 +632,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
@@ -914,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1196,6 +1202,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 endif
@@ -1478,6 +1487,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1761,6 +1773,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
@@ -2043,6 +2058,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif

+ 13 - 13
rtl/embedded/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos z80-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -782,13 +782,13 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(FULL_TARGET),xtensa-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(FULL_TARGET),xtensa-freertos)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) dos ctypes charset cpall sysconst
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1067,13 +1067,13 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(FULL_TARGET),xtensa-linux)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(FULL_TARGET),xtensa-freertos)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
@@ -1353,13 +1353,13 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(FULL_TARGET),xtensa-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(FULL_TARGET),xtensa-freertos)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1638,13 +1638,13 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(FULL_TARGET),xtensa-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(FULL_TARGET),xtensa-freertos)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR

+ 19 - 1
rtl/emx/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -624,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls so32dll pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos unicodedata unicodenumtable character sortbase sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
 endif
 endif
@@ -906,6 +909,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1188,6 +1194,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 prt1
 override TARGET_LOADERS+=prt0 prt1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 prt1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 prt1
 override TARGET_LOADERS+=prt0 prt1
 endif
 endif
@@ -1470,6 +1479,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 endif
 endif
@@ -1753,6 +1765,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
 endif
@@ -2035,6 +2050,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
 endif

+ 19 - 1
rtl/freebsd/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -637,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem  dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console  sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
@@ -919,6 +922,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1201,6 +1207,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
 endif
@@ -1483,6 +1492,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1766,6 +1778,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
@@ -2048,6 +2063,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/gba/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1185,6 +1191,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1468,6 +1477,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1750,6 +1762,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/go32v2/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -625,6 +625,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sortbase sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall character fpwidestring unicodedata unicodenumtable types sysconst rtlconst
 endif
 endif
@@ -907,6 +910,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1189,6 +1195,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 exceptn fpu
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 exceptn fpu
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
 endif
@@ -1471,6 +1480,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1754,6 +1766,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2036,6 +2051,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 22 - 1
rtl/haiku/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -628,6 +628,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
 override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
 override TARGET_UNITS+=system $(SYSINITUNITS) uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings errors dos dl sysconst sysutils types charset cpall character typinfo sortbase classes fgl math cpu $(CPUUNITS) getopts heaptrc lineinfo lnfodwrf rtlconsts unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp fpwidestring
 endif
 endif
@@ -910,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1192,6 +1198,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1474,6 +1483,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
@@ -1757,6 +1769,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
 endif
@@ -2039,6 +2054,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
 endif
@@ -2321,6 +2339,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif

+ 10 - 1
rtl/java/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -623,6 +623,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
 endif
 endif
@@ -906,6 +909,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1188,6 +1194,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
 endif

+ 29 - 1
rtl/linux/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -379,6 +379,10 @@ endif
 ifeq ($(ARCH),sparc64)
 ifeq ($(ARCH),sparc64)
   override FPCOPT+=-Fisparcgen
   override FPCOPT+=-Fisparcgen
 endif
 endif
+ifeq ($(ARCH),xtensa)
+override LOADERS=
+SYSINIT_UNITS=si_prc si_dll si_c
+endif
 SYSTEMUNIT=system
 SYSTEMUNIT=system
 ifdef RELEASE
 ifdef RELEASE
 override FPCOPT+=-Ur
 override FPCOPT+=-Ur
@@ -660,6 +664,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 extpas syscall unixutil heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) linuxvcs sysutils typinfo math   charset cpall character unixcp getopts errors dl dynlibs types sysconst fpwidestring cthreads sortbase classes fgl rtlconsts dos cwstring fpcylix softfpu sfpux80 ufloatx80 sfpu128 ufloat128
 endif
 endif
@@ -942,6 +949,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1224,6 +1234,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1506,6 +1519,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 override TARGET_RSTS+=math typinfo sysconst rtlconsts
 endif
 endif
@@ -1788,6 +1804,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override CLEAN_UNITS+=syslinux linux
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 endif
 endif
@@ -2071,6 +2090,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
 endif
@@ -2353,6 +2375,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
 endif
@@ -2635,6 +2660,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_TARGETDIR+=.
 override COMPILER_TARGETDIR+=.
 endif
 endif

+ 7 - 4
rtl/linux/Makefile.fpc

@@ -109,7 +109,6 @@ ifeq ($(ARCH),mipsel)
 override FPCOPT+=-Ur
 override FPCOPT+=-Ur
 endif
 endif
 
 
-
 ifeq ($(ARCH),arm)
 ifeq ($(ARCH),arm)
 override LOADERS+=ucprt0
 override LOADERS+=ucprt0
 CPU_UNITS=cpu
 CPU_UNITS=cpu
@@ -123,6 +122,10 @@ ifeq ($(ARCH),sparc64)
   override FPCOPT+=-Fisparcgen
   override FPCOPT+=-Fisparcgen
 endif
 endif
 
 
+ifeq ($(ARCH),xtensa)
+override LOADERS=
+SYSINIT_UNITS=si_prc si_dll si_c
+endif
 
 
 SYSTEMUNIT=system
 SYSTEMUNIT=system
 
 
@@ -364,13 +367,13 @@ initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 
 
 unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
 unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
         $(COMPILER) $(UNIXINC)/unixcp.pp
         $(COMPILER) $(UNIXINC)/unixcp.pp
-		
+
 linux$(PPUEXT) :  linux.pp baseunix$(PPUEXT) unixtype$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 linux$(PPUEXT) :  linux.pp baseunix$(PPUEXT) unixtype$(PPUEXT) syscall$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) linux.pp
         $(COMPILER) linux.pp
-		
+
 linuxvcs$(PPUEXT) :  linuxvcs.pp baseunix$(PPUEXT) strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 linuxvcs$(PPUEXT) :  linuxvcs.pp baseunix$(PPUEXT) strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) linuxvcs.pp
         $(COMPILER) linuxvcs.pp
-		
+
 termio$(PPUEXT) : termio.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 termio$(PPUEXT) : termio.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) termio.pp
         $(COMPILER) termio.pp
 
 

+ 1 - 1
rtl/linux/linux.pp

@@ -607,7 +607,7 @@ end;
 function epoll_create(size: cint): cint;
 function epoll_create(size: cint): cint;
 begin
 begin
 {$if defined(generic_linux_syscalls)}
 {$if defined(generic_linux_syscalls)}
-  epoll_create := do_syscall(syscall_nr_epoll_create1,0)
+  epoll_create := do_syscall(syscall_nr_epoll_create1,0);
 {$else}
 {$else}
   epoll_create := do_syscall(syscall_nr_epoll_create,tsysparam(size));
   epoll_create := do_syscall(syscall_nr_epoll_create,tsysparam(size));
 {$endif}
 {$endif}

+ 16 - 1
rtl/macos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -624,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
 override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
 override TARGET_UNITS+=system uuchar strings objpas iso7185 heaptrc getopts macostp macutils unixutil dos extpas cmem charset cpall ctypes sysconst sortbase softfpu macpas classes fgl types
 endif
 endif
@@ -906,6 +909,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1188,6 +1194,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=sysconst
 override TARGET_RSTS+=sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=sysconst
 override TARGET_RSTS+=sysconst
 endif
 endif
@@ -1471,6 +1480,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1753,6 +1765,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/morphos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 override TARGET_UNITS+=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=$(SYSINITUNITS) athreads dos sysutils ctypes strings rtlconsts sysconst math types typinfo sortbase fgl classes charset character getopts fpwidestring fpintres exeinfo lineinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1185,6 +1191,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
 endif
 endif
@@ -1469,6 +1478,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
 endif
 endif
@@ -1751,6 +1763,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/msdos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -622,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports  charset cpall ctypes fpwidestring character unicodedata unicodenumtable
 override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports  charset cpall ctypes fpwidestring character unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports  charset cpall ctypes fpwidestring character unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports  charset cpall ctypes fpwidestring character unicodedata unicodenumtable
 override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lnfodwrf sysconst sysutils math macpas iso7185 extpas rtlconsts typinfo cpu types getopts sortbase fgl classes msmouse ports  charset cpall ctypes fpwidestring character unicodedata unicodenumtable
 endif
 endif
@@ -904,6 +907,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1186,6 +1192,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
 override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
 override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
 endif
 endif
@@ -1469,6 +1478,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1751,6 +1763,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/nativent/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -630,6 +630,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
 override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
 override TARGET_UNITS+=system uuchar objpas iso7185 extpas cpall buildrtl
 endif
 endif
@@ -912,6 +915,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings dos rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1194,6 +1200,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1477,6 +1486,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
 endif
@@ -1759,6 +1771,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/nds/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1185,6 +1191,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1468,6 +1477,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1750,6 +1762,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/netbsd/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -634,6 +634,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 extpas strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types sortbase classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
 endif
 endif
@@ -916,6 +919,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1198,6 +1204,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0 cprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 dllprt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0 cprt0 dllprt0
 override TARGET_LOADERS+=prt0 cprt0 dllprt0
 endif
 endif
@@ -1480,6 +1489,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1763,6 +1775,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
 endif
@@ -2045,6 +2060,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
 endif

+ 19 - 1
rtl/netware/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -628,6 +628,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs  aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs  aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs  aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs  aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall character fpwidestring unicodedata unicodenumtable rtlconsts math cmem dynlibs  aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
 endif
@@ -910,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1192,6 +1198,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=nwpre prelude
 override TARGET_LOADERS+=nwpre prelude
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=nwpre prelude
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=nwpre prelude
 override TARGET_LOADERS+=nwpre prelude
 endif
 endif
@@ -1474,6 +1483,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
 endif
 endif
@@ -1757,6 +1769,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2039,6 +2054,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/netwlibc/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf  heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf  heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf  heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf  heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings lineinfo lnfodwrf  heaptrc nwsnut libc dos sysconst initc sysutils types typinfo sortbase fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1185,6 +1191,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
 endif
@@ -1467,6 +1476,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
 override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
 endif
 endif
@@ -1750,6 +1762,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2032,6 +2047,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/openbsd/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -636,6 +636,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) initc uuchar objpas macpas iso7185 extpas strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd $(CPU_UNITS) dos rtlconsts sysutils sortbase fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp fpwidestring
 endif
 endif
@@ -918,6 +921,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
@@ -1200,6 +1206,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1482,6 +1491,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1765,6 +1777,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
 endif
@@ -2047,6 +2062,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
 endif

+ 19 - 1
rtl/os2/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -624,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 extpas strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils sortbase fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll fpwidestring character unicodedata unicodenumtable
 endif
 endif
@@ -906,6 +909,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1188,6 +1194,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
@@ -1470,6 +1479,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 override TARGET_RSTS+=math typinfo pmhelp classes sysconst
 endif
 endif
@@ -1753,6 +1765,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2035,6 +2050,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 16 - 1
rtl/palmos/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -620,6 +620,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
 override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
 override TARGET_UNITS+=$(SYSTEMUNIT) si_prc uuchar objpas iso7185 strings ctypes charset cpall sysconst systraps pilot
 endif
 endif
@@ -902,6 +905,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1184,6 +1190,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
@@ -1467,6 +1476,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
 endif
@@ -1749,6 +1761,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(OBJPAS)
 endif
 endif

+ 16 - 1
rtl/solaris/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -633,6 +633,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 extpas macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math sortbase fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
 endif
 endif
@@ -915,6 +918,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable
 endif
 endif
@@ -1197,6 +1203,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
 endif
@@ -1480,6 +1489,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
 endif
@@ -1762,6 +1774,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
 endif

+ 13 - 1
rtl/symbian/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -618,6 +618,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata unicodenumtable dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 endif
@@ -900,6 +903,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
 endif
@@ -1183,6 +1189,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1465,6 +1474,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/watcom/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -623,6 +623,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 extpas strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sortbase classes sysutils
 endif
 endif
@@ -905,6 +908,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1187,6 +1193,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0
 override TARGET_LOADERS+=prt0
 endif
 endif
@@ -1469,6 +1478,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1752,6 +1764,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2034,6 +2049,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
 endif
 endif

+ 13 - 1
rtl/wii/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 extpas strings dos sortbase sysutils classes math typinfo ctypes charset cpall getopts character fpwidestring unicodedata unicodenumtable types rtlconsts sysconst lineinfo fgl cmem
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1186,6 +1192,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1468,6 +1477,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 13 - 1
rtl/win16/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -622,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
 override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
 override TARGET_UNITS+=system uuchar objpas strings iso7185 extpas dos wintypes winprocs win31 ports dynlibs sortbase sysconst rtlconst sysutils math types typinfo fgl classes
 endif
 endif
@@ -904,6 +907,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
 override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
 override TARGET_LOADERS+=prt0s prt0m prt0c prt0l prt0h
 endif
 endif
@@ -1187,6 +1193,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -1469,6 +1478,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 19 - 1
rtl/win32/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -620,6 +620,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 endif
 endif
@@ -902,6 +905,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof extpas ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo sortbase fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata  unicodenumtable
 endif
 endif
@@ -1184,6 +1190,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1466,6 +1475,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1750,6 +1762,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
 endif
@@ -2032,6 +2047,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
 endif

+ 19 - 1
rtl/win64/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -621,6 +621,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
 endif
 endif
@@ -903,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
 override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
 override TARGET_IMPLICITUNITS+=sysinit ctypes strings extpas heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo sortbase fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u unicodedata unicodenumtable sfpux80
 endif
 endif
@@ -1185,6 +1191,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 override TARGET_LOADERS+=$(LOADERS)
 endif
 endif
@@ -1467,6 +1476,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
@@ -1751,6 +1763,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
 endif
@@ -2033,6 +2048,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
 endif

+ 13 - 1
rtl/wince/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -624,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata  unicodenumtable character cmem sharemem
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata  unicodenumtable character cmem sharemem
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata  unicodenumtable character cmem sharemem
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata  unicodenumtable character cmem sharemem
 override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 extpas strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types sortbase fgl classes math fpwidestring charset cpall getopts unicodedata  unicodenumtable character cmem sharemem
 endif
 endif
@@ -906,6 +909,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
 endif
 endif
@@ -1189,6 +1195,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
 endif
@@ -1471,6 +1480,9 @@ endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
 ifeq ($(FULL_TARGET),riscv64-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
 endif

+ 10 - 1
utils/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 #
 default: all
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-embedded xtensa-freertos
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-darwin aarch64-android wasm-wasm sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos
 BSDs = freebsd netbsd openbsd darwin dragonfly
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -1844,6 +1844,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-JSON=1
 REQUIRE_PACKAGES_FCL-JSON=1
 endif
 endif
+ifeq ($(FULL_TARGET),xtensa-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(FULL_TARGET),xtensa-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1