]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: deflake TestNewOSProc0, fix _rt0_amd64_linux_lib stack alignment
authorSrdjan Petrovic <spetrovic@google.com>
Wed, 22 Apr 2015 18:44:46 +0000 (11:44 -0700)
committerIan Lance Taylor <iant@golang.org>
Thu, 23 Apr 2015 23:09:03 +0000 (23:09 +0000)
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>
src/runtime/norace_linux_test.go
src/runtime/rt0_linux_amd64.s

index fba3b05ffd7005ecc3f05510208aca5a8e6aca00..c355ccc0f82033d942ffc0a52c901101d134e48c 100644 (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
                        }
index cd7c55e6f5bd7f621b390524977f7dc1fb5c0d89..726b550d3568dfb36fd18f7a8dbcf95f020de3ea 100644 (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)