ソースを参照

+ added unit wasiapi

git-svn-id: branches/wasm@48424 -
nickysn 4 年 前
コミット
45b67bf8c8
4 ファイル変更143 行追加106 行削除
  1. 1 0
      .gitattributes
  2. 108 105
      rtl/wasi/Makefile
  3. 9 1
      rtl/wasi/Makefile.fpc
  4. 25 0
      rtl/wasi/wasiapi.pp

+ 1 - 0
.gitattributes

@@ -12199,6 +12199,7 @@ rtl/wasi/sysheap.inc svneol=native#text/plain
 rtl/wasi/sysos.inc svneol=native#text/plain
 rtl/wasi/sysosh.inc svneol=native#text/plain
 rtl/wasi/system.pp svneol=native#text/plain
+rtl/wasi/wasiapi.pp svneol=native#text/plain
 rtl/wasi/wasiinc/wasiprocs.inc svneol=native#text/plain
 rtl/wasi/wasiinc/wasitypes.inc svneol=native#text/plain
 rtl/wasm32/cpuh.inc svneol=native#text/plain

+ 108 - 105
rtl/wasi/Makefile

@@ -366,319 +366,319 @@ ifdef NO_EXCEPTIONS_IN_SYSTEM
 override FPCOPT+=-dNO_EXCEPTIONS_IN_SYSTEM
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i386-aros)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-macosclassic)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),m68k-sinclairql)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-macosclassic)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-haiku)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-netbsd)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-aros)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-freertos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),arm-ios)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),mips64el-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i8086-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),aarch64-win64)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),aarch64-android)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),aarch64-ios)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),wasm32-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),wasm32-wasi)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),sparc64-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),riscv32-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),riscv32-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),riscv64-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),xtensa-linux)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),xtensa-freertos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),z80-embedded)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),z80-zxspectrum)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),z80-msxdos)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 ifeq ($(FULL_TARGET),z80-amstradcpc)
-override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas
+override TARGET_UNITS+=system $(SYSINIT_UNITS) objpas wasiapi
 endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -2622,3 +2622,6 @@ objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc system$(PPUEXT)
 	$(EXECPPAS)
 si_prc$(PPUEXT) : si_prc.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
+wasiapi$(PPUEXT) : wasiapi.pp wasiinc/wasitypes.inc wasiinc/wasiprocs.inc $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $< -Fiwasiinc
+	$(EXECPPAS)

+ 9 - 1
rtl/wasi/Makefile.fpc

@@ -5,7 +5,7 @@
 main=rtl
 [target]
 loaders=
-units=system $(SYSINIT_UNITS) objpas
+units=system $(SYSINIT_UNITS) objpas wasiapi
 
 [require]
 nortl=y
@@ -67,3 +67,11 @@ objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc system$(PPUEXT)
 #
 si_prc$(PPUEXT) : si_prc.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
+
+#
+# WASI API Unit
+#
+
+wasiapi$(PPUEXT) : wasiapi.pp wasiinc/wasitypes.inc wasiinc/wasiprocs.inc $(SYSTEMUNIT)$(PPUEXT)
+        $(COMPILER) $< -Fiwasiinc
+        $(EXECPPAS)

+ 25 - 0
rtl/wasi/wasiapi.pp

@@ -0,0 +1,25 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2020,2021 by the Free Pascal development team.
+
+    API functions for The WebAssembly System Interface (WASI).
+
+    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.
+
+ **********************************************************************}
+
+unit wasiapi;
+
+interface
+
+{$I wasitypes.inc}
+{$I wasiprocs.inc}
+
+implementation
+
+end.