← Commit list

430ba79c3

Jeremie Koenig
Jeremie Koenig
2010-07-30
FAILED Duration: 38s

Subject

cttyhack: serial console detection is Linux-specific

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

shell/cttyhack.c+12 -3
@@ -13,7 +13,6 @@
//config:config CTTYHACK
//config: bool "cttyhack"
//config: default y
-//config: depends on PLATFORM_LINUX
//config: help
//config: One common problem reported on the mailing list is "can't access tty;
//config: job control turned off" error message which typically appears when
@@ -59,6 +58,10 @@
//usage: "\nStarting interactive shell from boot shell script:"
//usage: "\n setsid cttyhack sh"
+#if !defined(__linux__) && !defined(TIOCGSERIAL)
+# warning cttyhack will not be able to detect a controlling tty on this system
+#endif
+
/* From <linux/vt.h> */
struct vt_stat {
unsigned short v_active; /* active vt */
@@ -112,13 +115,19 @@ int cttyhack_main(int argc UNUSED_PARAM, char **argv)
close(fd);
} else {
/* We don't have ctty (or don't have "/dev/tty" node...) */
- if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) {
+ if (0) {}
+#ifdef TIOCGSERIAL
+ else if (ioctl(0, TIOCGSERIAL, &u.sr) == 0) {
/* this is a serial console */
sprintf(console + 8, "S%d", u.sr.line);
- } else if (ioctl(0, VT_GETSTATE, &u.vt) == 0) {
+ }
+#endif
+#ifdef __linux__
+ else if (ioctl(0, VT_GETSTATE, &u.vt) == 0) {
/* this is linux virtual tty */
sprintf(console + 8, "S%d" + 1, u.vt.v_active);
}
+#endif
if (console[8]) {
fd = xopen(console, O_RDWR);
//bb_error_msg("switching to '%s'", console);