diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index bbaf595421d0e91e548b8642fb2cd9e117922699..c19714c4566248b099340252792daabcccb191c8 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -64,6 +64,7 @@ var okgoarch = []string{ "amd64", "arm", "arm64", + "loong64", "mips", "mipsle", "mips64", @@ -1554,6 +1555,7 @@ var cgoEnabled = map[string]bool{ "linux/amd64": true, "linux/arm": true, "linux/arm64": true, + "linux/loong64": true, "linux/ppc64": false, "linux/ppc64le": true, "linux/mips": true, @@ -1593,6 +1595,7 @@ var cgoEnabled = map[string]bool{ // filtered out of cgoEnabled for 'dist list'. See golang.org/issue/28944 var incomplete = map[string]bool{ "linux/sparc64": true, + "linux/loong64": true, } // List of platforms which are first class ports. See golang.org/issue/38874. diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go index 79ccf2b167a4a0a6b486ddd82d4aaedc26be2e33..6450601476737cc5e22aa10ca8805351d2f70347 100644 --- a/src/cmd/dist/buildtool.go +++ b/src/cmd/dist/buildtool.go @@ -87,6 +87,8 @@ var ignorePrefixes = []string{ var ignoreSuffixes = []string{ "_arm64.s", "_arm64.go", + "_loong64.s", + "_loong64.go", "_riscv64.s", "_riscv64.go", "_wasm.s", diff --git a/src/cmd/dist/main.go b/src/cmd/dist/main.go index 212d5cbe45cf133f8221e0a583dc6298d0d4e1c0..2651ecb05fcc27a405fd6614fef9624ebd190ff4 100644 --- a/src/cmd/dist/main.go +++ b/src/cmd/dist/main.go @@ -133,6 +133,8 @@ func main() { if elfIsLittleEndian(os.Args[0]) { gohostarch = "mipsle" } + case strings.Contains(out, "loongarch64"): + gohostarch = "loong64" case strings.Contains(out, "riscv64"): gohostarch = "riscv64" case strings.Contains(out, "s390x"): diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index 7c8f1ea46d2dcbdd8a3f9b5412bd5935bc1126bc..afe4b3aebb8f310662230466db770f08d18c695c 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -1035,7 +1035,7 @@ func (t *tester) extLink() bool { "darwin-amd64", "darwin-arm64", "dragonfly-amd64", "freebsd-386", "freebsd-amd64", "freebsd-arm", - "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-ppc64le", "linux-mips64", "linux-mips64le", "linux-mips", "linux-mipsle", "linux-riscv64", "linux-s390x", + "linux-386", "linux-amd64", "linux-arm", "linux-arm64", "linux-loong64", "linux-ppc64le", "linux-mips64", "linux-mips64le", "linux-mips", "linux-mipsle", "linux-riscv64", "linux-s390x", "netbsd-386", "netbsd-amd64", "openbsd-386", "openbsd-amd64", "windows-386", "windows-amd64": @@ -1061,7 +1061,7 @@ func (t *tester) internalLink() bool { // Internally linking cgo is incomplete on some architectures. // https://golang.org/issue/10373 // https://golang.org/issue/14449 - if goarch == "mips64" || goarch == "mips64le" || goarch == "mips" || goarch == "mipsle" || goarch == "riscv64" { + if goarch == "loong64" || goarch == "mips64" || goarch == "mips64le" || goarch == "mips" || goarch == "mipsle" || goarch == "riscv64" { return false } if goos == "aix" {