Some suggestions from "Waqar Mohsin" <wmohsin@gmail.com>
[pintos-anon] / src / misc / bochs-2.1.1.patch
index 0c233169c5feb6769b89d517ac6d7129ce0171f6..3d542f6a8e287a99e81e2f70c936c7fba0a66b46 100644 (file)
@@ -19,7 +19,7 @@ project documentation, in which timer interrupts are delivered at
 random intervals.
 
 To apply all the patches, cd into the Bochs directory, then type
 random intervals.
 
 To apply all the patches, cd into the Bochs directory, then type
-       patch -p1 < ~/pintos/src/misc/bochs-2.1.1.patch
+       patch -p1 < $PINTOSROOT/src/misc/bochs-2.1.1.patch
 You will have to supply the proper path to the patch, of course.  You
 can provide the --dry-run option to patch if you want to test whether
 the patch would apply cleanly before actually patching.
 You will have to supply the proper path to the patch, of course.  You
 can provide the --dry-run option to patch if you want to test whether
 the patch would apply cleanly before actually patching.
@@ -29,10 +29,33 @@ unwanted patches, then follow the above instructions.
 
 Here's a ./configure invocation for Bochs that works optimally with
 the `pintos' utility:
 
 Here's a ./configure invocation for Bochs that works optimally with
 the `pintos' utility:
-       ./configure --enable-4meg-pages --with-x --with-x11 --with-term --with-nogui
+       ./configure --with-x --with-x11 --with-term --with-nogui
 If you want the gdb stub, add --enable-gdb-stub
 If you want the internal debugger, add --enable-debugger
 
 If you want the gdb stub, add --enable-gdb-stub
 If you want the internal debugger, add --enable-debugger
 
+Here are the commands used to build and install all the versions of
+Bochs we make available on the elaines:
+
+cd /tmp && tar xzf ~/bochs-2.1.1.tar.gz && cd bochs-2.1.1
+patch -p1 < $PINTOSROOT/src/misc/bochs-2.1.1.patch
+PREFIX="/usr/class/cs140/`uname -m`"
+CFGOPTS="--with-x --with-x11 --with-term --with-nogui --prefix=$PREFIX"
+(mkdir plain &&
+ cd plain && 
+ ../configure $CFGOPTS && 
+ make && 
+ make install)
+(mkdir with-gdb &&
+ cd with-gdb &&
+ ../configure --enable-gdb-stub $CFGOPTS &&
+ make &&
+ cp bochs $PREFIX/bin/bochs-gdb)
+(mkdir with-dbg &&
+ cd with-dbg &&
+ ../configure --enable-debugger $CFGOPTS &&
+ make &&
+ cp bochs $PREFIX/bin/bochs-dbg)
+
 diff -urp orig/bochs-2.1.1/Makefile.in bochs-2.1.1/Makefile.in
 --- orig/bochs-2.1.1/Makefile.in       2004-02-11 14:28:02.000000000 -0800
 +++ bochs-2.1.1/Makefile.in    2004-09-13 15:05:26.281550000 -0700
 diff -urp orig/bochs-2.1.1/Makefile.in bochs-2.1.1/Makefile.in
 --- orig/bochs-2.1.1/Makefile.in       2004-02-11 14:28:02.000000000 -0800
 +++ bochs-2.1.1/Makefile.in    2004-09-13 15:05:26.281550000 -0700
@@ -140,9 +163,9 @@ diff -urp orig/bochs-2.1.1/gdbstub.cc bochs-2.1.1/gdbstub.cc
              put_reply(obuf);
              break;
 
              put_reply(obuf);
              break;
 
-diff -u tmp/bochs-2.1.1/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
---- tmp/bochs-2.1.1/iodev/serial.cc    2004-02-11 14:28:54.000001000 -0800
-+++ bochs-2.1.1/iodev/serial.cc        2004-09-14 23:02:04.000001000 -0700
+diff -urp bochs-2.1.1-upstream/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
+--- tmp/bochs-2.1.1/iodev/serial.cc    2004-02-11 14:28:54.000000000 -0800
++++ bochs-2.1.1/iodev/serial.cc        2005-06-01 20:26:01.000000000 -0700
 @@ -53,7 +53,7 @@
  #endif
  #endif
 @@ -53,7 +53,7 @@
  #endif
  #endif
@@ -152,7 +175,12 @@ diff -u tmp/bochs-2.1.1/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
  #define SERIAL_ENABLE
  #endif
  
  #define SERIAL_ENABLE
  #endif
  
-@@ -122,6 +122,7 @@
+@@ -118,10 +118,11 @@ bx_serial_c::init(void)
+ #ifdef SERIAL_ENABLE
+   if (strlen(bx_options.com[0].Odev->getptr ()) > 0) {
+-    tty_id = open(bx_options.com[0].Odev->getptr (), O_RDWR|O_NONBLOCK,600);
++    tty_id = open(bx_options.com[0].Odev->getptr (), O_RDWR,600);
      if (tty_id < 0)
        BX_PANIC(("open of %s (%s) failed\n",
                  "com1", bx_options.com[0].Odev->getptr ()));
      if (tty_id < 0)
        BX_PANIC(("open of %s (%s) failed\n",
                  "com1", bx_options.com[0].Odev->getptr ()));
@@ -160,7 +188,7 @@ diff -u tmp/bochs-2.1.1/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
      BX_DEBUG(("tty_id: %d",tty_id));
      tcgetattr(tty_id, &term_orig);
      bcopy((caddr_t) &term_orig, (caddr_t) &term_new, sizeof(struct termios));
      BX_DEBUG(("tty_id: %d",tty_id));
      tcgetattr(tty_id, &term_orig);
      bcopy((caddr_t) &term_orig, (caddr_t) &term_new, sizeof(struct termios));
-@@ -145,6 +146,7 @@
+@@ -145,6 +148,7 @@ bx_serial_c::init(void)
      term_new.c_cc[VTIME] = 0;
      //term_new.c_iflag |= IXOFF;
      tcsetattr(tty_id, TCSAFLUSH, &term_new);
      term_new.c_cc[VTIME] = 0;
      //term_new.c_iflag |= IXOFF;
      tcsetattr(tty_id, TCSAFLUSH, &term_new);
@@ -168,6 +196,15 @@ diff -u tmp/bochs-2.1.1/iodev/serial.cc bochs-2.1.1/iodev/serial.cc
    }
  #endif   /* def SERIAL_ENABLE */
    // nothing for now
    }
  #endif   /* def SERIAL_ENABLE */
    // nothing for now
+@@ -955,7 +968,7 @@ bx_serial_c::rx_timer(void)
+     }
+     if (rdy) {
+       chbuf = data;
+-#elif defined(SERIAL_ENABLE)
++#elif 0 && defined(SERIAL_ENABLE)
+     if ((tty_id >= 0) && (select(tty_id + 1, &fds, NULL, NULL, &tval) == 1)) {
+       (void) read(tty_id, &chbuf, 1);
+       BX_DEBUG(("read: '%c'",chbuf));
 
 diff -urp bochs-2.1.1.orig/bochs.h bochs-2.1.1/bochs.h
 --- bochs-2.1.1.orig/bochs.h   2004-02-11 14:28:03.000000000 -0800
 
 diff -urp bochs-2.1.1.orig/bochs.h bochs-2.1.1/bochs.h
 --- bochs-2.1.1.orig/bochs.h   2004-02-11 14:28:03.000000000 -0800