Hi Carlos, On 12/13/22 03:53, Carlos O'Donell wrote:
On 12/9/22 14:49, Alejandro Colomar wrote:Hi Jack, On 12/2/22 23:44, Jack Pearson wrote:Document that Linux will report EINVAL when exit_signal is specified and either CLONE_THREAD or CLONE_PARENT is specified. From clone3_args_valid in Linux: ``` if ((kargs->flags & (CLONE_THREAD | CLONE_PARENT)) && kargs->exit_signal) return false; ``` I have verified that this happens on my kernel with a small program, and that this doesn't happen with normal `clone` through the glibc helper.Could you please also send a test program with the glibc wrapper? BTW, glibc has a clone3(2) wrapper since last year. It would be interesting to document it instead of the raw syscall.glibc does not have a clone3 wrapper. glibc has an internal non-exported __clone3 interface that we use for pthreads, and likely soon for posix_spawn. We have not yet chosen to export clone3 as a public global symbol that developers can use.
Ahh, thanks, I saw the following and thought that you had added it as a public wrapper.
commit 5adb0e14a5cc9e011e58a7aaf193b598ecbd7b07 Author: H.J. Lu <hjl.tools@xxxxxxxxx> Date: Wed May 12 11:02:47 2021 -0700 i386: Add the clone3 wrapper extern int clone3 (struct clone_args *__cl_args, size_t __size, int (*__func) (void *__arg), void *__arg); Reviewed-by: Carlos O'Donell <carlos@xxxxxxxxxx> Thanks! Alex
-- <http://www.alejandro-colomar.es/>
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature