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>
MOVW R0, g_stackguard0(g)
MOVW R0, g_stackguard1(g)
- BL runtime·checkgoarm(SB)
BL runtime·check(SB)
// saved argc, argv
MOVW 64(R13), R1
MOVW R1, 8(R13)
BL runtime·args(SB)
+ BL runtime·checkgoarm(SB)
BL runtime·osinit(SB)
BL runtime·schedinit(SB)
}
}
-//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 {
// 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
// +build !linux !amd64
// +build !linux !386
+// +build !linux !arm
package runtime