* initial commit for WASI support
* merge "time" package with wasi build tag
* override syscall package with wasi build tag
* create runtime_wasm_{js,wasi}.go files
* create syscall_wasi.go file
* create time/zoneinfo_wasi.go file as the replacement of zoneinfo_js.go
* add targets/wasi.json target
* set visbility hidden for runtime extern variables
Accodring to the WASI docs (https://github.com/WebAssembly/WASI/blob/master/design/application-abi.md#current-unstable-abi),
none of exports of WASI executable(Command) should no be accessed.
v0.19.0 of bytecodealliance/wasmetime, which is often refered to as the reference implementation of WASI,
does not accept any exports except functions and the only limited variables like "table", "memory".
* merge syscall_{baremetal,wasi}.go
* fix js target build
* mv wasi functions to syscall/wasi && implement sleepTicks
* WASI: set visibility hidden for globals variables
* mv back syscall/wasi/* to runtime package
* WASI: add test
* unexport wasi types
* WASI test: fix wasmtime path
* stop changing visibility of runtime.alloc
* use GOOS=linux, GOARCH=arm for wasi target
Signed-off-by: mathetake <takeshi@tetrate.io>
* WASI: fix build tags for os/runtime packages
Signed-off-by: mathetake <takeshi@tetrate.io>
* run WASI test only on Linux
Signed-off-by: mathetake <takeshi@tetrate.io>
* set InternalLinkage instead of changing visibility
Signed-off-by: mathetake <takeshi@tetrate.io>
22 строки
484 Б
JSON
22 строки
484 Б
JSON
{
|
|
"llvm-target": "wasm32--wasi",
|
|
"build-tags": ["wasm", "wasi"],
|
|
"goos": "linux",
|
|
"goarch": "arm",
|
|
"compiler": "clang",
|
|
"linker": "wasm-ld",
|
|
"cflags": [
|
|
"--target=wasm32--wasi",
|
|
"--sysroot={root}/lib/wasi-libc/sysroot",
|
|
"-Oz"
|
|
],
|
|
"ldflags": [
|
|
"--allow-undefined",
|
|
"--no-threads",
|
|
"--stack-first",
|
|
"--export-dynamic",
|
|
"--no-demangle",
|
|
"{root}/lib/wasi-libc/sysroot/lib/wasm32-wasi/libc.a"
|
|
],
|
|
"emulator": ["wasmtime"]
|
|
}
|