FreeBSD, OpenBSD, and Linux (/dev/ptmx) do all intialisation in open(2), and grantpt(3) is a no-op (that checks whether the fd is a pty, except on musl). The illumos gate and NetBSD do a ioctl (and, indeed, illumos-gate commit facf4a8d7b59fde89a8662b4f4c73a758e6c402c ("PSARC/2003/246 Filesystem Driven Device Naming"), which kills pt_chmod, notes that it's been "6464196 bfu should remove pt_chmod, obsoleted by /dev filesystem"). glibc 2.33 completely kills BSD PTY support on Linux (Debian hasn't configured with them on any architecture since 2007: https://bugs.debian.org/338404 and even earlier on some arches; they're really just trivia under Linux ‒ this may be better served stuffed into HISTORY as an explainer for the SIGCHLD thing, since regardless of the "version", the behaviour is well-defined and consistent). Cc: Jakub Wilk <jwilk@xxxxxxxxx> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx> --- I read it but didn't really understand what you were saying, since you're on record as a text‒text‒text liker. You can trivially continue the lines with \c like the below, but "no-op, with permissions ... on Linux, or an ioctl(2)." would probably also work just as well, and I leave that to your editorial sensibilities. man3/grantpt.3 | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/man3/grantpt.3 b/man3/grantpt.3 index a19172a3e..363a7aebd 100644 --- a/man3/grantpt.3 +++ b/man3/grantpt.3 @@ -84,17 +84,15 @@ .SH ATTRIBUTES .ad .sp 1 .SH VERSIONS -Many systems implement this function via a set-user-ID helper binary +Historical systems implemented this function via a set-user-ID helper binary called "pt_chown". -On Linux systems with a devpts filesystem (present since Linux 2.2), -the kernel normally sets the correct ownership and permissions -for the pseudoterminal slave when the master is opened -.RB ( posix_openpt (3)), -so that nothing must be done by -.BR grantpt (). -Thus, no such helper binary is required -(and indeed it is configured to be absent during the -glibc build that is typical on many systems). +glibc on Linux before glibc 2.33 could do so as well, +in order to support configurations with only BSD pseudoterminals; +this support has been removed. +On modern systems this is either a no-op\c +\[em]with permissions configured on pty allotion, as is the case on Linux\[em]\c +or an +.BR ioctl (2). .SH STANDARDS POSIX.1-2008. .SH HISTORY -- 2.39.2
Attachment:
signature.asc
Description: PGP signature