]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: use runtime.sysargs to parse auxv on linux/arm
authorDave Cheney <dave@cheney.net>
Sun, 11 Jan 2015 03:40:08 +0000 (03:40 +0000)
committerDave Cheney <dave@cheney.net>
Wed, 14 Jan 2015 05:08:06 +0000 (05:08 +0000)
Make auxv parsing in linux/arm less of a special case.

* rename setup_auxv to sysargs
* exclude linux/arm from vdso_none.go
* move runtime.checkarm after runtime.sysargs so arm specific
  values are properly initialised

Change-Id: I1ca7f5844ad5a162337ff061a83933fc9a2b5ff6
Reviewed-on: https://go-review.googlesource.com/2681
Reviewed-by: Minux Ma <minux@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/asm_arm.s
src/runtime/os_linux_arm.go
src/runtime/rt0_linux_arm.s
src/runtime/vdso_none.go

index fc95bb05d015a1e1572e6075d2f05517a31e07ea..f3ce1a8f17bc85b91c60208e6ca404f1a4fcdafc 100644 (file)
@@ -59,7 +59,6 @@ nocgo:
        MOVW    R0, g_stackguard0(g)
        MOVW    R0, g_stackguard1(g)
 
-       BL      runtime·checkgoarm(SB)
        BL      runtime·check(SB)
 
        // saved argc, argv
@@ -68,6 +67,7 @@ nocgo:
        MOVW    64(R13), R1
        MOVW    R1, 8(R13)
        BL      runtime·args(SB)
+       BL      runtime·checkgoarm(SB)
        BL      runtime·osinit(SB)
        BL      runtime·schedinit(SB)
 
index c1d506661c9587ddc696899701f4bacdc2509d46..d88bf785eece5e19ef7da699b22071914f6d0cd3 100644 (file)
@@ -34,8 +34,7 @@ func checkgoarm() {
        }
 }
 
-//go:nosplit
-func setup_auxv(argc int32, argv **byte) {
+func sysargs(argc int32, argv **byte) {
        // skip over argv, envv to get to auxv
        n := argc + 1
        for argv_index(argv, n) != nil {
index 5f521d24ba5a212d68800b4543598243ba73c898..15a57cbc56262707f95a5a1b80306fb58ed08abf 100644 (file)
@@ -53,9 +53,6 @@ TEXT _rt0_arm_linux1(SB),NOSPLIT,$-4
        // SWI  $0 // restore signal handler
        // ADD  $32, R13
 
-       SUB     $4, R13 // fake a stack frame for runtime·setup_auxv
-       BL      runtime·setup_auxv(SB)
-       ADD     $4, R13
        B       runtime·rt0_go(SB)
 
 TEXT bad_abi<>(SB),NOSPLIT,$-4
index 6f83ecc8950eb231d0804911691d8eb151e49af3..93bd91ca859f8aef923f45bfb73c6b9929f86054 100644 (file)
@@ -4,6 +4,7 @@
 
 // +build !linux !amd64
 // +build !linux !386
+// +build !linux !arm
 
 package runtime