Browse Source
compiler, runtime: enable go:wasmexport for wasip2 (#4499)
* compiler: prefer go:wasmexport over go:export
* runtime, targets/wasip2: enable -buildmode=c-shared for wasip2
* runtime: rename import from wasi_run to wasiclirun (PR feedback)
pull/4500/head
Randy Reddig
1 month ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with
20 additions and
8 deletions
-
compiler/symbol.go
-
src/runtime/runtime_wasip2.go
-
src/runtime/runtime_wasmentry.go
-
targets/wasip2.json
|
|
@ -389,6 +389,13 @@ func (c *compilerContext) parsePragmas(info *functionInfo, f *ssa.Function) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// If both //go:wasmexport and //go:export or //export are declared,
|
|
|
|
// only honor go:wasmexport.
|
|
|
|
if info.wasmExport != "" { |
|
|
|
// TODO: log warning?
|
|
|
|
info.exported = false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Check whether this function can be used in //go:wasmimport or
|
|
|
|
|
|
@ -6,18 +6,19 @@ import ( |
|
|
|
"unsafe" |
|
|
|
|
|
|
|
"internal/wasi/cli/v0.2.0/environment" |
|
|
|
wasiclirun "internal/wasi/cli/v0.2.0/run" |
|
|
|
monotonicclock "internal/wasi/clocks/v0.2.0/monotonic-clock" |
|
|
|
|
|
|
|
"internal/cm" |
|
|
|
) |
|
|
|
|
|
|
|
type timeUnit int64 |
|
|
|
|
|
|
|
//export wasi:cli/run@0.2.0#run
|
|
|
|
func __wasi_cli_run_run() uint32 { |
|
|
|
// These need to be initialized early so that the heap can be initialized.
|
|
|
|
heapStart = uintptr(unsafe.Pointer(&heapStartSymbol)) |
|
|
|
heapEnd = uintptr(wasm_memory_size(0) * wasmPageSize) |
|
|
|
run() |
|
|
|
return 0 |
|
|
|
func init() { |
|
|
|
wasiclirun.Exports.Run = func() cm.BoolResult { |
|
|
|
callMain() |
|
|
|
return false |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var args []string |
|
|
@ -51,3 +52,6 @@ func sleepTicks(d timeUnit) { |
|
|
|
func ticks() timeUnit { |
|
|
|
return timeUnit(monotonicclock.Now()) |
|
|
|
} |
|
|
|
|
|
|
|
func beforeExit() { |
|
|
|
} |
|
|
@ -1,4 +1,4 @@ |
|
|
|
//go:build tinygo.wasm && !wasip2 && !js
|
|
|
|
//go:build tinygo.wasm && !js
|
|
|
|
|
|
|
|
package runtime |
|
|
|
|
|
|
|
|
|
@ -3,6 +3,7 @@ |
|
|
|
"cpu": "generic", |
|
|
|
"features": "+bulk-memory,+mutable-globals,+nontrapping-fptoint,+sign-ext", |
|
|
|
"build-tags": ["tinygo.wasm", "wasip2"], |
|
|
|
"buildmode": "c-shared", |
|
|
|
"goos": "linux", |
|
|
|
"goarch": "arm", |
|
|
|
"linker": "wasm-ld", |
|
|
|