aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2020-04-03 12:22:27 -0400
committerAustin Clements <austin@google.com>2020-04-08 18:35:49 +0000
commitf7e6ab44b410ef56bb89da182948a451d3cca34c (patch)
tree9d49b461aff716c2d398e720c9bee93c20e1898e
parentda8591b61c141ca58e4b3eae382d2827006344fd (diff)
downloadgo-f7e6ab44b410ef56bb89da182948a451d3cca34c.tar.gz
go-f7e6ab44b410ef56bb89da182948a451d3cca34c.zip
all: remove scattered remnants of darwin/arm
This removes all conditions and conditional code (that I could find) that depended on darwin/arm. Fixes #35439 (since that only happened on darwin/arm) Fixes #37611. Change-Id: Ia4c32a5a4368ed75231075832b0b5bfb1ad11986 Reviewed-on: https://go-review.googlesource.com/c/go/+/227198 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
-rw-r--r--misc/cgo/test/pkg_test.go2
-rw-r--r--misc/cgo/test/sigaltstack.go2
-rw-r--r--misc/cgo/test/testx.go2
-rw-r--r--misc/cgo/testcarchive/carchive_test.go8
-rw-r--r--misc/cgo/testcshared/cshared_test.go2
-rw-r--r--misc/cgo/testso/so_test.go2
-rw-r--r--misc/cgo/testsovar/so_test.go2
-rwxr-xr-xmisc/ios/clangwrap.sh4
-rwxr-xr-xsrc/buildall.bash2
-rw-r--r--src/cmd/dist/build.go4
-rw-r--r--src/cmd/dist/test.go8
-rw-r--r--src/cmd/dist/util.go4
-rw-r--r--src/cmd/doc/doc_test.go4
-rw-r--r--src/cmd/go/go_test.go2
-rw-r--r--src/cmd/go/internal/load/pkg.go3
-rw-r--r--src/cmd/go/internal/work/build_test.go2
-rw-r--r--src/cmd/go/internal/work/init.go4
-rw-r--r--src/cmd/internal/sys/supported.go2
-rw-r--r--src/cmd/link/internal/arm/asm.go16
-rw-r--r--src/cmd/link/internal/arm/obj.go9
-rw-r--r--src/cmd/link/internal/ld/sym.go3
-rw-r--r--src/cmd/oldlink/internal/arm/asm.go25
-rw-r--r--src/cmd/oldlink/internal/arm/obj.go9
-rw-r--r--src/cmd/oldlink/internal/ld/sym.go3
-rw-r--r--src/crypto/x509/root_darwin_test.go2
-rw-r--r--src/go/build/build_test.go14
-rw-r--r--src/go/build/deps_test.go2
-rw-r--r--src/go/internal/gcimporter/gcimporter_test.go3
-rw-r--r--src/internal/testenv/testenv.go6
-rwxr-xr-xsrc/iostest.bash9
-rw-r--r--src/log/syslog/syslog_test.go2
-rw-r--r--src/net/dial_test.go2
-rw-r--r--src/net/lookup_test.go10
-rw-r--r--src/net/platform_test.go6
-rw-r--r--src/net/timeout_test.go2
-rw-r--r--src/os/file.go2
-rw-r--r--src/os/os_test.go8
-rw-r--r--src/os/path_test.go4
-rw-r--r--src/os/wait_waitid.go2
-rw-r--r--src/path/filepath/path_test.go16
-rw-r--r--src/runtime/cgo/cgo.go3
-rw-r--r--src/runtime/cgo/gcc_darwin_arm64.c2
-rw-r--r--src/runtime/os_darwin.go8
-rw-r--r--src/runtime/pprof/pprof_test.go2
-rw-r--r--src/runtime/signal_arm.go4
-rw-r--r--src/runtime/signal_unix.go6
-rw-r--r--src/runtime/tls_arm.s5
-rw-r--r--src/runtime/vlrt.go2
-rwxr-xr-xsrc/syscall/mkall.sh7
-rw-r--r--src/syscall/syscall_unix_test.go2
50 files changed, 81 insertions, 174 deletions
diff --git a/misc/cgo/test/pkg_test.go b/misc/cgo/test/pkg_test.go
index 08e075c022..26c50ad883 100644
--- a/misc/cgo/test/pkg_test.go
+++ b/misc/cgo/test/pkg_test.go
@@ -32,7 +32,7 @@ func TestCrossPackageTests(t *testing.T) {
t.Skip("Can't exec cmd/go subprocess on Android.")
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
t.Skip("Can't exec cmd/go subprocess on iOS.")
}
}
diff --git a/misc/cgo/test/sigaltstack.go b/misc/cgo/test/sigaltstack.go
index 7b3f4acbb7..f501f9ba3a 100644
--- a/misc/cgo/test/sigaltstack.go
+++ b/misc/cgo/test/sigaltstack.go
@@ -62,7 +62,7 @@ import (
func testSigaltstack(t *testing.T) {
switch {
- case runtime.GOOS == "solaris", runtime.GOOS == "illumos", runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64"):
+ case runtime.GOOS == "solaris", runtime.GOOS == "illumos", runtime.GOOS == "darwin" && runtime.GOARCH == "arm64":
t.Skipf("switching signal stack not implemented on %s/%s", runtime.GOOS, runtime.GOARCH)
case runtime.GOOS == "darwin" && runtime.GOARCH == "386":
t.Skipf("sigaltstack fails on darwin/386")
diff --git a/misc/cgo/test/testx.go b/misc/cgo/test/testx.go
index 42979b5f4d..98c48fa383 100644
--- a/misc/cgo/test/testx.go
+++ b/misc/cgo/test/testx.go
@@ -159,7 +159,7 @@ func Add(x int) {
}
func testCthread(t *testing.T) {
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
t.Skip("the iOS exec wrapper is unable to properly handle the panic from Add")
}
sum.i = 0
diff --git a/misc/cgo/testcarchive/carchive_test.go b/misc/cgo/testcarchive/carchive_test.go
index 82a1a5a54c..b4a046c4bc 100644
--- a/misc/cgo/testcarchive/carchive_test.go
+++ b/misc/cgo/testcarchive/carchive_test.go
@@ -134,7 +134,7 @@ func testMain(m *testing.M) int {
} else {
switch GOOS {
case "darwin":
- if GOARCH == "arm" || GOARCH == "arm64" {
+ if GOARCH == "arm64" {
libbase += "_shared"
}
case "dragonfly", "freebsd", "linux", "netbsd", "openbsd", "solaris", "illumos":
@@ -305,7 +305,7 @@ func TestEarlySignalHandler(t *testing.T) {
switch GOOS {
case "darwin":
switch GOARCH {
- case "arm", "arm64":
+ case "arm64":
t.Skipf("skipping on %s/%s; see https://golang.org/issue/13701", GOOS, GOARCH)
}
case "windows":
@@ -487,7 +487,7 @@ func checkSignalForwardingTest(t *testing.T) {
switch GOOS {
case "darwin":
switch GOARCH {
- case "arm", "arm64":
+ case "arm64":
t.Skipf("skipping on %s/%s; see https://golang.org/issue/13701", GOOS, GOARCH)
}
case "windows":
@@ -603,7 +603,7 @@ func TestExtar(t *testing.T) {
if runtime.Compiler == "gccgo" {
t.Skip("skipping -extar test when using gccgo")
}
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
t.Skip("shell scripts are not executable on iOS hosts")
}
diff --git a/misc/cgo/testcshared/cshared_test.go b/misc/cgo/testcshared/cshared_test.go
index cb95153abf..bd4d341820 100644
--- a/misc/cgo/testcshared/cshared_test.go
+++ b/misc/cgo/testcshared/cshared_test.go
@@ -108,7 +108,7 @@ func testMain(m *testing.M) int {
libgodir := GOOS + "_" + GOARCH
switch GOOS {
case "darwin":
- if GOARCH == "arm" || GOARCH == "arm64" {
+ if GOARCH == "arm64" {
libgodir += "_shared"
}
case "dragonfly", "freebsd", "linux", "netbsd", "openbsd", "solaris", "illumos":
diff --git a/misc/cgo/testso/so_test.go b/misc/cgo/testso/so_test.go
index f94017025c..bdd6bd8468 100644
--- a/misc/cgo/testso/so_test.go
+++ b/misc/cgo/testso/so_test.go
@@ -20,7 +20,7 @@ import (
func requireTestSOSupported(t *testing.T) {
t.Helper()
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
if runtime.GOOS == "darwin" {
t.Skip("No exec facility on iOS.")
}
diff --git a/misc/cgo/testsovar/so_test.go b/misc/cgo/testsovar/so_test.go
index f94017025c..bdd6bd8468 100644
--- a/misc/cgo/testsovar/so_test.go
+++ b/misc/cgo/testsovar/so_test.go
@@ -20,7 +20,7 @@ import (
func requireTestSOSupported(t *testing.T) {
t.Helper()
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
if runtime.GOOS == "darwin" {
t.Skip("No exec facility on iOS.")
}
diff --git a/misc/ios/clangwrap.sh b/misc/ios/clangwrap.sh
index c69a9bf355..5fdbb6db4a 100755
--- a/misc/ios/clangwrap.sh
+++ b/misc/ios/clangwrap.sh
@@ -8,9 +8,7 @@ export IPHONEOS_DEPLOYMENT_TARGET=5.1
# cmd/cgo doesn't support llvm-gcc-4.2, so we have to use clang.
CLANG=`xcrun --sdk $SDK --find clang`
-if [ "$GOARCH" == "arm" ]; then
- CLANGARCH="armv7"
-elif [ "$GOARCH" == "arm64" ]; then
+if [ "$GOARCH" == "arm64" ]; then
CLANGARCH="arm64"
else
echo "unknown GOARCH=$GOARCH" >&2
diff --git a/src/buildall.bash b/src/buildall.bash
index 18d0b0db19..dc67c0630f 100755
--- a/src/buildall.bash
+++ b/src/buildall.bash
@@ -42,7 +42,7 @@ gettargets() {
}
selectedtargets() {
- gettargets | egrep -v 'android-arm|darwin-arm' | egrep "$pattern"
+ gettargets | egrep -v 'android-arm|darwin-arm64' | egrep "$pattern"
}
# put linux first in the target list to get all the architectures up front.
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
index ab55a98b74..9e2b4f33b8 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
@@ -1461,8 +1461,8 @@ func wrapperPathFor(goos, goarch string) string {
if gohostos != "android" {
return pathf("%s/misc/android/go_android_exec.go", goroot)
}
- case goos == "darwin" && (goarch == "arm" || goarch == "arm64"):
- if gohostos != "darwin" || (gohostarch != "arm" && gohostarch != "arm64") {
+ case goos == "darwin" && goarch == "arm64":
+ if gohostos != "darwin" || gohostarch != "arm64" {
return pathf("%s/misc/ios/go_darwin_arm_exec.go", goroot)
}
}
diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
index 0ab5e6e3b6..a7ef8f27d5 100644
--- a/src/cmd/dist/test.go
+++ b/src/cmd/dist/test.go
@@ -887,7 +887,7 @@ func (t *tester) addCmd(dt *distTest, dir string, cmdline ...interface{}) *exec.
}
func (t *tester) iOS() bool {
- return goos == "darwin" && (goarch == "arm" || goarch == "arm64")
+ return goos == "darwin" && goarch == "arm64"
}
func (t *tester) out(v string) {
@@ -902,7 +902,7 @@ func (t *tester) extLink() bool {
switch pair {
case "aix-ppc64",
"android-arm", "android-arm64",
- "darwin-386", "darwin-amd64", "darwin-arm", "darwin-arm64",
+ "darwin-386", "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-s390x",
@@ -927,7 +927,7 @@ func (t *tester) internalLink() bool {
if goos == "android" {
return false
}
- if goos == "darwin" && (goarch == "arm" || goarch == "arm64") {
+ if t.iOS() {
return false
}
// Internally linking cgo is incomplete on some architectures.
@@ -963,7 +963,7 @@ func (t *tester) supportedBuildmode(mode string) bool {
}
switch pair {
case "aix-ppc64",
- "darwin-386", "darwin-amd64", "darwin-arm", "darwin-arm64",
+ "darwin-386", "darwin-amd64", "darwin-arm64",
"linux-amd64", "linux-386", "linux-ppc64le", "linux-s390x",
"freebsd-amd64",
"windows-amd64", "windows-386":
diff --git a/src/cmd/dist/util.go b/src/cmd/dist/util.go
index b9e8a513d9..0a419e465f 100644
--- a/src/cmd/dist/util.go
+++ b/src/cmd/dist/util.go
@@ -383,8 +383,8 @@ func xsamefile(f1, f2 string) bool {
}
func xgetgoarm() string {
- if goos == "darwin" || goos == "android" {
- // Assume all darwin/arm and android devices have VFPv3.
+ if goos == "android" {
+ // Assume all android devices have VFPv3.
// These ports are also mostly cross-compiled, so it makes little
// sense to auto-detect the setting.
return "7"
diff --git a/src/cmd/doc/doc_test.go b/src/cmd/doc/doc_test.go
index fd2ae30827..80b8cd4d69 100644
--- a/src/cmd/doc/doc_test.go
+++ b/src/cmd/doc/doc_test.go
@@ -36,8 +36,8 @@ func TestMain(m *testing.M) {
}
func maybeSkip(t *testing.T) {
- if runtime.GOOS == "darwin" && strings.HasPrefix(runtime.GOARCH, "arm") {
- t.Skip("darwin/arm does not have a full file tree")
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
+ t.Skip("darwin/arm64 does not have a full file tree")
}
}
diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go
index 33c3f48f85..723e1d9122 100644
--- a/src/cmd/go/go_test.go
+++ b/src/cmd/go/go_test.go
@@ -61,7 +61,7 @@ func init() {
canRun = false
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
canRun = false
}
case "linux":
diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index 247f5ed506..3c018a0f7f 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -1940,8 +1940,7 @@ func externalLinkingForced(p *Package) bool {
return true
}
case "darwin":
- switch cfg.BuildContext.GOARCH {
- case "arm", "arm64":
+ if cfg.BuildContext.GOARCH == "arm64" {
return true
}
}
diff --git a/src/cmd/go/internal/work/build_test.go b/src/cmd/go/internal/work/build_test.go
index b60f4e27c0..c33de2635d 100644
--- a/src/cmd/go/internal/work/build_test.go
+++ b/src/cmd/go/internal/work/build_test.go
@@ -222,7 +222,7 @@ func pkgImportPath(pkgpath string) *load.Package {
func TestRespectSetgidDir(t *testing.T) {
switch runtime.GOOS {
case "darwin":
- if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
+ if runtime.GOARCH == "arm64" {
t.Skip("can't set SetGID bit with chmod on iOS")
}
case "windows", "plan9":
diff --git a/src/cmd/go/internal/work/init.go b/src/cmd/go/internal/work/init.go
index a574924c5b..473bd1a31b 100644
--- a/src/cmd/go/internal/work/init.go
+++ b/src/cmd/go/internal/work/init.go
@@ -117,7 +117,7 @@ func buildModeInit() {
switch cfg.Goos {
case "darwin":
switch cfg.Goarch {
- case "arm", "arm64":
+ case "arm64":
codegenArg = "-shared"
}
@@ -151,7 +151,7 @@ func buildModeInit() {
ldBuildmode = "pie"
case "darwin":
switch cfg.Goarch {
- case "arm", "arm64":
+ case "arm64":
codegenArg = "-shared"
}
fallthrough
diff --git a/src/cmd/internal/sys/supported.go b/src/cmd/internal/sys/supported.go
index 639827be86..efc07af56b 100644
--- a/src/cmd/internal/sys/supported.go
+++ b/src/cmd/internal/sys/supported.go
@@ -39,7 +39,7 @@ func MustLinkExternal(goos, goarch string) bool {
return true
}
case "darwin":
- if goarch == "arm" || goarch == "arm64" {
+ if goarch == "arm64" {
return true
}
}
diff --git a/src/cmd/link/internal/arm/asm.go b/src/cmd/link/internal/arm/asm.go
index 43ee4bf200..8472cb8660 100644
--- a/src/cmd/link/internal/arm/asm.go
+++ b/src/cmd/link/internal/arm/asm.go
@@ -789,11 +789,6 @@ func asmb(ctxt *ld.Link) {
}
func asmb2(ctxt *ld.Link) {
- machlink := uint32(0)
- if ctxt.HeadType == objabi.Hdarwin {
- machlink = uint32(ld.Domacholink(ctxt))
- }
-
/* output symbol table */
ld.Symsize = 0
@@ -811,9 +806,6 @@ func asmb2(ctxt *ld.Link) {
case objabi.Hplan9:
symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
- case objabi.Hdarwin:
- symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(*ld.FlagRound))) + uint64(machlink))
-
case objabi.Hwindows:
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), ld.PEFILEALIGN))
@@ -845,11 +837,6 @@ func asmb2(ctxt *ld.Link) {
case objabi.Hwindows:
// Do nothing
-
- case objabi.Hdarwin:
- if ctxt.LinkMode == ld.LinkExternal {
- ld.Machoemitreloc(ctxt)
- }
}
}
@@ -872,9 +859,6 @@ func asmb2(ctxt *ld.Link) {
objabi.Hopenbsd:
ld.Asmbelf(ctxt, int64(symo))
- case objabi.Hdarwin:
- ld.Asmbmacho(ctxt)
-
case objabi.Hwindows:
ld.Asmbpe(ctxt)
}
diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go
index 27246df21f..003c80a508 100644
--- a/src/cmd/link/internal/arm/obj.go
+++ b/src/cmd/link/internal/arm/obj.go
@@ -100,15 +100,6 @@ func archinit(ctxt *ld.Link) {
*ld.FlagRound = 0x10000
}
- case objabi.Hdarwin: /* apple MACH */
- ld.HEADR = ld.INITIAL_MACHO_HEADR
- if *ld.FlagTextAddr == -1 {
- *ld.FlagTextAddr = 4096 + int64(ld.HEADR)
- }
- if *ld.FlagRound == -1 {
- *ld.FlagRound = 4096
- }
-
case objabi.Hwindows: /* PE executable */
// ld.HEADR, ld.FlagTextAddr, ld.FlagRound are set in ld.Peinit
return
diff --git a/src/cmd/link/internal/ld/sym.go b/src/cmd/link/internal/ld/sym.go
index 97966ed7e4..2284963f59 100644
--- a/src/cmd/link/internal/ld/sym.go
+++ b/src/cmd/link/internal/ld/sym.go
@@ -106,9 +106,6 @@ func (ctxt *Link) computeTLSOffset() {
case sys.AMD64:
ctxt.Tlsoffset = 0x30
- case sys.ARM:
- ctxt.Tlsoffset = 0 // dummy value, not needed
-
case sys.ARM64:
ctxt.Tlsoffset = 0 // dummy value, not needed
}
diff --git a/src/cmd/oldlink/internal/arm/asm.go b/src/cmd/oldlink/internal/arm/asm.go
index 8db0bc3c9a..a2a0879c5b 100644
--- a/src/cmd/oldlink/internal/arm/asm.go
+++ b/src/cmd/oldlink/internal/arm/asm.go
@@ -618,15 +618,6 @@ func archreloc(ctxt *ld.Link, r *sym.Reloc, s *sym.Symbol, val int64) (int64, bo
}
r.Xsym = rs
- // ld64 for arm seems to want the symbol table to contain offset
- // into the section rather than pseudo virtual address that contains
- // the section load address.
- // we need to compensate that by removing the instruction's address
- // from addend.
- if ctxt.HeadType == objabi.Hdarwin {
- r.Xadd -= ld.Symaddr(s) + int64(r.Off)
- }
-
if r.Xadd/4 > 0x7fffff || r.Xadd/4 < -0x800000 {
ld.Errorf(s, "direct call too far %d", r.Xadd/4)
}
@@ -789,11 +780,6 @@ func asmb(ctxt *ld.Link) {
}
func asmb2(ctxt *ld.Link) {
- machlink := uint32(0)
- if ctxt.HeadType == objabi.Hdarwin {
- machlink = uint32(ld.Domacholink(ctxt))
- }
-
/* output symbol table */
ld.Symsize = 0
@@ -811,9 +797,6 @@ func asmb2(ctxt *ld.Link) {
case objabi.Hplan9:
symo = uint32(ld.Segdata.Fileoff + ld.Segdata.Filelen)
- case objabi.Hdarwin:
- symo = uint32(ld.Segdwarf.Fileoff + uint64(ld.Rnd(int64(ld.Segdwarf.Filelen), int64(*ld.FlagRound))) + uint64(machlink))
-
case objabi.Hwindows:
symo = uint32(ld.Segdwarf.Fileoff + ld.Segdwarf.Filelen)
symo = uint32(ld.Rnd(int64(symo), ld.PEFILEALIGN))
@@ -845,11 +828,6 @@ func asmb2(ctxt *ld.Link) {
case objabi.Hwindows:
// Do nothing
-
- case objabi.Hdarwin:
- if ctxt.LinkMode == ld.LinkExternal {
- ld.Machoemitreloc(ctxt)
- }
}
}
@@ -872,9 +850,6 @@ func asmb2(ctxt *ld.Link) {
objabi.Hopenbsd:
ld.Asmbelf(ctxt, int64(symo))
- case objabi.Hdarwin:
- ld.Asmbmacho(ctxt)
-
case objabi.Hwindows:
ld.Asmbpe(ctxt)
}
diff --git a/src/cmd/oldlink/internal/arm/obj.go b/src/cmd/oldlink/internal/arm/obj.go
index 1fe4b9c2c8..c423937355 100644
--- a/src/cmd/oldlink/internal/arm/obj.go
+++ b/src/cmd/oldlink/internal/arm/obj.go
@@ -100,15 +100,6 @@ func archinit(ctxt *ld.Link) {
*ld.FlagRound = 0x10000
}
- case objabi.Hdarwin: /* apple MACH */
- ld.HEADR = ld.INITIAL_MACHO_HEADR
- if *ld.FlagTextAddr == -1 {
- *ld.FlagTextAddr = 4096 + int64(ld.HEADR)
- }
- if *ld.FlagRound == -1 {
- *ld.FlagRound = 4096
- }
-
case objabi.Hwindows: /* PE executable */
// ld.HEADR, ld.FlagTextAddr, ld.FlagRound are set in ld.Peinit
return
diff --git a/src/cmd/oldlink/internal/ld/sym.go b/src/cmd/oldlink/internal/ld/sym.go
index c0f725c125..a470ddbca8 100644
--- a/src/cmd/oldlink/internal/ld/sym.go
+++ b/src/cmd/oldlink/internal/ld/sym.go
@@ -104,9 +104,6 @@ func (ctxt *Link) computeTLSOffset() {
case sys.AMD64:
ctxt.Tlsoffset = 0x30
- case sys.ARM:
- ctxt.Tlsoffset = 0 // dummy value, not needed
-
case sys.ARM64:
ctxt.Tlsoffset = 0 // dummy value, not needed
}
diff --git a/src/crypto/x509/root_darwin_test.go b/src/crypto/x509/root_darwin_test.go
index 0a1529e833..bd14d34b90 100644
--- a/src/crypto/x509/root_darwin_test.go
+++ b/src/crypto/x509/root_darwin_test.go
@@ -16,7 +16,7 @@ import (
func TestSystemRoots(t *testing.T) {
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
t.Skipf("skipping on %s/%s, no system root", runtime.GOOS, runtime.GOARCH)
}
diff --git a/src/go/build/build_test.go b/src/go/build/build_test.go
index 05ddb49920..7151ba1180 100644
--- a/src/go/build/build_test.go
+++ b/src/go/build/build_test.go
@@ -111,11 +111,8 @@ func TestMultiplePackageImport(t *testing.T) {
}
func TestLocalDirectory(t *testing.T) {
- if runtime.GOOS == "darwin" {
- switch runtime.GOARCH {
- case "arm", "arm64":
- t.Skipf("skipping on %s/%s, no valid GOROOT", runtime.GOOS, runtime.GOARCH)
- }
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
+ t.Skipf("skipping on %s/%s, no valid GOROOT", runtime.GOOS, runtime.GOARCH)
}
cwd, err := os.Getwd()
@@ -244,11 +241,8 @@ func TestMatchFile(t *testing.T) {
}
func TestImportCmd(t *testing.T) {
- if runtime.GOOS == "darwin" {
- switch runtime.GOARCH {
- case "arm", "arm64":
- t.Skipf("skipping on %s/%s, no valid GOROOT", runtime.GOOS, runtime.GOARCH)
- }
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
+ t.Skipf("skipping on %s/%s, no valid GOROOT", runtime.GOOS, runtime.GOARCH)
}
p, err := Import("cmd/internal/objfile", "", 0)
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 91ecae836a..6585855bb4 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -517,7 +517,7 @@ func listStdPkgs(goroot string) ([]string, error) {
}
func TestDependencies(t *testing.T) {
- iOS := runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64")
+ iOS := runtime.GOOS == "darwin" && runtime.GOARCH == "arm64"
if iOS {
// Tests run in a limited file system and we do not
// provide access to every source file.
diff --git a/src/go/internal/gcimporter/gcimporter_test.go b/src/go/internal/gcimporter/gcimporter_test.go
index 0ccf60aadd..663753a18a 100644
--- a/src/go/internal/gcimporter/gcimporter_test.go
+++ b/src/go/internal/gcimporter/gcimporter_test.go
@@ -26,8 +26,7 @@ import (
// import.
func skipSpecialPlatforms(t *testing.T) {
switch platform := runtime.GOOS + "-" + runtime.GOARCH; platform {
- case "darwin-arm",
- "darwin-arm64":
+ case "darwin-arm64":
t.Skipf("no compiled packages available for import on %s", platform)
}
}
diff --git a/src/internal/testenv/testenv.go b/src/internal/testenv/testenv.go
index b036aa6ebc..309b2702ed 100644
--- a/src/internal/testenv/testenv.go
+++ b/src/internal/testenv/testenv.go
@@ -46,7 +46,7 @@ func HasGoBuild() bool {
case "android", "js":
return false
case "darwin":
- if strings.HasPrefix(runtime.GOARCH, "arm") {
+ if runtime.GOARCH == "arm64" {
return false
}
}
@@ -125,7 +125,7 @@ func HasExec() bool {
case "js":
return false
case "darwin":
- if strings.HasPrefix(runtime.GOARCH, "arm") {
+ if runtime.GOARCH == "arm64" {
return false
}
}
@@ -136,7 +136,7 @@ func HasExec() bool {
func HasSrc() bool {
switch runtime.GOOS {
case "darwin":
- if strings.HasPrefix(runtime.GOARCH, "arm") {
+ if runtime.GOARCH == "arm64" {
return false
}
}
diff --git a/src/iostest.bash b/src/iostest.bash
index 1fc1666bae..5fa6744979 100755
--- a/src/iostest.bash
+++ b/src/iostest.bash
@@ -3,7 +3,7 @@
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
-# For testing darwin/arm{,64} on iOS.
+# For testing darwin/arm64 on iOS.
set -e
ulimit -c 0 # no core files
@@ -20,13 +20,10 @@ if [ "$GOOS" != "darwin" ]; then
echo "iostest.bash requires GOOS=darwin, got GOOS=$GOOS" 1>&2
exit 1
fi
-if [ "$GOARCH" != "arm" ] && [ "$GOARCH" != "arm64" ]; then
- echo "iostest.bash requires GOARCH=arm or GOARCH=arm64, got GOARCH=$GOARCH" 1>&2
+if [ "$GOARCH" != "arm64" ]; then
+ echo "iostest.bash requires GOARCH=arm64, got GOARCH=$GOARCH" 1>&2
exit 1
fi
-if [ "$GOARCH" = "arm" ]; then
- export GOARM=7
-fi
if [ "$1" = "-restart" ]; then
# Reboot to make sure previous runs do not interfere with the current run.
diff --git a/src/log/syslog/syslog_test.go b/src/log/syslog/syslog_test.go
index b2cf8df4b9..f778e965f3 100644
--- a/src/log/syslog/syslog_test.go
+++ b/src/log/syslog/syslog_test.go
@@ -53,7 +53,7 @@ func testableNetwork(network string) bool {
switch runtime.GOOS {
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
return false
}
case "android":
diff --git a/src/net/dial_test.go b/src/net/dial_test.go
index 78feaae7f4..aedf643e98 100644
--- a/src/net/dial_test.go
+++ b/src/net/dial_test.go
@@ -991,7 +991,7 @@ func TestDialerControl(t *testing.T) {
// except that it won't skip testing on non-mobile builders.
func mustHaveExternalNetwork(t *testing.T) {
t.Helper()
- mobile := runtime.GOOS == "android" || runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64")
+ mobile := runtime.GOOS == "android" || runtime.GOOS == "darwin" && runtime.GOARCH == "arm64"
if testenv.Builder() == "" || mobile {
testenv.MustHaveExternalNetwork(t)
}
diff --git a/src/net/lookup_test.go b/src/net/lookup_test.go
index 2bc5592d5a..4956037f4b 100644
--- a/src/net/lookup_test.go
+++ b/src/net/lookup_test.go
@@ -74,7 +74,7 @@ func TestLookupGoogleSRV(t *testing.T) {
t.Parallel()
mustHaveExternalNetwork(t)
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
t.Skip("no resolv.conf on iOS")
}
@@ -123,7 +123,7 @@ func TestLookupGmailMX(t *testing.T) {
t.Parallel()
mustHaveExternalNetwork(t)
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
t.Skip("no resolv.conf on iOS")
}
@@ -169,7 +169,7 @@ func TestLookupGmailNS(t *testing.T) {
t.Parallel()
mustHaveExternalNetwork(t)
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
t.Skip("no resolv.conf on iOS")
}
@@ -218,7 +218,7 @@ func TestLookupGmailTXT(t *testing.T) {
t.Parallel()
mustHaveExternalNetwork(t)
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
t.Skip("no resolv.conf on iOS")
}
@@ -637,7 +637,7 @@ func TestLookupDotsWithRemoteSource(t *testing.T) {
t.Skip("IPv4 is required")
}
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
t.Skip("no resolv.conf on iOS")
}
diff --git a/src/net/platform_test.go b/src/net/platform_test.go
index d35dfaade3..d3bb918edb 100644
--- a/src/net/platform_test.go
+++ b/src/net/platform_test.go
@@ -54,7 +54,7 @@ func testableNetwork(network string) bool {
return unixEnabledOnAIX
}
// iOS does not support unix, unixgram.
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
return false
}
case "unixpacket":
@@ -81,6 +81,10 @@ func testableNetwork(network string) bool {
return true
}
+func iOS() bool {
+ return runtime.GOOS == "darwin" && runtime.GOARCH == "arm64"
+}
+
// testableAddress reports whether address of network is testable on
// the current platform configuration.
func testableAddress(network, address string) bool {
diff --git a/src/net/timeout_test.go b/src/net/timeout_test.go
index f54c9564f9..51123dfbc4 100644
--- a/src/net/timeout_test.go
+++ b/src/net/timeout_test.go
@@ -745,7 +745,7 @@ func TestWriteTimeoutFluctuation(t *testing.T) {
defer c.Close()
d := time.Second
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if iOS() {
d = 3 * time.Second // see golang.org/issue/10775
}
max := time.NewTimer(d)
diff --git a/src/os/file.go b/src/os/file.go
index 9f8c82718b..94341f90e2 100644
--- a/src/os/file.go
+++ b/src/os/file.go
@@ -482,7 +482,7 @@ func UserHomeDir() (string, error) {
case "android":
return "/sdcard", nil
case "darwin":
- if runtime.GOARCH == "arm" || runtime.GOARCH == "arm64" {
+ if runtime.GOARCH == "arm64" {
return "/", nil
}
}
diff --git a/src/os/os_test.go b/src/os/os_test.go
index 44e1434dbe..978e99110c 100644
--- a/src/os/os_test.go
+++ b/src/os/os_test.go
@@ -54,7 +54,7 @@ var sysdir = func() *sysDir {
}
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
wd, err := syscall.Getwd()
if err != nil {
wd = err.Error()
@@ -146,7 +146,7 @@ func localTmp() string {
return TempDir()
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
return TempDir()
}
}
@@ -483,7 +483,7 @@ func TestReaddirnamesOneAtATime(t *testing.T) {
dir = "/system/bin"
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
wd, err := Getwd()
if err != nil {
t.Fatal(err)
@@ -1297,7 +1297,7 @@ func TestChdirAndGetwd(t *testing.T) {
dirs = []string{"/", "/usr"}
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
dirs = nil
for _, d := range []string{"d1", "d2"} {
dir, err := ioutil.TempDir("", d)
diff --git a/src/os/path_test.go b/src/os/path_test.go
index 6cb25bcaa7..d586daf936 100644
--- a/src/os/path_test.go
+++ b/src/os/path_test.go
@@ -109,8 +109,8 @@ func TestMkdirAllAtSlash(t *testing.T) {
t.Skipf("skipping on %s", runtime.GOOS)
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
- t.Skipf("skipping on darwin/%s, mkdir returns EPERM", runtime.GOARCH)
+ case "arm64":
+ t.Skipf("skipping on darwin/arm64, mkdir returns EPERM")
}
}
RemoveAll("/_go_os_test")
diff --git a/src/os/wait_waitid.go b/src/os/wait_waitid.go
index 946c085a50..c57bace90f 100644
--- a/src/os/wait_waitid.go
+++ b/src/os/wait_waitid.go
@@ -24,7 +24,7 @@ func (p *Process) blockUntilWaitable() (bool, error) {
// The waitid system call expects a pointer to a siginfo_t,
// which is 128 bytes on all GNU/Linux systems.
// On Darwin, it requires greater than or equal to 64 bytes
- // for darwin/{386,arm} and 104 bytes for darwin/amd64.
+ // for darwin/386 and 104 bytes for darwin/amd64.
// We don't care about the values it returns.
var siginfo [16]uint64
psig := &siginfo[0]
diff --git a/src/path/filepath/path_test.go b/src/path/filepath/path_test.go
index 2d13149f3f..d6f680556c 100644
--- a/src/path/filepath/path_test.go
+++ b/src/path/filepath/path_test.go
@@ -431,12 +431,9 @@ func chtmpdir(t *testing.T) (restore func()) {
}
func TestWalk(t *testing.T) {
- if runtime.GOOS == "darwin" {
- switch runtime.GOARCH {
- case "arm", "arm64":
- restore := chtmpdir(t)
- defer restore()
- }
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
+ restore := chtmpdir(t)
+ defer restore()
}
tmpDir, err := ioutil.TempDir("", "TestWalk")
@@ -1281,11 +1278,8 @@ func TestDriveLetterInEvalSymlinks(t *testing.T) {
}
func TestBug3486(t *testing.T) { // https://golang.org/issue/3486
- if runtime.GOOS == "darwin" {
- switch runtime.GOARCH {
- case "arm", "arm64":
- t.Skipf("skipping on %s/%s", runtime.GOOS, runtime.GOARCH)
- }
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
+ t.Skipf("skipping on %s/%s", runtime.GOOS, runtime.GOARCH)
}
root, err := filepath.EvalSymlinks(runtime.GOROOT() + "/test")
if err != nil {
diff --git a/src/runtime/cgo/cgo.go b/src/runtime/cgo/cgo.go
index 5b3c701309..c02b837978 100644
--- a/src/runtime/cgo/cgo.go
+++ b/src/runtime/cgo/cgo.go
@@ -11,8 +11,7 @@ package cgo
/*
-#cgo darwin,!arm,!arm64 LDFLAGS: -lpthread
-#cgo darwin,arm LDFLAGS: -framework CoreFoundation
+#cgo darwin,!arm64 LDFLAGS: -lpthread
#cgo darwin,arm64 LDFLAGS: -framework CoreFoundation
#cgo dragonfly LDFLAGS: -lpthread
#cgo freebsd LDFLAGS: -lpthread
diff --git a/src/runtime/cgo/gcc_darwin_arm64.c b/src/runtime/cgo/gcc_darwin_arm64.c
index e6e305789f..fd7d4084c9 100644
--- a/src/runtime/cgo/gcc_darwin_arm64.c
+++ b/src/runtime/cgo/gcc_darwin_arm64.c
@@ -94,7 +94,7 @@ threadentry(void *v)
}
// init_working_dir sets the current working directory to the app root.
-// By default darwin/arm processes start in "/".
+// By default darwin/arm64 processes start in "/".
static void
init_working_dir()
{
diff --git a/src/runtime/os_darwin.go b/src/runtime/os_darwin.go
index c11fbec0a5..01c40b4813 100644
--- a/src/runtime/os_darwin.go
+++ b/src/runtime/os_darwin.go
@@ -289,9 +289,9 @@ func mpreinit(mp *m) {
// Called to initialize a new m (including the bootstrap m).
// Called on the new thread, cannot allocate memory.
func minit() {
- // The alternate signal stack is buggy on arm and arm64.
+ // The alternate signal stack is buggy on arm64.
// The signal handler handles it directly.
- if GOARCH != "arm" && GOARCH != "arm64" {
+ if GOARCH != "arm64" {
minitSignalStack()
}
minitSignalMask()
@@ -301,9 +301,9 @@ func minit() {
// Called from dropm to undo the effect of an minit.
//go:nosplit
func unminit() {
- // The alternate signal stack is buggy on arm and arm64.
+ // The alternate signal stack is buggy on arm64.
// See minit.
- if GOARCH != "arm" && GOARCH != "arm64" {
+ if GOARCH != "arm64" {
unminitSignals()
}
}
diff --git a/src/runtime/pprof/pprof_test.go b/src/runtime/pprof/pprof_test.go
index 83b3152d68..e78f1a4938 100644
--- a/src/runtime/pprof/pprof_test.go
+++ b/src/runtime/pprof/pprof_test.go
@@ -226,7 +226,7 @@ func testCPUProfile(t *testing.T, matches matchFunc, need []string, avoid []stri
switch runtime.GOOS {
case "darwin":
switch runtime.GOARCH {
- case "arm", "arm64":
+ case "arm64":
// nothing
default:
out, err := exec.Command("uname", "-a").CombinedOutput()
diff --git a/src/runtime/signal_arm.go b/src/runtime/signal_arm.go
index 1663d913c3..e1d19244a9 100644
--- a/src/runtime/signal_arm.go
+++ b/src/runtime/signal_arm.go
@@ -63,9 +63,7 @@ func (c *sigctxt) preparePanic(sig uint32, gp *g) {
c.set_pc(uint32(funcPC(sigpanic)))
}
-// TODO(issue 35439): enabling async preemption causes failures on darwin/arm.
-// Disable for now.
-const pushCallSupported = GOOS != "darwin"
+const pushCallSupported = true
func (c *sigctxt) pushCall(targetPC uintptr) {
// Push the LR to stack, as we'll clobber it in order to
diff --git a/src/runtime/signal_unix.go b/src/runtime/signal_unix.go
index b8f27d1147..5dbfbaf4b1 100644
--- a/src/runtime/signal_unix.go
+++ b/src/runtime/signal_unix.go
@@ -350,8 +350,8 @@ func preemptM(mp *m) {
// yet, so doSigPreempt won't work.
return
}
- if GOOS == "darwin" && (GOARCH == "arm" || GOARCH == "arm64") && !iscgo {
- // On darwin, we use libc calls, and cgo is required on ARM and ARM64
+ if GOOS == "darwin" && GOARCH == "arm64" && !iscgo {
+ // On darwin, we use libc calls, and cgo is required on ARM64
// so we have TLS set up to save/restore G during C calls. If cgo is
// absent, we cannot save/restore G in TLS, and if a signal is
// received during C execution we cannot get the G. Therefore don't
@@ -1191,7 +1191,7 @@ func signalstack(s *stack) {
sigaltstack(&st, nil)
}
-// setsigsegv is used on darwin/arm{,64} to fake a segmentation fault.
+// setsigsegv is used on darwin/arm64 to fake a segmentation fault.
//
// This is exported via linkname to assembly in runtime/cgo.
//
diff --git a/src/runtime/tls_arm.s b/src/runtime/tls_arm.s
index bed7891368..e42de8deb4 100644
--- a/src/runtime/tls_arm.s
+++ b/src/runtime/tls_arm.s
@@ -17,14 +17,11 @@
// Note: both functions will clobber R0 and R11 and
// can be called from 5c ABI code.
-// On android and darwin, runtime.tls_g is a normal variable.
+// On android, runtime.tls_g is a normal variable.
// TLS offset is computed in x_cgo_inittls.
#ifdef GOOS_android
#define TLSG_IS_VARIABLE
#endif
-#ifdef GOOS_darwin
-#define TLSG_IS_VARIABLE
-#endif
// save_g saves the g register into pthread-provided
// thread-local memory, so that we can call externally compiled
diff --git a/src/runtime/vlrt.go b/src/runtime/vlrt.go
index f790d3b17f..e4d1be5d8a 100644
--- a/src/runtime/vlrt.go
+++ b/src/runtime/vlrt.go
@@ -132,7 +132,7 @@ func uint64mod(n, d uint64) uint64 {
//go:nosplit
// nosplit because division is used in syscall context in nanotime on darwin/386
-// and darwin/arm where stack splits are not allowed.
+// where stack splits are not allowed.
func int64div(n, d int64) int64 {
// Check for 32 bit operands
if int64(int32(n)) == n && int64(int32(d)) == d {
diff --git a/src/syscall/mkall.sh b/src/syscall/mkall.sh
index aa6706c82e..7e624c5a21 100755
--- a/src/syscall/mkall.sh
+++ b/src/syscall/mkall.sh
@@ -142,13 +142,6 @@ darwin_arm64)
mktypes="GOARCH=$GOARCH go tool cgo -godefs"
mkasm="go run mkasm_darwin.go"
;;
-darwin_arm)
- mkerrors="$mkerrors -m32"
- mksyscall="./mksyscall.pl -l32 -darwin"
- mksysnum="./mksysnum_darwin.pl /usr/include/sys/syscall.h"
- mktypes="GOARCH=$GOARCH go tool cgo -godefs"
- mkasm="go run mkasm_darwin.go"
- ;;
dragonfly_amd64)
mkerrors="$mkerrors -m64"
mksyscall="./mksyscall.pl -dragonfly"
diff --git a/src/syscall/syscall_unix_test.go b/src/syscall/syscall_unix_test.go
index ff47a0c81a..13b79ca8d8 100644
--- a/src/syscall/syscall_unix_test.go
+++ b/src/syscall/syscall_unix_test.go
@@ -70,7 +70,7 @@ func _() {
// Thus this test also verifies that the Flock_t structure can be
// roundtripped with F_SETLK and F_GETLK.
func TestFcntlFlock(t *testing.T) {
- if runtime.GOOS == "darwin" && (runtime.GOARCH == "arm" || runtime.GOARCH == "arm64") {
+ if runtime.GOOS == "darwin" && runtime.GOARCH == "arm64" {
t.Skip("skipping; no child processes allowed on iOS")
}
flock := syscall.Flock_t{