powerpc64: Add the clone3 wrapper
commit16e424a325bc8ece973e4ef4758f12f15355ec57
authorAdhemerval Zanella Netto <adhemerval.zanella@linaro.org>
Fri, 3 Feb 2023 17:12:33 +0000 (3 14:12 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 9 Feb 2023 10:49:25 +0000 (9 07:49 -0300)
treebda02e0831131ef76a5c37aa84524e0a774f4634
parentfb95c316382679c0826cc8399760977cd95f15c9
powerpc64: Add the clone3 wrapper

It follows the internal signature:

  extern int clone3 (struct clone_args *__cl_args, size_t __size,
 int (*__func) (void *__arg), void *__arg);

The powerpc64 ABI requires an initial stackframe so the child can
store/restore the TOC.  It is create prior calling clone3 by
adjusting the stack size (since kernel will compute the stack as
stack plus size).

Checked on powerpc64-linux-gnu (power8, kernel 6.0) and
powerpc64le-linux-gnu (power9, kernel 4.18).
Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
sysdeps/unix/sysv/linux/powerpc/powerpc64/clone3.S [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/sysdep.h