[comp.os.minix] Re : upgrading ST 1.5.10.4

breure%itihp2@pucc.princeton.edu (Frank Breure) (06/06/91)

I had some more problems upgrading St-minix to 1.5.10.4:

The file other/syslib.c is broken, it wil give a lot of compilation error's
I patched it by removing the include of <minix/type.h>, this is already done
in <lib.h> and the type sighandler_t is'nt defined anywhere so I uncommented
the old parameter declaration:
original:
*** syslib.c.org        Sun Jun  2 16:18:59 1991
--- syslib.c    Sun Jun  2 16:15:30 1991
***************
*** 1,6 ****
  #include <lib.h>
  #include <minix/com.h>
! #include <minix/type.h>

  /*----------------------------------------------------------------------------
                Messages to systask (special calls)
--- 1,6 ----
  #include <lib.h>
  #include <minix/com.h>
! /* #include <minix/type.h> is already included in <lib.h> */

  /*----------------------------------------------------------------------------
                Messages to systask (special calls)
***************
*** 40,47 ****
  PUBLIC void sys_sig(proc, sig, sighandler)
  int proc;                     /* which proc has exited */
  int sig;                      /* signal number: 1 - 16 */
! /*void (*sighandler) ();*/    /* pointer to signal handler in user space */
! sighandler_t sighandler;
  {
  /* A proc has to be signaled.  Tell the kernel. */

--- 40,47 ----
  PUBLIC void sys_sig(proc, sig, sighandler)
  int proc;                     /* which proc has exited */
  int sig;                      /* signal number: 1 - 16 */
! void (*sighandler) ();                /* pointer to signal handler in user spa
   ce */
! /* sighandler_t sighandler;*/
  {
  /* A proc has to be signaled.  Tell the kernel. */

So I turned back two changes that were done from 1.5.10.3 to 1.5.10.4.


There are also problems with stprint.c in the kernel directory!
Because there is no define of DEV_WRITE anywhere in the system, I simply
removed one line from stprint.c to make it work.
*** stprint.c.org       Sun Jun  2 16:22:53 1991
--- stprint.c   Sat Jun  1 17:25:07 1991
***************
*** 73,79 ****
    while (TRUE) {
        receive(ANY, &m);
        switch(m.m_type) {
!           case DEV_WRITE:     do_write(&m);   break;
            case CANCEL   :     do_cancel(&m);  break;
            case HARD_INT :     do_done(&m);    break;
            default:            reply(TASK_REPLY, m.m_source, m.PROC_NR,
--- 73,79 ----
    while (TRUE) {
        receive(ANY, &m);
        switch(m.m_type) {
!           /* case DEV_WRITE:  do_write(&m);   break; */
            case CANCEL   :     do_cancel(&m);  break;
            case HARD_INT :     do_done(&m);    break;
            default:            reply(TASK_REPLY, m.m_source, m.PROC_NR,

There is also a problem in fs/glo.h:
*** /users/src/fs/glo.h.org     Thu Jun  6 00:29:53 1991
--- /users/src/fs/glo.h Wed Jun  5 19:21:13 1991
***************
*** 26,32 ****
  EXTERN int rdwt_err;          /* status of last disk i/o request */

  /* Data which needs initialization. */
! typedef unsigned short u16_t; /* belongs in h/type.h */
  extern u16_t data_org[INFO + 2];/* origin and sizes of init */
                                /* belongs in h/build.h */
  extern int (*call_vector[])();        /* table of system calls handled by FS *
   /
--- 26,32 ----
  EXTERN int rdwt_err;          /* status of last disk i/o request */

  /* Data which needs initialization. */
! /* typedef unsigned short u16_t;      /* belongs in h/type.h */
  extern u16_t data_org[INFO + 2];/* origin and sizes of init */
                                /* belongs in h/build.h */
  extern int (*call_vector[])();        /* table of system calls handled by FS *
   /
the 'typedef  unsigned short u16_t ; ' is already done in <sys/types.h>,
the typedef there is equivalent: ACK and C68 handle this different:
- ACK gives an error (and produces no output file);
- C68 gives no warnings or messages;
Is there a correct definition how a C compiler should handle this !

I was able to compile a running kernel using the ACK compiler! but
it is not completely tested yet.

I still have problems with the system I build with C68, after mounting
my two Minix partitions I get a kernel panic 'trap via vector 2'....
(this is still in the /etc/rc script, before you are asked to input
the date).
I do have a running 1.5.10.3 kernel compiled with C68 so wonder what
could have changed that makes this difference (should I look in one
of the assembly files, or is it because I'm currently using c68 patchevel 3
instead of patchlevel 2??.
My systems is: St1040, with root FS on hd3, no Ram-disk and 126k cache!

NOTE:   the cdiffs I included are only to show where I've had problems, and
        how they "could" be fixed, they aren't very sophisticated and
        non-official of course.

--
Frank Breure                                    (breure@itihp1.tno.nl)
TNO Institute of Applied Computer Science       Delft, The Netherlands
----------------------------------------------------------------------
My opinions may be subject to change without notice.