From: "Trevor Gross" <tg@trevorgross.com>
To: "Florian Weimer" <fweimer@redhat.com>, "Rich Felker" <dalias@libc.org>
Cc: "Trevor Gross" <tg@trevorgross.com>,
"Alejandro Colomar" <alx@kernel.org>, <linux-man@vger.kernel.org>,
<libc-alpha@sourceware.org>, <musl@lists.openwall.com>
Subject: Re: [musl] [PATCH 2/2] man/man2/fork.2: Document glibc and musl relaxed fork->exec AS requirements
Date: Fri, 02 Oct 2026 01:50:22 -0500 [thread overview]
Message-ID: <DLU5IDY7FCX4.OWYMCXDOF2R5@trevorgross.com> (raw)
In-Reply-To: <lhuqzihxg1d.fsf@oldenburg.str.redhat.com>
On Fri Sep 25, 2026 at 2:54 PM CDT, Florian Weimer wrote:
> * Rich Felker:
>
>>> +On glibc and musl libc, this is relaxed;
>>> +it is safe to call non-async-signal-safe functions in the time between
>>> +.BR fork ()
>>> +and
>>> +.BR exec ()
>>> +\&.
>
>> While glibc has taken measures to make this mostly work, especially
>> malloc-after-fork, I don't think glibc has an intentional model for
>> ensuring that arbitrary libc functions work right in the child of a
>> multithreaded fork. Before accepting such a man page patch, we should
>> at least get an official position from glibc on whether they claim
>> this property or at least aim for it.
>
> Far from everything in glibc is fork-protected, so the statement is not
> true today as far as glibc is concerned. We try to maintain
> compatibility with existing application requirements, but the precise
> goals have not been written down.
Would the following be more accurate?
On glibc and musl libc, this is relaxed. With musl environments, it
is safe to call non-async-signal-safe functions in the time between
fork() and exec(). With glibc environments, some functions that are
not AS-safe may be called between fork() and exec() may be safe to
call; however, there is no exact list maintained.
Open to better wording as well, I'm not sure sure how best to express
the glibc case - if that's worth it at all.
Rich, is this reasonable to document for musl? It is a rather helpful
property even if not portable, but I'm not sure whether it is more of an
implementation detail for improved compatibility vs. something musl is
comfortable with users relying on.
- Trevor
next prev parent reply other threads:[~2026-10-02 6:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 0:53 async-signal-safety of chroot tg
2026-09-23 1:34 ` [musl] " Rich Felker
2026-09-23 4:17 ` John Scott
2026-09-23 4:40 ` [musl] " Rich Felker
2026-09-23 8:38 ` Florian Weimer
2026-09-23 23:21 ` Trevor Gross
2026-09-24 0:34 ` Trevor Gross
2026-09-24 2:12 ` [musl] " Rich Felker
2026-09-24 9:21 ` Florian Weimer
2026-09-23 23:38 ` [PATCH 1/2] man/man2/chroot.2: Document that chroot is AS-safe Trevor Gross
2026-09-23 23:38 ` [PATCH 2/2] man/man2/fork.2: Document glibc and musl relaxed fork->exec AS requirements Trevor Gross
2026-09-23 23:47 ` [musl] " Rich Felker
2026-09-25 19:54 ` Florian Weimer
2026-10-02 6:50 ` Trevor Gross [this message]
2026-10-03 20:48 ` Gabriel Ravier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DLU5IDY7FCX4.OWYMCXDOF2R5@trevorgross.com \
--to=tg@trevorgross.com \
--cc=alx@kernel.org \
--cc=dalias@libc.org \
--cc=fweimer@redhat.com \
--cc=libc-alpha@sourceware.org \
--cc=linux-man@vger.kernel.org \
--cc=musl@lists.openwall.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox