On 3 Aug 2021, at 19:19, Konstantin Belousov <k...@freebsd.org> wrote:
> 
> The branch main has been updated by kib:
> 
> URL: 
> https://cgit.FreeBSD.org/src/commit/?id=49ad342cc10cba14b3a40ba26cf8bb2150e2925a
> 
> commit 49ad342cc10cba14b3a40ba26cf8bb2150e2925a
> Author:     Konstantin Belousov <k...@freebsd.org>
> AuthorDate: 2021-08-02 09:50:32 +0000
> Commit:     Konstantin Belousov <k...@freebsd.org>
> CommitDate: 2021-08-03 18:19:32 +0000
> 
>    Add _Fork()
> 
>    Current POSIX standard requires fork() to be async-signal safe.  Neither
>    our implementation, nor implementations in other operating systems are,
>    and practically it is impossible to make fork() async-signal safe without
>    too much efforts.  Also, that would put undue requirement that all atfork
>    handlers should be async-signal safe as well, which contradicts its main
>    use.
> 
>    As result, Austin Group dropped the requirement, and added a new function
>    _Fork() that should be async-signal safe, but it does not call atfork
>    handlers.  Basically, _Fork() can be implemented as a raw syscall.
> 
>    Release of glibc 2.34 added _Fork(), do the same for FreeBSD.
>    Clarify threading behavior for fork() in the manpage.
> 
>    Reviewed by:    markj
>    Sponsored by:   The FreeBSD Foundation
>    MFC after:      2 weeks
>    Differential revision:  https://reviews.freebsd.org/D31378

This breaks the build on case-insensitive filesystems like macOS has,
since _Fork.o for this C file and _fork.o for __sys_fork and _fork
conflict, leading to either build failures (because _fork.o gets
replaced and __sys_fork is undefined) or silently not including _Fork
(because _Fork.o gets replaced) in the library, with it being
non-deterministic based on whichever order the files happen to be built
in, and potentially varying between the three different libraries as
the .o, .pico and .nossppico files are independent.

Jess

_______________________________________________
dev-commits-src-main@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-main
To unsubscribe, send any mail to "dev-commits-src-main-unsubscr...@freebsd.org"

Reply via email to