]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: add //go:cgo_unsafe_args to AIX syscallX functions
authorClément Chigot <clement.chigot@atos.net>
Fri, 12 Apr 2019 12:23:13 +0000 (14:23 +0200)
committerIan Lance Taylor <iant@golang.org>
Fri, 12 Apr 2019 17:01:51 +0000 (17:01 +0000)
On AIX, syscallX functions are using the first argument to retrieve the
next arguments when calling asmcgocall. Therefore,//go:cgo_unsafe_args
is needed.

Change-Id: I7fe0fbf0c961250a6573c66a8b0eb897dff94bfe
Reviewed-on: https://go-review.googlesource.com/c/go/+/171723
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/os2_aix.go

index 2ec32feb9c3c6c2228df3e10f9b54da2bacbba6b..47cb1290fe9b1aa3edbc19c266a35daef6ae8cab 100644 (file)
@@ -215,6 +215,7 @@ func syscall1(fn *libFunc, a0 uintptr) (r, err uintptr) {
 
 //go:nowritebarrier
 //go:nosplit
+//go:cgo_unsafe_args
 func syscall2(fn *libFunc, a0, a1 uintptr) (r, err uintptr) {
        gp := getg()
        mp := gp.m
@@ -245,6 +246,7 @@ func syscall2(fn *libFunc, a0, a1 uintptr) (r, err uintptr) {
 
 //go:nowritebarrier
 //go:nosplit
+//go:cgo_unsafe_args
 func syscall3(fn *libFunc, a0, a1, a2 uintptr) (r, err uintptr) {
        gp := getg()
        mp := gp.m
@@ -275,6 +277,7 @@ func syscall3(fn *libFunc, a0, a1, a2 uintptr) (r, err uintptr) {
 
 //go:nowritebarrier
 //go:nosplit
+//go:cgo_unsafe_args
 func syscall4(fn *libFunc, a0, a1, a2, a3 uintptr) (r, err uintptr) {
        gp := getg()
        mp := gp.m
@@ -305,6 +308,7 @@ func syscall4(fn *libFunc, a0, a1, a2, a3 uintptr) (r, err uintptr) {
 
 //go:nowritebarrier
 //go:nosplit
+//go:cgo_unsafe_args
 func syscall5(fn *libFunc, a0, a1, a2, a3, a4 uintptr) (r, err uintptr) {
        gp := getg()
        mp := gp.m
@@ -335,6 +339,7 @@ func syscall5(fn *libFunc, a0, a1, a2, a3, a4 uintptr) (r, err uintptr) {
 
 //go:nowritebarrier
 //go:nosplit
+//go:cgo_unsafe_args
 func syscall6(fn *libFunc, a0, a1, a2, a3, a4, a5 uintptr) (r, err uintptr) {
        gp := getg()
        mp := gp.m