c560591408
ptrace is actually declared as a variadic function. On ppc64le the ABI requires to the caller to allocate space for the parameters and allows the caller to modify them. On ppc64le, depending on how and what version of GCC is used, it will save to parameter save area. This happened to clobber a saved LR, and caused syscall.TestExecPtrace to fail with a timeout when the tracee segfaults, and waits for the parent process to inspect. Wrap this function to avoid directly calling glibc's ptrace from go. Fixes golang/go#36698 Fixes go/92567 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/254755 |
||
---|---|---|
.. | ||
aeshash.c | ||
arch.h | ||
array.h | ||
defs.h | ||
env_posix.c | ||
go-assert.c | ||
go-assert.h | ||
go-caller.c | ||
go-callers.c | ||
go-cdiv.c | ||
go-cgo.c | ||
go-construct-map.c | ||
go-context.S | ||
go-ffi.c | ||
go-fieldtrack.c | ||
go-libmain.c | ||
go-main.c | ||
go-matherr.c | ||
go-memclr.c | ||
go-memequal.c | ||
go-nanotime.c | ||
go-nosys.c | ||
go-now.c | ||
go-reflect-call.c | ||
go-setenv.c | ||
go-signal.c | ||
go-string.h | ||
go-unsafe-pointer.c | ||
go-unsetenv.c | ||
go-unwind.c | ||
go-varargs.c | ||
panic.c | ||
print.c | ||
proc.c | ||
rtems-task-variable-add.c | ||
runtime_c.c | ||
runtime.h | ||
stack.c | ||
yield.c |