mirror of https://github.com/golang/go.git
runtime: disable pprof test with cgo on aix/ppc64
This commit disables new cgo pprof tests and adds an handler in sigtramp to refuse SIGPROF signal. Updates #28555 Change-Id: I152a871f8636e93328d411329104c6f023bd1691 Reviewed-on: https://go-review.googlesource.com/c/go/+/164013 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
6f7bb2cab6
commit
205d62d58b
|
|
@ -229,6 +229,9 @@ func TestCgoPanicDeadlock(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCgoCCodeSIGPROF(t *testing.T) {
|
||||
if runtime.GOOS == "aix" {
|
||||
t.Skip("pprof not yet available on AIX (see golang.org/issue/28555)")
|
||||
}
|
||||
t.Parallel()
|
||||
got := runTestProg(t, "testprogcgo", "CgoCCodeSIGPROF")
|
||||
want := "OK\n"
|
||||
|
|
|
|||
|
|
@ -312,6 +312,10 @@ func TestMapping(t *testing.T) {
|
|||
testenv.MustHaveGoRun(t)
|
||||
testenv.MustHaveCGO(t)
|
||||
|
||||
if runtime.GOOS == "aix" {
|
||||
t.Skip("pprof not yet available on AIX (see golang.org/issue/28555)")
|
||||
}
|
||||
|
||||
prog := "./testdata/mappingtest/main.go"
|
||||
|
||||
// GoOnly includes only Go symbols that runtime will symbolize.
|
||||
|
|
|
|||
|
|
@ -109,6 +109,9 @@ TEXT runtime·_sigtramp(SB),NOSPLIT|NOFRAME,$0
|
|||
|
||||
BL runtime·load_g(SB)
|
||||
|
||||
CMP $0, g
|
||||
BEQ sigtrampnog // g == nil
|
||||
|
||||
// Save m->libcall. We need to do this because we
|
||||
// might get interrupted by a signal in runtime·asmcgocall.
|
||||
|
||||
|
|
@ -155,6 +158,7 @@ TEXT runtime·_sigtramp(SB),NOSPLIT|NOFRAME,$0
|
|||
MOVD 120(R1), R8
|
||||
MOVD R8, 0(R7)
|
||||
|
||||
exit:
|
||||
// restore registers
|
||||
MOVD 56(R1),R31
|
||||
MOVD 64(R1),g
|
||||
|
|
@ -166,6 +170,19 @@ TEXT runtime·_sigtramp(SB),NOSPLIT|NOFRAME,$0
|
|||
MOVD R0, LR
|
||||
BR (LR)
|
||||
|
||||
sigtrampnog:
|
||||
// Signal arrived on a non-Go thread.
|
||||
// SIGPROF handler is not yet available so simply call badsignal,
|
||||
// after having created *sigctxt.
|
||||
MOVD R4, 80(R1)
|
||||
MOVD R5, 88(R1)
|
||||
MOVD R1, R4
|
||||
ADD $80, R4
|
||||
MOVD R4, FIXED_FRAME+8(R1)
|
||||
MOVD R3, FIXED_FRAME+0(R1)
|
||||
BL runtime·badsignal(SB)
|
||||
JMP exit
|
||||
|
||||
// runtime.tstart is a function descriptor to the real tstart.
|
||||
DATA runtime·tstart+0(SB)/8, $runtime·_tstart(SB)
|
||||
DATA runtime·tstart+8(SB)/8, $TOC(SB)
|
||||
|
|
|
|||
Loading…
Reference in New Issue