emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#49524: closed (28.0.50; make-serial-process is not portable)


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 User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 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,

  https://man7.org/linux/man-pages/man3/termios.3.html

This 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 ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]