https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92567

Paul E. Murphy <murphyp at linux dot vnet.ibm.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |murphyp at linux dot 
vnet.ibm.com

--- Comment #1 from Paul E. Murphy <murphyp at linux dot vnet.ibm.com> ---
So, this turns out to be an ABI violation of how ptrace() is called, and maybe
a documentation bug.  ptrace is actually implemented as a variadic function in
glibc which takes exactly 4 arguments, and this is not clear from the
documentation.

The golang code does not seem to allocate the parameter save space required
(2.2.2.3 of the ppc64 elfv2-1.4), and the space where golang saves the link
register gets stomped, and the forked process faults waiting for the tracer.

Newer versions of GCC seem to compile ptrace without needing to spill into the
parameter save space, so in many cases this issue is invisible.

Reply via email to