"compile/internal/arm64",
"compile/internal/big",
"compile/internal/gc",
+ "compile/internal/mips64",
"compile/internal/ppc64",
"compile/internal/x86",
"internal/gcprog",
"internal/obj",
"internal/obj/arm",
"internal/obj/arm64",
+ "internal/obj/mips",
"internal/obj/ppc64",
"internal/obj/x86",
"link",
"link/internal/arm",
"link/internal/arm64",
"link/internal/ld",
+ "link/internal/mips64",
"link/internal/ppc64",
"link/internal/x86",
}
// External linking not implemented on ppc64 (issue #8912).
return false
}
+ if t.goarch == "mips64le" || t.goarch == "mips64" {
+ // External linking not implemented on mips64.
+ return false
+ }
return true
}
import (
"bytes"
+ "debug/elf"
+ "encoding/binary"
"fmt"
"io/ioutil"
"os"
gohostarch = "ppc64le"
case strings.Contains(out, "ppc64"):
gohostarch = "ppc64"
+ case strings.Contains(out, "mips64"):
+ file, err := elf.Open(os.Args[0])
+ if err != nil {
+ fatal("failed to open %s to determine endianness: %v", os.Args[0], err)
+ }
+ if file.FileHeader.ByteOrder == binary.BigEndian {
+ gohostarch = "mips64"
+ } else {
+ gohostarch = "mips64le"
+ }
case gohostos == "darwin":
if strings.Contains(run("", CheckExit, "uname", "-v"), "RELEASE_ARM_") {
gohostarch = "arm"