From patchwork Thu May 22 07:30:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H. Peter Anvin" X-Patchwork-Id: 112808 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 899383857B98 for ; Thu, 22 May 2025 07:33:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 899383857B98 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=zytor.com header.i=@zytor.com header.a=rsa-sha256 header.s=2025042001 header.b=XEO4q9P5 X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail.zytor.com (terminus.zytor.com [IPv6:2607:7c80:54:3::136]) by sourceware.org (Postfix) with ESMTPS id AE25D3857C67 for ; Thu, 22 May 2025 07:31:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AE25D3857C67 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=zytor.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zytor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AE25D3857C67 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:7c80:54:3::136 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1747899069; cv=none; b=P6IgQXAQZwsD1njoJR5UqA5vKRgRXLYFFyGpMawTbGgzbIyBo9sWg3xEJ74yyZVblAukVw0cedXbu+FrvoYTjLgQwKwPf5OeTnD0gpLhHVM5Q4MNFNxVM4BI98U2ShcLubjTTuCnfVLK5tm0kMUSgNxys6CZQaHsSXm1Sdujx4E= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1747899069; c=relaxed/simple; bh=32IiYAvMRrmGrD+EcJz7TtKePVkpoRjbtkhGVpdTuK0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=auRAnpMu/QgAmaaQrKuPORN7V6XT50VPFZ97MP3PmakLRiFsfuinFgRPO6vgibrnJgdDZbo025cQMB+tJpyJvG10mXikHRzFnjCyTDBc4Mqj8Kwro7lgkswcw/lHMbQ2ICCl5st1qD1ozUgS99CQ55UWaWESqSVNqYy8U4+IJFE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AE25D3857C67 Received: from mail.zytor.com ([IPv6:2601:646:8081:9485:b38f:3394:a853:2b62]) (authenticated bits=0) by mail.zytor.com (8.18.1/8.17.1) with ESMTPSA id 54M7UqY02906989 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 22 May 2025 00:30:59 -0700 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 54M7UqY02906989 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2025042001; t=1747899059; bh=iY+gRUNyyBmCQYvvujIxf1hLGyngfs2wheXqeP18HJo=; h=From:To:Cc:Subject:Date:From; b=XEO4q9P5T7iXMb3Cct80E3yWP63uzFaDzX7saR54hpsLGX7DgJHPwS0N3UUKsYarr QWVPiFEv2AHWd3vZ8IYugKC+MazIzaAmiQdnBdJJA2dp8NbzqKHit8CELF6Nxxj6U+ +aH87GVisxjGumb6D30KZ8JmEmEiDw2LelWVokMqozuGiatVfOaENEvLA6q0jPcyEK oHqhBJoWuUbtE6/HjxhYQ8+YBddBv8UTsGBdZ7SPFl7zRfg99GhnAWGgr04a00UPfU 01+Ts4aJdO6Jbhm8eq6crrd78iBwy+FkNRqHDOSGo/JzLnYSKFhn3A3kDUwxdjyJEn JVLxSsq5RkdKA== From: "H. Peter Anvin" To: libc-alpha@sourceware.org Cc: "H . Peter Anvin" , Florian Weimer , Andreas Schwab , Adhemerval Zanella Netto , Samuel Thibault Subject: [GIT PULL] termios overhaul git pull (no change from v5.2) Date: Thu, 22 May 2025 00:30:44 -0700 Message-ID: <20250522073046.1529115-1-hpa@zytor.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org Since I haven't heard anything new back, I thought I ought to rebase and prep a git pull. Perhaps we can finally close this 16-year-old bug. The following changes since commit 4052d99ead880797cf271309fd87ddd2b95bd353: manual: Use more inclusive language in comments. (2025-05-21 12:48:25 -0400) are available in the Git repository at: https://git.zytor.com/linux/glibc termios-for-2.42-250521 for you to fetch changes up to 955e0951cce02b35ddd5501eeebb18c219fbfdab: linux/termios: regression test for termios speed functions (2025-05-21 15:15:38 -0700) ---------------------------------------------------------------- H. Peter Anvin (12): termios: make __tcsetattr() the internal interface io: replace local_isatty() with a proper function __isatty_nostatus() linux/ioctls: use for sockios ioctls linux/termios/powerpc: deal with powerpc-unique ioctl emulation linux: implement arbitrary and split speeds in termios hurd/termios: remove USE_OLD_TTY termios: change the generic cfsetspeed() to support arbitrary speeds hurd+generic/termios: make speed_t an unsigned int termios: merge the termios baud definitions termios: add new baud_t interface, defined to be explicitly numeric termios: unify the naming of the termios speed fields linux/termios: regression test for termios speed functions NEWS | 4 + bits/termios-baud.h | 72 +++ bits/termios.h | 54 +- include/termios.h | 27 +- include/unistd.h | 1 + io/Makefile | 1 + .../mips/kernel_termios.h => io/isatty_nostatus.c | 36 +- libio/filedoalloc.c | 12 +- login/openpty.c | 2 +- manual/terminal.texi | 161 +++++- misc/getpass.c | 4 +- sysdeps/mach/hurd/bits/ioctls.h | 31 +- sysdeps/mach/hurd/i386/libc.abilist | 5 + sysdeps/mach/hurd/x86_64/libc.abilist | 5 + sysdeps/unix/bsd/tcsetattr.c | 6 +- sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/Versions | 7 + sysdeps/unix/sysv/linux/aarch64/libc.abilist | 10 + .../unix/sysv/linux/alpha/bits/termios-c_cflag.h | 2 + .../alpha/bits/{termios-baud.h => termios-cbaud.h} | 42 +- sysdeps/unix/sysv/linux/alpha/kernel-features.h | 11 + sysdeps/unix/sysv/linux/alpha/kernel_termios.h | 43 -- sysdeps/unix/sysv/linux/alpha/libc.abilist | 10 + sysdeps/unix/sysv/linux/arc/libc.abilist | 10 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 10 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 10 + sysdeps/unix/sysv/linux/bits/ioctls.h | 85 +-- sysdeps/unix/sysv/linux/bits/termios-c_cflag.h | 4 +- .../linux/bits/{termios-baud.h => termios-cbaud.h} | 41 +- sysdeps/unix/sysv/linux/bits/termios-struct.h | 28 +- sysdeps/unix/sysv/linux/bits/termios.h | 50 +- sysdeps/unix/sysv/linux/cfsetspeed.c | 59 ++ sysdeps/unix/sysv/linux/csky/libc.abilist | 10 + sysdeps/unix/sysv/linux/hppa/libc.abilist | 10 + sysdeps/unix/sysv/linux/i386/libc.abilist | 10 + .../linux/{mips/bits/termios-struct.h => isatty.c} | 30 +- .../bits/termios-struct.h => isatty_nostatus.c} | 28 +- sysdeps/unix/sysv/linux/kernel-features.h | 4 + sysdeps/unix/sysv/linux/kernel_termios.h | 20 +- .../unix/sysv/linux/loongarch/lp64/libc.abilist | 10 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 10 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 10 + sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 10 + sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 10 + sysdeps/unix/sysv/linux/mips/Versions | 4 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 12 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 12 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 12 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 12 + sysdeps/unix/sysv/linux/mips/old_termios.h | 12 + sysdeps/unix/sysv/linux/old_termios.h | 4 + sysdeps/unix/sysv/linux/or1k/libc.abilist | 10 + sysdeps/unix/sysv/linux/powerpc/bits/ioctls.h | 36 ++ .../unix/sysv/linux/powerpc/bits/termios-c_cflag.h | 4 +- .../bits/{termios-baud.h => termios-cbaud.h} | 42 +- sysdeps/unix/sysv/linux/powerpc/kernel_termios.h | 53 -- .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 10 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 10 + .../sysv/linux/powerpc/powerpc64/be/libc.abilist | 10 + .../sysv/linux/powerpc/powerpc64/le/libc.abilist | 10 + sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist | 10 + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 10 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 10 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 10 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 10 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 10 + sysdeps/unix/sysv/linux/sparc/Versions | 4 + .../sparc/bits/{termios-baud.h => termios-cbaud.h} | 39 +- sysdeps/unix/sysv/linux/sparc/old_termios.h | 12 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 12 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 12 + sysdeps/unix/sysv/linux/speed.c | 352 ++++++++++-- sysdeps/unix/sysv/linux/tcgetattr.c | 85 ++- sysdeps/unix/sysv/linux/tcsetattr.c | 125 +++-- sysdeps/unix/sysv/linux/termios_internals.h | 97 ++++ sysdeps/unix/sysv/linux/tst-termios-linux.c | 610 +++++++++++++++++++++ sysdeps/unix/sysv/linux/tst-termios-speed-tables.c | 86 +++ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 10 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 10 + termios/Makefile | 7 +- termios/Versions | 4 + termios/baud.c | 56 ++ .../sparc/kernel_termios.h => termios/cfsetbaud.c | 35 +- termios/cfsetspeed.c | 142 +---- termios/speed.c | 18 +- termios/sys/ttychars.h | 4 - termios/tcsetattr.c | 5 +- termios/termios.h | 19 +- 88 files changed, 2279 insertions(+), 785 deletions(-)