From aeed0081c47374eab414d73e03ed2eab4723ac9f Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 30 May 2006 20:27:07 +0000 Subject: [PATCH] Add patch to support serial terminals under Solaris. --- src/misc/bochs-2.2.6-build.sh | 3 +- ...s.patch => bochs-2.2.6-solaris-link.patch} | 0 src/misc/bochs-2.2.6-solaris-tty.patch | 31 +++++++++++++++++++ src/misc/bochs-2.2.6.README | 10 ++++-- 4 files changed, 41 insertions(+), 3 deletions(-) rename src/misc/{bochs-2.2.6-solaris.patch => bochs-2.2.6-solaris-link.patch} (100%) create mode 100644 src/misc/bochs-2.2.6-solaris-tty.patch diff --git a/src/misc/bochs-2.2.6-build.sh b/src/misc/bochs-2.2.6-build.sh index 5b09991..2878fbd 100755 --- a/src/misc/bochs-2.2.6-build.sh +++ b/src/misc/bochs-2.2.6-build.sh @@ -18,8 +18,9 @@ cat $PINTOSDIR/src/misc/bochs-2.2.6-ms-extensions.patch | patch -p1 cat $PINTOSDIR/src/misc/bochs-2.2.6-big-endian.patch | patch -p1 cat $PINTOSDIR/src/misc/bochs-2.2.6-jitter.patch | patch -p1 cat $PINTOSDIR/src/misc/bochs-2.2.6-triple-fault.patch | patch -p1 +cat $PINTOSDIR/src/misc/bochs-2.2.6-solaris-tty.patch | patch -p1 if test "`uname -s`" = "SunOS"; then - cat $PINTOSDIR/src/misc/bochs-2.2.6-solaris.patch | patch -p1 + cat $PINTOSDIR/src/misc/bochs-2.2.6-solaris-link.patch | patch -p1 fi CFGOPTS="--with-x --with-x11 --with-term --with-nogui --prefix=$DSTDIR" mkdir plain && diff --git a/src/misc/bochs-2.2.6-solaris.patch b/src/misc/bochs-2.2.6-solaris-link.patch similarity index 100% rename from src/misc/bochs-2.2.6-solaris.patch rename to src/misc/bochs-2.2.6-solaris-link.patch diff --git a/src/misc/bochs-2.2.6-solaris-tty.patch b/src/misc/bochs-2.2.6-solaris-tty.patch new file mode 100644 index 0000000..a9725dc --- /dev/null +++ b/src/misc/bochs-2.2.6-solaris-tty.patch @@ -0,0 +1,31 @@ +--- bochs-2.2.6/iodev/serial.cc 2005-07-11 09:24:47.000000000 -0700 ++++ bochs-2.2.6.patch/iodev/serial.cc 2006-05-28 16:41:33.278938000 -0700 +@@ -245,8 +245,13 @@ + BX_SER_THIS s[i].io_mode = BX_SER_MODE_TERM; + BX_DEBUG(("com%d tty_id: %d", i+1, BX_SER_THIS s[i].tty_id)); + tcgetattr(BX_SER_THIS s[i].tty_id, &BX_SER_THIS s[i].term_orig); +- bcopy((caddr_t) &BX_SER_THIS s[i].term_orig, (caddr_t) &BX_SER_THIS s[i].term_new, sizeof(struct termios)); +- cfmakeraw(&BX_SER_THIS s[i].term_new); ++ memcpy((caddr_t) &BX_SER_THIS s[i].term_new, (caddr_t) &BX_SER_THIS s[i].term_orig, sizeof(struct termios)); ++ BX_SER_THIS s[i].term_new.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP ++ |INLCR|IGNCR|ICRNL|IXON); ++ BX_SER_THIS s[i].term_new.c_oflag &= ~OPOST; ++ BX_SER_THIS s[i].term_new.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); ++ BX_SER_THIS s[i].term_new.c_cflag &= ~(CSIZE|PARENB); ++ BX_SER_THIS s[i].term_new.c_cflag |= CS8; + BX_SER_THIS s[i].term_new.c_oflag |= OPOST | ONLCR; // Enable NL to CR-NL translation + #ifndef TRUE_CTLC + // ctl-C will exit Bochs, or trap to the debugger + + +--- bochs-2.2.6/iodev/serial.h 2005-07-10 09:51:09.000000000 -0700 ++++ bochs-2.2.6.patch/iodev/serial.h 2006-05-28 16:39:03.757839000 -0700 +@@ -40,7 +40,7 @@ + #define SERIAL_ENABLE + #endif + +-#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__APPLE__) ++#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) || defined(__APPLE__) || defined(__sun__) + #define SERIAL_ENABLE + extern "C" { + #include diff --git a/src/misc/bochs-2.2.6.README b/src/misc/bochs-2.2.6.README index 1224dd7..301a39c 100644 --- a/src/misc/bochs-2.2.6.README +++ b/src/misc/bochs-2.2.6.README @@ -22,7 +22,12 @@ patches for this version of Bochs are included: Needed for Bochs to compile with GCC on some hosts. Probably harmless elsewhere. - bochs-2.2.6-solaris.patch + bochs-2.2.6-solaris-tty.patch + + Needed for Bochs to compile in terminal support on Solaris + hosts. Probably harmless elsewhere. + + bochs-2.2.6-solaris-link.patch Needed on Solaris hosts. Do not apply it elsewhere. @@ -31,7 +36,8 @@ To apply all the patches, cd into the Bochs directory, then type patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-jitter.patch patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-triple-fault.patch patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-ms-extensions.patch - patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris.patch + patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-tty.patch + patch -p1 < $PINTOSDIR/src/misc/bochs-2.2.6-solaris-link.patch You will have to supply the proper $PINTOSDIR, of course. You can use patch's --dry-run option if you want to test whether the patches would apply cleanly before trying to apply them. -- 2.30.2