diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
index 448cf0e592a357b92c8c13cf79f67ed91bb68a82..c184ffca993609449764c5c3e066f139c7d92a1d 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -86,6 +86,7 @@ var okgoos = []string{
 	"illumos",
 	"ios",
 	"js",
+	"wasip1",
 	"linux",
 	"android",
 	"solaris",
@@ -1703,6 +1704,7 @@ var cgoEnabled = map[string]bool{
 	"ios/arm64":       true,
 	"ios/amd64":       true,
 	"js/wasm":         false,
+	"wasip1/wasm":     false,
 	"netbsd/386":      true,
 	"netbsd/amd64":    true,
 	"netbsd/arm":      true,
diff --git a/src/cmd/go/internal/imports/build.go b/src/cmd/go/internal/imports/build.go
index be308ceeec6cd1bb9703eda17bf54cb8860d4c7b..3a4a66b8699c7cc075248064670829e9a0cde529 100644
--- a/src/cmd/go/internal/imports/build.go
+++ b/src/cmd/go/internal/imports/build.go
@@ -323,6 +323,7 @@ var KnownOS = map[string]bool{
 	"openbsd":   true,
 	"plan9":     true,
 	"solaris":   true,
+	"wasip1":    true,
 	"windows":   true,
 	"zos":       true,
 }
diff --git a/src/cmd/internal/objabi/head.go b/src/cmd/internal/objabi/head.go
index 763910fbd6d2e804bcb895904cfb634e2a9aeada..3109b5cb23f12ae3e7a89edd9c37cfe3c036df7b 100644
--- a/src/cmd/internal/objabi/head.go
+++ b/src/cmd/internal/objabi/head.go
@@ -46,6 +46,7 @@ const (
 	Hopenbsd
 	Hplan9
 	Hsolaris
+	Hwasip1
 	Hwindows
 	Haix
 )
@@ -72,6 +73,8 @@ func (h *HeadType) Set(s string) error {
 		*h = Hplan9
 	case "illumos", "solaris":
 		*h = Hsolaris
+	case "wasip1":
+		*h = Hwasip1
 	case "windows":
 		*h = Hwindows
 	default:
@@ -102,6 +105,8 @@ func (h HeadType) String() string {
 		return "plan9"
 	case Hsolaris:
 		return "solaris"
+	case Hwasip1:
+		return "wasip1"
 	case Hwindows:
 		return "windows"
 	}
diff --git a/src/go/build/syslist.go b/src/go/build/syslist.go
index 78ca565ce207f8f149526d1cf354de148df079b7..783bbe697a32d7bc4e884e62a56f5e23c2db7a93 100644
--- a/src/go/build/syslist.go
+++ b/src/go/build/syslist.go
@@ -27,6 +27,7 @@ var knownOS = map[string]bool{
 	"openbsd":   true,
 	"plan9":     true,
 	"solaris":   true,
+	"wasip1":    true,
 	"windows":   true,
 	"zos":       true,
 }
diff --git a/src/internal/goos/zgoos_aix.go b/src/internal/goos/zgoos_aix.go
index ff861550c4851ab7dbb33b9059ec14e88b744adf..24e05c933e5e752cadea93db410ef012ee137562 100644
--- a/src/internal/goos/zgoos_aix.go
+++ b/src/internal/goos/zgoos_aix.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_android.go b/src/internal/goos/zgoos_android.go
index e8aaa1242842d15db905685340b820e047a6a149..3c4a318590a8bb903588994922bf5f772c774562 100644
--- a/src/internal/goos/zgoos_android.go
+++ b/src/internal/goos/zgoos_android.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_darwin.go b/src/internal/goos/zgoos_darwin.go
index decdd496425c7fb3c8424547d2f765fbc46c89e2..10b14998955126a439dca5a1d223fb6356df22c7 100644
--- a/src/internal/goos/zgoos_darwin.go
+++ b/src/internal/goos/zgoos_darwin.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_dragonfly.go b/src/internal/goos/zgoos_dragonfly.go
index 2224baa2301831deaf4ac21f3fb4e9403be693c5..b92d1269f1f2864a80f41620d237711e54fc325f 100644
--- a/src/internal/goos/zgoos_dragonfly.go
+++ b/src/internal/goos/zgoos_dragonfly.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_freebsd.go b/src/internal/goos/zgoos_freebsd.go
index 3ee5bf998e21c3303edb6b789cf8908205010a5c..f547591ab1e521268fce6897cfd80f8f8a8ff3cd 100644
--- a/src/internal/goos/zgoos_freebsd.go
+++ b/src/internal/goos/zgoos_freebsd.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_hurd.go b/src/internal/goos/zgoos_hurd.go
index 8a3d34304d8f7f8f4d848ceb0f0780f68a099bbf..1189d65d74599e7eb03d3b10196d72e53693905b 100644
--- a/src/internal/goos/zgoos_hurd.go
+++ b/src/internal/goos/zgoos_hurd.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_illumos.go b/src/internal/goos/zgoos_illumos.go
index fc1b9a9e22fcc7eab192c68f0a6a38ec7d431c65..4f0254081c31f1ccd572d99b760813b86c4b51e6 100644
--- a/src/internal/goos/zgoos_illumos.go
+++ b/src/internal/goos/zgoos_illumos.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_ios.go b/src/internal/goos/zgoos_ios.go
index 746e769ef766a0cdb9864a2b3b05b21837136021..02f3586fa4017755f8e74cbe1a7be5182e9c22d8 100644
--- a/src/internal/goos/zgoos_ios.go
+++ b/src/internal/goos/zgoos_ios.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_js.go b/src/internal/goos/zgoos_js.go
index 6cf2a5d9e27133923e00735fea0cee949fc0e2d7..481874189199116e973c1ae562648ff6ef060c8a 100644
--- a/src/internal/goos/zgoos_js.go
+++ b/src/internal/goos/zgoos_js.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_linux.go b/src/internal/goos/zgoos_linux.go
index cb9d6e8afaa90556587b7bb9fd1dd0acb85b9b76..6f4d4e07530a92a6d9ef8eeb62e65cb5ed145e14 100644
--- a/src/internal/goos/zgoos_linux.go
+++ b/src/internal/goos/zgoos_linux.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_netbsd.go b/src/internal/goos/zgoos_netbsd.go
index 8285928d3504716df16cdc89b1aa05d65a9f1dc8..948603df0df73bcc7c6243e0e30495cc59418bd3 100644
--- a/src/internal/goos/zgoos_netbsd.go
+++ b/src/internal/goos/zgoos_netbsd.go
@@ -21,5 +21,6 @@ const IsNetbsd = 1
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_openbsd.go b/src/internal/goos/zgoos_openbsd.go
index 3f739a4a2f728c071ba30786423a6bafcbed08fe..f4b201457b59a41315657a98bb6409057836b941 100644
--- a/src/internal/goos/zgoos_openbsd.go
+++ b/src/internal/goos/zgoos_openbsd.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 1
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_plan9.go b/src/internal/goos/zgoos_plan9.go
index d4c1c651f7bf881b28b65e63d461fe4caee6e208..95572dff37067da0cdbd00df59ec34de9f997e57 100644
--- a/src/internal/goos/zgoos_plan9.go
+++ b/src/internal/goos/zgoos_plan9.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 1
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_solaris.go b/src/internal/goos/zgoos_solaris.go
index 69e3285ab620465adadcc4c8c341b64ef40f199e..c7058260f8e0d166817ed8a7daa20696bfbe3ded 100644
--- a/src/internal/goos/zgoos_solaris.go
+++ b/src/internal/goos/zgoos_solaris.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 1
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_wasip1.go b/src/internal/goos/zgoos_wasip1.go
new file mode 100644
index 0000000000000000000000000000000000000000..ae35eebac6142b817ff4bb80333c3caa7286376a
--- /dev/null
+++ b/src/internal/goos/zgoos_wasip1.go
@@ -0,0 +1,26 @@
+// Code generated by gengoos.go using 'go generate'. DO NOT EDIT.
+
+//go:build wasip1
+
+package goos
+
+const GOOS = `wasip1`
+
+const IsAix = 0
+const IsAndroid = 0
+const IsDarwin = 0
+const IsDragonfly = 0
+const IsFreebsd = 0
+const IsHurd = 0
+const IsIllumos = 0
+const IsIos = 0
+const IsJs = 0
+const IsLinux = 0
+const IsNacl = 0
+const IsNetbsd = 0
+const IsOpenbsd = 0
+const IsPlan9 = 0
+const IsSolaris = 0
+const IsWasip1 = 1
+const IsWindows = 0
+const IsZos = 0
diff --git a/src/internal/goos/zgoos_windows.go b/src/internal/goos/zgoos_windows.go
index 16158be78b97e8f85e97754aff88fc02ab27f9d9..f89f4cf82946594325e8b4221a27ce68c2faf806 100644
--- a/src/internal/goos/zgoos_windows.go
+++ b/src/internal/goos/zgoos_windows.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 1
 const IsZos = 0
diff --git a/src/internal/goos/zgoos_zos.go b/src/internal/goos/zgoos_zos.go
index fb6165c7a12ec8f4269c0e672933448a99ad9046..29fb0f8babbbd0110366839ce261b98016b4c9e6 100644
--- a/src/internal/goos/zgoos_zos.go
+++ b/src/internal/goos/zgoos_zos.go
@@ -21,5 +21,6 @@ const IsNetbsd = 0
 const IsOpenbsd = 0
 const IsPlan9 = 0
 const IsSolaris = 0
+const IsWasip1 = 0
 const IsWindows = 0
 const IsZos = 1