--- origsrc/util-linux-2.40.2/term-utils/agetty.c 2024-07-04 00:54:41.396241100 -0700 +++ src/util-linux-2.40.2/term-utils/agetty.c 2024-10-24 21:24:07.465151300 -0700 @@ -83,7 +83,7 @@ #ifdef __linux__ # include # define USE_SYSLOG -#elif defined(__GNU__) +#elif defined(__GNU__) || defined(__CYGWIN__) # define USE_SYSLOG #endif @@ -1029,7 +1029,9 @@ static void update_utmp(struct options * ut.ut_tv.tv_sec = t; ut.ut_type = LOGIN_PROCESS; ut.ut_pid = pid; +#ifndef __CYGWIN__ ut.ut_session = sid; +#endif pututxline(&ut); endutxent(); @@ -1101,8 +1103,12 @@ static void open_tty(const char *tty, st if (op->flags & F_HANGUP) { +#ifdef TIOCNOTTY if (ioctl(fd, TIOCNOTTY)) debug("TIOCNOTTY ioctl failed\n"); +#else + setsid(); +#endif /* * Let's close all file descriptors before vhangup @@ -2349,11 +2355,11 @@ static void termio_final(struct options tp->c_cc[VQUIT] = DEF_QUIT; tp->c_cc[VEOF] = DEF_EOF; tp->c_cc[VEOL] = DEF_EOL; -#ifdef __linux__ +#if defined(__linux__) || defined(__CYGWIN__) tp->c_cc[VSWTC] = DEF_SWITCH; #elif defined(VSWTCH) tp->c_cc[VSWTCH] = DEF_SWITCH; -#endif /* __linux__ */ +#endif /* __linux__ || __CYGWIN__ */ /* Account for special characters seen in input. */ if (cp->eol == CR) {