Le 25/01/2018 à 14:18, Andreas Schwab a écrit : > With glibc 2.27 the openpty function will prefer the TIOCGPTPEER ioctl. > > Signed-off-by: Andreas Schwab <sch...@suse.de> > --- > v2: handle host with old kernel headers > --- > linux-user/aarch64/termbits.h | 2 ++ > linux-user/alpha/termbits.h | 1 + > linux-user/arm/termbits.h | 1 + > linux-user/cris/termbits.h | 1 + > linux-user/hppa/termbits.h | 2 ++ > linux-user/i386/termbits.h | 1 + > linux-user/ioctls.h | 3 +++ > linux-user/m68k/termbits.h | 1 + > linux-user/microblaze/termbits.h | 1 + > linux-user/mips/termbits.h | 1 + > linux-user/nios2/termbits.h | 2 ++ > linux-user/openrisc/termbits.h | 2 ++ > linux-user/ppc/termbits.h | 1 + > linux-user/s390x/termbits.h | 1 + > linux-user/sh4/termbits.h | 1 + > linux-user/sparc/termbits.h | 1 + > linux-user/sparc64/termbits.h | 1 + > linux-user/syscall.c | 9 +++++++++ > linux-user/tilegx/termbits.h | 1 + > linux-user/x86_64/termbits.h | 1 + > 20 files changed, 34 insertions(+) > ... > diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h > index 35cad6f944..586c794639 100644 > --- a/linux-user/ioctls.h > +++ b/linux-user/ioctls.h > @@ -40,6 +40,9 @@ > IOCTL(TIOCSETD, IOC_W, MK_PTR(TYPE_INT)) > IOCTL(TIOCGPTN, IOC_R, MK_PTR(TYPE_INT)) > IOCTL(TIOCSPTLCK, IOC_W, MK_PTR(TYPE_INT)) > +#ifdef TIOCGPTPEER > + IOCTL_SPECIAL(TIOCGPTPEER, 0, do_ioctl_tiocgptpeer, TYPE_INT) > +#endif > IOCTL(FIOCLEX, 0, TYPE_NULL) > IOCTL(FIONCLEX, 0, TYPE_NULL) > IOCTL(FIOASYNC, IOC_W, MK_PTR(TYPE_INT)) ... > diff --git a/linux-user/sparc/termbits.h b/linux-user/sparc/termbits.h > index 691600d27a..98268936dc 100644 > --- a/linux-user/sparc/termbits.h > +++ b/linux-user/sparc/termbits.h > @@ -245,6 +245,7 @@ struct target_termios { > /* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */ > #define TARGET_TIOCGPTN TARGET_IOR('t', 134, unsigned int) /* Get Pty > Number */ > #define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ > +#define TARGET_TIOCGPTPEER TARGET_IO('T', 137) /* Safely open the slave > */
On sparc, it's: #define TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the slave */ > > /* Little f */ > #define TARGET_FIOCLEX TARGET_IO('f', 1) > diff --git a/linux-user/sparc64/termbits.h b/linux-user/sparc64/termbits.h > index 691600d27a..98268936dc 100644 > --- a/linux-user/sparc64/termbits.h > +++ b/linux-user/sparc64/termbits.h > @@ -245,6 +245,7 @@ struct target_termios { > /* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */ > #define TARGET_TIOCGPTN TARGET_IOR('t', 134, unsigned int) /* Get Pty > Number */ > #define TARGET_TIOCSPTLCK TARGET_IOW('t', 135, int) /* Lock/unlock PTY */ > +#define TARGET_TIOCGPTPEER TARGET_IO('T', 137) /* Safely open the slave > */ #define TIOCGPTPEER TARGET_IO('t', 137) /* Safely open the slave */ If you fix that, you can add: Reviewed-by: Laurent Vivier <laur...@vivier.eu> Thanks, Laurent