On 7/17/25 8:51 AM, Sam James wrote:
Zachary Santer <zsan...@gmail.com> writes:

I've applied your patch, but gcc 15.1.0 has decided that a 'struct
winsize *' not being a 'struct winsize *' is an error now.

Configuration Information [Automatically generated, do not change]:
Machine: x86_64
OS: cygwin
Compiler: gcc
Compilation CFLAGS: -Wno-error=incompatible-pointer-types
uname output: MSYS_NT-10.0-26100 Zack2021HPPavilion
3.6.3-ab81aae6.x86_64 2025-07-01 18:20 UTC x86_64 Msys
Machine Type: x86_64-pc-cygwin

Bash Version: 5.3
Patch Level: 0
Release Status: maint

Would be nice if bashbug were generated even if bash itself failed to build.

 From before I changed CFLAGS, obviously:

winsize.c: In function 'get_new_window_size':
winsize.c:98:39: error: passing argument 2 of 'tcgetwinsize' from
incompatible pointer type [-Wincompatible-pointer-types]
    98 |   if (tty >= 0 && (tcgetwinsize (tty, &win) == 0) &&
win.ws_row > 0 && win.ws_col > 0)
       |                                       ^~~~
       |                                       |
       |                                       struct winsize *
In file included from /usr/include/sys/ioctl.h:15,
                  from winsize.c:31:
/usr/include/sys/termios.h:304:42: note: expected 'struct winsize *'
but argument is of type 'struct winsize *'
   304 | int tcgetwinsize(int fd, struct winsize *winsz);

This is probably a visibility of the type issue:
https://gcc.gnu.org/PR117866.

OK. Where is `struct winsize' declared if not in termios.h or ioctl.h
(or the nest of includes for old systems)?

https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcgetwinsize.html#tag_17_609

says that if libc has tcgetwinsize(), you only need <termios.h> to get
its declaration.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://tiswww.cwru.edu/~chet/

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to