This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] getpt: use /dev/pts/ptmx as default ptmx master
- From: Christian Brauner <christian dot brauner at canonical dot com>
- To: Zack Weinberg <zackw at panix dot com>
- Cc: Christian Brauner <christian dot brauner at ubuntu dot com>, ebiederm at xmission dot com, GNU C Library <libc-alpha at sourceware dot org>
- Date: Thu, 15 Mar 2018 15:10:47 +0100
- Subject: Re: [PATCH] getpt: use /dev/pts/ptmx as default ptmx master
- References: <20180315120651.14107-1-christian.brauner@ubuntu.com> <CAKCAbMjcEM-Wev77C6qPH=PmtWtE5C_o94E0O2e6c_oBUvif5A@mail.gmail.com>
On Thu, Mar 15, 2018 at 10:02:56AM -0400, Zack Weinberg wrote:
> On Thu, Mar 15, 2018 at 8:06 AM, Christian Brauner
> <christian.brauner@ubuntu.com> wrote:
> > For a long time now Linux has placed the ptmx character device directly
> > under the devpts mount at /dev/pts/ptmx.
>
> Exactly which kernel version started doing this?
The article about the patch is here.
https://lwn.net/Articles/689539/
>
> > It is time to start switching to using /dev/pts/ptmx and use /dev/ptmx as a
> > fallback only.
>
> Application code is entitled to do open ('/dev/ptmx", O_RDWR) itself
> rather than calling posix_openpt. It is not OK to break those
> applications. That was the recommended practice prior to the
> introduction of posix_openpt, and I am suspicious of posix_openpt not
> existing on still-reasonable portability targets.
>
> Since /dev/ptmx must stick around for the sake of those applications,
> I am inclined to say that libc's posix_openpt should continue using
> /dev/ptmx as well, in order to ensure that that configuration
> continues to be tested. I am also inclined to say that, on new
> kernels where the devpts filesystem provides the ptmx node, using a
> bind-mount rather than a symlink for /dev/ptmx is a misconfiguration
> (and on older kernels, obviously it needs to be an actual device
> node).
Neither the kernel nor this patch breaks userspace applications. Maybe
I'm being dense but what argument supports this assumption?
This patch extends __posix_openpt() to try and open(/dev/pts/ptmx) first
and if it fails for any reason retry with open(/dev/ptmx).
Christian