runtime: deflake TestNewOSProc0, fix _rt0_amd64_linux_lib stack alignment

This addresses iant's comments from CL 9164.

Change-Id: I7b5b282f61b11aab587402c2d302697e76666376
Reviewed-on: https://go-review.googlesource.com/9222
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Srdjan Petrovic 2015-04-22 11:44:46 -07:00 committed by Ian Lance Taylor
parent ed09e0e2bf
commit 1f65c9c141
2 changed files with 7 additions and 3 deletions

View File

@ -21,6 +21,8 @@ func newOSProcCreated() {
newOSProcDone = true
}
// Can't be run with -race because it inserts calls into newOSProcCreated()
// that require a valid G/M.
func TestNewOSProc0(t *testing.T) {
if runtime.GOOS == "android" && runtime.GOARCH == "arm" {
// newosproc0 does not work for android/arm.
@ -28,10 +30,12 @@ func TestNewOSProc0(t *testing.T) {
t.Skipf("skipping on %v", runtime.GOOS)
}
runtime.NewOSProc0(0x800000, unsafe.Pointer(runtime.FuncPC(newOSProcCreated)))
check, end := time.Tick(1*time.Second), time.Tick(5*time.Second)
check := time.NewTicker(1 * time.Second)
defer check.Stop()
end := time.After(5 * time.Second)
for {
select {
case <-check:
case <-check.C:
if newOSProcDone {
return
}

View File

@ -12,7 +12,7 @@ TEXT _rt0_amd64_linux(SB),NOSPLIT,$-8
// When building with -buildmode=c-shared, this symbol is called when the shared
// library is loaded.
TEXT _rt0_amd64_linux_lib(SB),NOSPLIT,$0x40
TEXT _rt0_amd64_linux_lib(SB),NOSPLIT,$0x48
MOVQ BX, 0x10(SP)
MOVQ BP, 0x18(SP)
MOVQ R12, 0x20(SP)