libc posix_spawn(): explain why rtld can be used after fork

Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2024-03-06 09:24:22 +02:00
parent f8bbbce458
commit 2ce23b1f76

View file

@ -325,6 +325,11 @@ do_posix_spawn(pid_t *pid, const char *path,
* ideal vfork(2) if we get an EINVAL from rfork -- this should only
* happen with newer libc on older kernel that doesn't accept
* RFSPAWN.
*
* Combination of vfork() (or its equivalent rfork() form) and
* a special property of the libthr rtld locks ensure that
* rtld is operational in the child. In particular, libthr
* rtld locks do not store owner' tid into the lock word.
*/
#ifdef _RFORK_THREAD_STACK_SIZE
/*