diff --git a/src/runtime/crash_cgo_test.go b/src/runtime/crash_cgo_test.go index 98c4c1c0d45..5cfcf5ab1f5 100644 --- a/src/runtime/crash_cgo_test.go +++ b/src/runtime/crash_cgo_test.go @@ -9,6 +9,7 @@ package runtime_test import ( "runtime" "strings" + "syscall" "testing" ) @@ -52,8 +53,20 @@ func TestCgoExternalThreadPanic(t *testing.T) { func TestCgoExternalThreadSIGPROF(t *testing.T) { // issue 9456. - if runtime.GOOS == "plan9" || runtime.GOOS == "windows" { + switch runtime.GOOS { + case "plan9", "windows": t.Skipf("no pthreads on %s", runtime.GOOS) + case "darwin": + // static constructor needs external linking, but we don't support + // external linking on OS X 10.6. + osver, err := syscall.Sysctl("kern.osrelease") + if err != nil { + t.Fatalf("Sysctl(kern.osrelease) failed: %v", err) + } + // OS X 10.6 == Darwin 10.x + if strings.HasPrefix(osver, "10.") { + t.Skipf("no external linking on OS X 10.6") + } } got := executeTest(t, cgoExternalThreadSIGPROFSource, nil) want := "OK\n"