diff options
Diffstat (limited to 'pkgs/tools/misc/expect/fix-darwin-bsd-clang16.patch')
-rw-r--r-- | pkgs/tools/misc/expect/fix-darwin-bsd-clang16.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/pkgs/tools/misc/expect/fix-darwin-bsd-clang16.patch b/pkgs/tools/misc/expect/fix-darwin-bsd-clang16.patch new file mode 100644 index 0000000000000..a0e11a5f9d6bc --- /dev/null +++ b/pkgs/tools/misc/expect/fix-darwin-bsd-clang16.patch @@ -0,0 +1,36 @@ +diff -ur a/exp_win.c b/exp_win.c +--- a/exp_win.c 2018-02-02 14:15:52.000000000 -0500 ++++ b/exp_win.c 2023-10-10 07:47:33.082690432 -0400 +@@ -39,7 +39,8 @@ + /* Sigh. On AIX 2.3, termios.h exists but does not define TIOCGWINSZ */ + /* Instead, it has to come from ioctl.h. However, As I said above, this */ + /* can't be cavalierly included on all machines, even when it exists. */ +-#if defined(HAVE_TERMIOS) && !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H) ++/* Darwin also has termios.h, but it requires ioctl.h for `ioctl`. */ ++#if defined(HAVE_TERMIOS) && (defined(__APPLE__) || !defined(HAVE_TIOCGWINSZ_IN_TERMIOS_H)) + # include <sys/ioctl.h> + #endif + +diff -ur d/pty_termios.c c/pty_termios.c +--- d/pty_termios.c 2023-10-10 07:59:23.244452442 -0400 ++++ c/pty_termios.c 2023-10-10 08:00:35.303231582 -0400 +@@ -7,7 +7,18 @@ + + */ + +-#include <pty.h> /* openpty */ ++/* openpty */ ++#if defined(__APPLE__) ++# include <util.h> ++#elif defined(__FreeBSD__) ++# include <sys/types.h> ++# include <sys/ioctl.h> ++# include <termios.h> ++# include <libutil.h> ++#else /* pty.h is Linux-specific */ ++# include <pty.h> ++#endif ++ + #include <stdio.h> + #include <signal.h> + |