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)
This commit is contained in:
Randy Reddig
2024-10-05 02:36:47 +02:00
committed by GitHub
parent 9da8b5c786
commit 453a1d35c3
4 changed files with 20 additions and 8 deletions
+7
View File
@@ -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 // Check whether this function can be used in //go:wasmimport or
@@ -6,18 +6,19 @@ import (
"unsafe" "unsafe"
"internal/wasi/cli/v0.2.0/environment" "internal/wasi/cli/v0.2.0/environment"
wasiclirun "internal/wasi/cli/v0.2.0/run"
monotonicclock "internal/wasi/clocks/v0.2.0/monotonic-clock" monotonicclock "internal/wasi/clocks/v0.2.0/monotonic-clock"
"internal/cm"
) )
type timeUnit int64 type timeUnit int64
//export wasi:cli/run@0.2.0#run func init() {
func __wasi_cli_run_run() uint32 { wasiclirun.Exports.Run = func() cm.BoolResult {
// These need to be initialized early so that the heap can be initialized. callMain()
heapStart = uintptr(unsafe.Pointer(&heapStartSymbol)) return false
heapEnd = uintptr(wasm_memory_size(0) * wasmPageSize) }
run()
return 0
} }
var args []string var args []string
@@ -51,3 +52,6 @@ func sleepTicks(d timeUnit) {
func ticks() timeUnit { func ticks() timeUnit {
return timeUnit(monotonicclock.Now()) return timeUnit(monotonicclock.Now())
} }
func beforeExit() {
}
+1 -1
View File
@@ -1,4 +1,4 @@
//go:build tinygo.wasm && !wasip2 && !js //go:build tinygo.wasm && !js
package runtime package runtime
+1
View File
@@ -3,6 +3,7 @@
"cpu": "generic", "cpu": "generic",
"features": "+bulk-memory,+mutable-globals,+nontrapping-fptoint,+sign-ext", "features": "+bulk-memory,+mutable-globals,+nontrapping-fptoint,+sign-ext",
"build-tags": ["tinygo.wasm", "wasip2"], "build-tags": ["tinygo.wasm", "wasip2"],
"buildmode": "c-shared",
"goos": "linux", "goos": "linux",
"goarch": "arm", "goarch": "arm",
"linker": "wasm-ld", "linker": "wasm-ld",