mirror of
https://github.com/golang/go
synced 2024-09-24 09:20:15 -06:00
cmd/go: add GOWASM environment variable
This change adds the environment variable GOWASM, which is a comma separated list of experimental WebAssembly features that the compiled WebAssembly binary is allowed to use. The default is to use no experimental features. Initially there are no features avaiable. More information about feature proposals can be found at https://github.com/WebAssembly/proposals Change-Id: I4c8dc534c99ecff8bb075dded0186ca8f8decaef Reviewed-on: https://go-review.googlesource.com/c/go/+/168881 Run-TryBot: Richard Musiol <neelance@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
2396101e05
commit
b434bbf197
@ -638,6 +638,17 @@ for which the compiler will target. The default is <code>power8</code>.
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
<li><code>$GOWASM</code> (for <code>wasm</code> only)
|
||||
<p>
|
||||
This variable is a comma separated list of <a href="https://github.com/WebAssembly/proposals">experimental WebAssembly features</a> that the compiled WebAssembly binary is allowed to use.
|
||||
The default is to use no experimental features.
|
||||
</p>
|
||||
<ul>
|
||||
<li>(no features yet)</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
@ -105,6 +105,7 @@ var (
|
||||
GOMIPS = objabi.GOMIPS
|
||||
GOMIPS64 = objabi.GOMIPS64
|
||||
GOPPC64 = fmt.Sprintf("%s%d", "power", objabi.GOPPC64)
|
||||
GOWASM = objabi.GOWASM
|
||||
)
|
||||
|
||||
// Update build context to use our computed GOROOT.
|
||||
|
@ -83,6 +83,8 @@ func MkEnv() []cfg.EnvVar {
|
||||
env = append(env, cfg.EnvVar{Name: "GOMIPS64", Value: cfg.GOMIPS64})
|
||||
case "ppc64", "ppc64le":
|
||||
env = append(env, cfg.EnvVar{Name: "GOPPC64", Value: cfg.GOPPC64})
|
||||
case "wasm":
|
||||
env = append(env, cfg.EnvVar{Name: "GOWASM", Value: cfg.GOWASM.String()})
|
||||
}
|
||||
|
||||
cc := cfg.DefaultCC(cfg.Goos, cfg.Goarch)
|
||||
|
@ -29,6 +29,7 @@ var (
|
||||
GOMIPS = gomips()
|
||||
GOMIPS64 = gomips64()
|
||||
GOPPC64 = goppc64()
|
||||
GOWASM = gowasm()
|
||||
GO_LDSO = defaultGO_LDSO
|
||||
Version = version
|
||||
)
|
||||
@ -76,6 +77,29 @@ func goppc64() int {
|
||||
panic("unreachable")
|
||||
}
|
||||
|
||||
type gowasmFeatures struct {
|
||||
// no features yet
|
||||
}
|
||||
|
||||
func (f *gowasmFeatures) String() string {
|
||||
var flags []string
|
||||
// no features yet
|
||||
return strings.Join(flags, ",")
|
||||
}
|
||||
|
||||
func gowasm() (f gowasmFeatures) {
|
||||
for _, opt := range strings.Split(envOr("GOWASM", ""), ",") {
|
||||
switch opt {
|
||||
// no features yet
|
||||
case "":
|
||||
// ignore
|
||||
default:
|
||||
log.Fatalf("Invalid GOWASM value. No such feature: " + opt)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func Getgoextlinkenabled() string {
|
||||
return envOr("GO_EXTLINK_ENABLED", defaultGO_EXTLINK_ENABLED)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user