|
From: | GNU bug Tracking System |
Subject: | bug#49524: closed (28.0.50; make-serial-process is not portable) |
Date: | Tue, 13 Jul 2021 13:13:02 +0000 |
Your message dated Tue, 13 Jul 2021 09:11:12 -0400 with message-id <25a83b24-fa7a-f0f7-a105-2596e48ca9a7@cornell.edu> and subject line Re: bug#49524: 28.0.50; make-serial-process is not portable has caused the debbugs.gnu.org bug report #49524, regarding 28.0.50; make-serial-process is not portable to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs@gnu.org.) -- 49524: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49524 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems
--- Begin Message ---Subject: 28.0.50; make-serial-process is not portable Date: Sun, 11 Jul 2021 11:24:58 -0400 Fmake_serial_process calls Fserial_process_configure, which calls serial_configure, which calls cfsetspeed with the speed argument equal to the numerical baud rate (e.g., 9600). But the documentation of cfsetspeed says that the speed argument must be one of the Bnnn constants defined in termios.h (e.g., B9600). See, for example, User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 https://man7.org/linux/man-pages/man3/termios.3.htmlThis incorrect call of cfsetspeed happens to succeed on GNU/Linux because glibc's cfsetspeed allows the argument to be the numerical baud rate, which it converts to the appropriate Bnnn constant. But I don't think emacs should be relying on this undocumented behavior. In particular, this doesn't work on Cygwin. And it wouldn't even work on GNU/Linux if emacs used the cfsetspeed replacement defined in sysdep.c instead of glibc's cfsetspeed.I think the way to fix this is to imitate the glibc code that converts the baud rate to a Bnnn constant, but maybe someone has a better idea.By the way, I came across this issue while investigating the failure of process-tests/fd-setsize-no-crash/make-serial-process on Cygwin.
--- End Message ---
--- Begin Message ---Subject: Re: bug#49524: 28.0.50; make-serial-process is not portable Date: Tue, 13 Jul 2021 09:11:12 -0400 User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 On 7/13/2021 7:19 AM, Eli Zaretskii wrote:From: Ken Brown <kbrown@cornell.edu> Cc: 49524@debbugs.gnu.org Date: Mon, 12 Jul 2021 17:35:40 -0400 So I should probably remove the reference to non-glibc platforms in my commit message.Yes, something to the effect of compliance with advertised APIs would probably be better.Done. Closing.
--- End Message ---
[Prev in Thread] | Current Thread | [Next in Thread] |