Repository navigation
unix: add O_CLOFORK and related constants, support it in Dup3 - #266
ricardobranco777 wants to merge 1 commit into
Conversation
|
This PR (HEAD: fadb71b) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/sys/+/730240. Important tips:
|
|
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/730240. |
|
Message from Gopher Robot: Patch Set 1: Congratulations on opening your first change. Thank you for your contribution! Next steps: Most changes in the Go project go through a few rounds of revision. This can be During May-July and Nov-Jan the Go project is in a code freeze, during which Please don’t reply on this GitHub thread. Visit golang.org/cl/730240. |
|
Message from Florian Lehner: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/730240. |
fadb71b to
79a631b
Compare
|
This PR (HEAD: 79a631b) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/sys/+/730240. Important tips:
|
POSIX.1-2024 adds close-on-fork: O_CLOFORK, FD_CLOFORK, F_DUPFD_CLOFORK, SOCK_CLOFORK and MSG_CMSG_CLOFORK. Add them, along with the system-specific F_DUP2FD_CLOFORK, F_DUP3FD and F_DUP3FD_SHIFT, on the systems that implement them: FreeBSD 15.0, NetBSD 11.0, OpenBSD 7.8, DragonFly BSD and illumos. The zerrors files were edited by hand. mkerrors.sh already matches these prefixes, so no generator change is needed. Regenerating would require running each new release on every architecture and would pull in many unrelated changes. The values were taken from these sources, and are the same on every architecture of an OS: FreeBSD release/15.0.0 sys/sys/fcntl.h, sys/sys/socket.h NetBSD netbsd-11 sys/sys/fcntl.h, sys/sys/socket.h OpenBSD 42a7be81bef7 sys/sys/fcntl.h, sys/sys/socket.h DragonFly dea249a60d18 sys/sys/fcntl.h, sys/sys/socket.h illumos 3581f14f537c uts/common/sys/fcntl.h, socket.h The OpenBSD commit is the one that added close-on-fork, ahead of 7.8. On FreeBSD and DragonFly, libc implements dup3 with F_DUP3FD and the flags shifted by F_DUP3FD_SHIFT. Do the same in Dup3 when O_CLOFORK is requested. Keep using F_DUP2FD and F_DUP2FD_CLOEXEC otherwise, so Dup3 keeps working on kernels without F_DUP3FD. Signed-off-by: Ricardo Branco <rbranco@suse.de>
79a631b to
a8bfa09
Compare
|
This PR (HEAD: a8bfa09) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/sys/+/730240. Important tips:
|
POSIX.1-2024 adds close-on-fork: O_CLOFORK, FD_CLOFORK,
F_DUPFD_CLOFORK, SOCK_CLOFORK and MSG_CMSG_CLOFORK. Add them, along
with the system-specific F_DUP2FD_CLOFORK, F_DUP3FD and F_DUP3FD_SHIFT,
on the systems that implement them: FreeBSD 15.0, NetBSD 11.0,
OpenBSD 7.8, DragonFly BSD and illumos.
The zerrors files were edited by hand. mkerrors.sh already matches
these prefixes, so no generator change is needed. Regenerating would
require running each new release on every architecture and would pull
in many unrelated changes. The values were taken from these sources,
and are the same on every architecture of an OS:
The OpenBSD commit is the one that added close-on-fork, ahead of 7.8.
On FreeBSD and DragonFly, libc implements dup3 with F_DUP3FD and the
flags shifted by F_DUP3FD_SHIFT. Do the same in Dup3 when O_CLOFORK is
requested. Keep using F_DUP2FD and F_DUP2FD_CLOEXEC otherwise, so Dup3
keeps working on kernels without F_DUP3FD.