summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorElias Naur <elias.naur@gmail.com>2016-06-02 15:00:34 +0200
committerElias Naur <elias.naur@gmail.com>2016-06-02 14:01:47 +0000
commit6c4f8cd0d17c8147319effcffcb608fc42eaf307 (patch)
tree2431a7310ec6fe79510303e54f4108ad2768bfb0 /misc
parent42c51debe824bd9b1fd93b3d50ff7187530754d3 (diff)
downloadgo-git-6c4f8cd0d17c8147319effcffcb608fc42eaf307.tar.gz
misc/cgo/test: fix issue9400 test on android/386
The test for #9400 relies on an assembler function that manipulates the stack pointer. Meanwile, it uses a global variable for synchronization. However, position independent code on 386 use a function call to fetch the base address for global variables. That function call in turn overwrites the Go stack. Fix that by fetching the global variable address once before the stack register manipulation. Fixes the android/386 builder. Change-Id: Ib77bd80affaa12f09d582d09d8b84a73bd021b60 Reviewed-on: https://go-review.googlesource.com/23683 Run-TryBot: Elias Naur <elias.naur@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
Diffstat (limited to 'misc')
-rw-r--r--misc/cgo/test/issue9400/asm_386.s5
1 files changed, 3 insertions, 2 deletions
diff --git a/misc/cgo/test/issue9400/asm_386.s b/misc/cgo/test/issue9400/asm_386.s
index 83ca38531a..7f158b5c39 100644
--- a/misc/cgo/test/issue9400/asm_386.s
+++ b/misc/cgo/test/issue9400/asm_386.s
@@ -7,17 +7,18 @@
#include "textflag.h"
TEXT ·RewindAndSetgid(SB),NOSPLIT,$0-0
+ MOVL $·Baton(SB), BX
// Rewind stack pointer so anything that happens on the stack
// will clobber the test pattern created by the caller
ADDL $(1024 * 8), SP
// Ask signaller to setgid
- MOVL $1, ·Baton(SB)
+ MOVL $1, (BX)
// Wait for setgid completion
loop:
PAUSE
- MOVL ·Baton(SB), AX
+ MOVL (BX), AX
CMPL AX, $0
JNE loop