This libgo patch from Michael Hudson-Doyle recognizes arm64 as the Go
name for the AArch64 architecture. Bootstrapped and ran Go testsuite on
x86_64-unknown-linux-gnu. Committed to mainline.
Ian
diff -r 070005ab99f5 libgo/configure.ac
--- a/libgo/configure.ac Sun Jan 05 19:00:53 2014 -0800
+++ b/libgo/configure.ac Mon Jan 06 11:13:23 2014 -0800
@@ -174,6 +174,7 @@
is_386=no
is_alpha=no
is_arm=no
+is_arm64=no
is_m68k=no
mips_abi=unknown
is_ppc=no
@@ -187,6 +188,10 @@
is_alpha=yes
GOARCH=alpha
;;
+ aarch64-*-*)
+ is_arm64=yes
+ GOARCH=arm64
+ ;;
arm*-*-* | strongarm*-*-* | ep9312*-*-* | xscale-*-*)
is_arm=yes
GOARCH=arm
@@ -267,6 +272,7 @@
AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes)
AM_CONDITIONAL(LIBGO_IS_ALPHA, test $is_alpha = yes)
AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes)
+AM_CONDITIONAL(LIBGO_IS_ARM64, test $is_arm64 = yes)
AM_CONDITIONAL(LIBGO_IS_M68K, test $is_m68k = yes)
AM_CONDITIONAL(LIBGO_IS_MIPS, test $mips_abi != unknown)
AM_CONDITIONAL(LIBGO_IS_MIPSO32, test $mips_abi = o32)
diff -r 070005ab99f5 libgo/go/go/build/build.go
--- a/libgo/go/go/build/build.go Sun Jan 05 19:00:53 2014 -0800
+++ b/libgo/go/go/build/build.go Mon Jan 06 11:13:23 2014 -0800
@@ -1211,6 +1211,8 @@
return "6", nil
case "arm":
return "5", nil
+ case "arm64":
+ return "7", nil
}
return "", errors.New("unsupported GOARCH " + goarch)
}
diff -r 070005ab99f5 libgo/go/go/build/deps_test.go
--- a/libgo/go/go/build/deps_test.go Sun Jan 05 19:00:53 2014 -0800
+++ b/libgo/go/go/build/deps_test.go Mon Jan 06 11:13:23 2014 -0800
@@ -360,7 +360,7 @@
var bools = []bool{false, true}
var geese = []string{"darwin", "dragonfly", "freebsd", "linux", "netbsd", "openbsd", "plan9", "windows"}
-var goarches = []string{"386", "amd64", "arm"}
+var goarches = []string{"386", "amd64", "arm", "arm64"}
type osPkg struct {
goos, pkg string
diff -r 070005ab99f5 libgo/go/go/build/syslist.go
--- a/libgo/go/go/build/syslist.go Sun Jan 05 19:00:53 2014 -0800
+++ b/libgo/go/go/build/syslist.go Mon Jan 06 11:13:23 2014 -0800
@@ -5,4 +5,4 @@
package build
const goosList = "darwin dragonfly freebsd linux netbsd openbsd plan9 windows solaris "
-const goarchList = "386 amd64 arm alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 sparc sparc64 "
+const goarchList = "386 amd64 arm arm64 alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 sparc sparc64 "
diff -r 070005ab99f5 libgo/go/runtime/extern.go
--- a/libgo/go/runtime/extern.go Sun Jan 05 19:00:53 2014 -0800
+++ b/libgo/go/runtime/extern.go Mon Jan 06 11:13:23 2014 -0800
@@ -185,5 +185,5 @@
const GOOS string = theGoos
// GOARCH is the running program's architecture target:
-// 386, amd64, or arm.
+// 386, amd64, arm or arm64.
const GOARCH string = theGoarch