MH-6.8.4-JP-3.05をCentOS4.3付属のgcc3.4.6でコンパイル

できた!
なんでまた…、というのは俺も思うけどしゃーないのです。

http://media.laic.u-hyogo.ac.jp/~hayashi/internet/mh-plus.html
http://www.jp.freebsd.org/cgi/cvsweb.cgi/ports/japanese/mh/files/

varargs.h → stdarg.h とか
errno.h の extern int errno; とか。

以下、パッチ。

diff -cr mh-6.8.4-JP-3.05/conf/config/mts.c mh-6.8.4-JP-3.05_PATCHED/conf/config/mts.c
*** mh-6.8.4-JP-3.05/conf/config/mts.c  2001-04-02 22:36:26.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/conf/config/mts.c  2006-10-18 02:11:41.000000000 +0900
***************
*** 33,42 ****

  #define       NULLCP  ((char *) 0)

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;

  static char   *tailor_value ();

--- 33,39 ----
diff -cr mh-6.8.4-JP-3.05/h/mh.h mh-6.8.4-JP-3.05_PATCHED/h/mh.h
*** mh-6.8.4-JP-3.05/h/mh.h     1998-12-02 02:05:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/h/mh.h     2006-10-18 02:08:36.000000000 +0900
***************
*** 253,259 ****
  int     atooi ();
  char  **brkstring ();
  void  closefds ();
! char   *concat ();
  char   *copy ();
  char  **copyip ();
  void  cpydata ();
--- 253,259 ----
  int     atooi ();
  char  **brkstring ();
  void  closefds ();
! char   *concat (char *, ...);
  char   *copy ();
  char  **copyip ();
  void  cpydata ();
diff -cr mh-6.8.4-JP-3.05/h/strings.h mh-6.8.4-JP-3.05_PATCHED/h/strings.h
*** mh-6.8.4-JP-3.05/h/strings.h        2001-04-02 19:35:24.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/h/strings.h        2006-10-18 02:29:52.000000000 +0900
***************
*** 24,30 ****
  #define       rindex  strrchr
  #endif /* SYS5 */

! #if defined(BSD42) || defined(SVR4) || defined(hpux) || defined(__osf__)
  #if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44)
  #include <strings.h>
  #else
--- 24,30 ----
  #define       rindex  strrchr
  #endif /* SYS5 */

! #if defined(BSD42) || defined(SVR4) || defined(hpux) || defined(__osf__) || defined(linux)
  #if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44)
  #include <strings.h>
  #else
***************
*** 55,61 ****
  char   *strncpy ();
  #endif

! #if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44)
  char   *getenv ();
  char   *calloc (), *malloc (), *realloc ();
  #endif        /* SVR4 */
--- 55,61 ----
  char   *strncpy ();
  #endif

! #if !defined(SVR4) && !defined(__386BSD__) && !defined(BSD44) && !defined(linux)
  char   *getenv ();
  char   *calloc (), *malloc (), *realloc ();
  #endif        /* SVR4 */
diff -cr mh-6.8.4-JP-3.05/sbr/advertise.c mh-6.8.4-JP-3.05_PATCHED/sbr/advertise.c
*** mh-6.8.4-JP-3.05/sbr/advertise.c    2001-04-03 04:27:52.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/advertise.c    2006-10-18 02:12:54.000000000 +0900
***************
*** 15,31 ****
     output...  More importantly though, it's a sexy syscall()...
   */

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)      /* in <stdio.h> */
  extern int  sys_nerr;
  extern char *sys_errlist[];
  #endif
- #ifdef __NetBSD__ /* XXX */
- #include <errno.h>
- #endif

  /*
      */

--- 15,25 ----
diff -cr mh-6.8.4-JP-3.05/sbr/concat.c mh-6.8.4-JP-3.05_PATCHED/sbr/concat.c
*** mh-6.8.4-JP-3.05/sbr/concat.c       1993-12-01 13:01:21.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/concat.c       2006-10-18 02:08:49.000000000 +0900
***************
*** 2,14 ****

  #include "../h/mh.h"
  #include <stdio.h>
! #include <varargs.h>


  /* VARARGS */

! char   *concat (va_alist)
! va_dcl
  {
      register char  *cp,
                     *dp,
--- 2,13 ----

  #include "../h/mh.h"
  #include <stdio.h>
! #include <stdarg.h>


  /* VARARGS */

! char   *concat (char *first, ...)
  {
      register char  *cp,
                     *dp,
***************
*** 17,35 ****
      register    va_list list;

      len = 1;
!     va_start (list);
!     while (cp = va_arg (list, char *))
!       len += strlen (cp);
!     va_end (list);

      dp = sp = malloc (len);
      if (dp == NULL)
        adios (NULLCP, "unable to allocate string storage");

!     va_start (list);
!     while (cp = va_arg (list, char *))
!       sp = copy (cp, sp);
!     va_end (list);

      return dp;
  }
--- 16,41 ----
      register    va_list list;

      len = 1;
!     if (first) {
!           len += strlen (first);
!           va_start (list, first);
!           while (cp = va_arg (list, char *))
!                   len += strlen (cp);
!           va_end (list);
!     }

      dp = sp = malloc (len);
      if (dp == NULL)
        adios (NULLCP, "unable to allocate string storage");

!     *sp = '\0';
!     if (first) {
!           sp = copy (first, sp);
!           va_start (list, first);
!           while (cp = va_arg (list, char *))
!                   sp = copy (cp, sp);
!           va_end (list);
!     }

      return dp;
  }
diff -cr mh-6.8.4-JP-3.05/sbr/makedir.c mh-6.8.4-JP-3.05_PATCHED/sbr/makedir.c
*** mh-6.8.4-JP-3.05/sbr/makedir.c      2001-04-02 19:42:20.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/makedir.c      2006-10-18 02:13:56.000000000 +0900
***************
*** 29,36 ****
  #include <unistd.h>
  #endif

- extern int  errno;
-
  makedir (dir)
  register char *dir;
  {
--- 29,34 ----
diff -cr mh-6.8.4-JP-3.05/sbr/m_draft.c mh-6.8.4-JP-3.05_PATCHED/sbr/m_draft.c
*** mh-6.8.4-JP-3.05/sbr/m_draft.c      1993-12-01 13:01:23.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/m_draft.c      2006-10-18 02:13:12.000000000 +0900
***************
*** 10,16 ****
  #include <sys/stat.h>


- extern int errno;


  char   *m_draft (folder, msg, use, isdf)
--- 10,15 ----
diff -cr mh-6.8.4-JP-3.05/sbr/m_getdefs.c mh-6.8.4-JP-3.05_PATCHED/sbr/m_getdefs.c
*** mh-6.8.4-JP-3.05/sbr/m_getdefs.c    2001-04-05 01:05:15.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/m_getdefs.c    2006-10-18 02:13:26.000000000 +0900
***************
*** 14,20 ****
  #include <pwd.h>


- extern int errno;

  #ifndef __STDC__
  #ifdef        SYS5
--- 14,19 ----
diff -cr mh-6.8.4-JP-3.05/sbr/ruserpass.c mh-6.8.4-JP-3.05_PATCHED/sbr/ruserpass.c
*** mh-6.8.4-JP-3.05/sbr/ruserpass.c    1998-12-02 02:05:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/sbr/ruserpass.c    2006-10-18 02:14:27.000000000 +0900
***************
*** 66,72 ****
        char myname[MAXHOSTNAMELEN], *mydomain;
        int t, i, c, usedefault = 0;
        struct stat stb;
-       extern int errno;

        hdir = getenv("HOME");
        if (hdir == NULL)
--- 66,71 ----
diff -cr mh-6.8.4-JP-3.05/support/bboards/mmdfII/bboards/lock.c mh-6.8.4-JP-3.05_PATCHED/support/bboards/mmdfII/bboards/lock.c
*** mh-6.8.4-JP-3.05/support/bboards/mmdfII/bboards/lock.c      2001-04-03 16:22:46.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/support/bboards/mmdfII/bboards/lock.c      2006-10-18 02:15:15.000000000 +0900
***************
*** 77,86 ****
  #define       FLOCK           /* LOCKF will override this, if defined */
  #endif

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;

  #ifdef        LOCKONLY
  #ifndef       MMDFONLY
--- 77,83 ----
diff -cr mh-6.8.4-JP-3.05/support/pop/mmdfII/pop/lock.c mh-6.8.4-JP-3.05_PATCHED/support/pop/mmdfII/pop/lock.c
*** mh-6.8.4-JP-3.05/support/pop/mmdfII/pop/lock.c      2001-04-03 16:22:46.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/support/pop/mmdfII/pop/lock.c      2006-10-18 02:15:15.000000000 +0900
***************
*** 77,86 ****
  #define       FLOCK           /* LOCKF will override this, if defined */
  #endif

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;

  #ifdef        LOCKONLY
  #ifndef       MMDFONLY
--- 77,83 ----
diff -cr mh-6.8.4-JP-3.05/support/pop/popwrd.c mh-6.8.4-JP-3.05_PATCHED/support/pop/popwrd.c
*** mh-6.8.4-JP-3.05/support/pop/popwrd.c       1999-02-09 20:30:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/support/pop/popwrd.c       2006-10-18 02:16:37.000000000 +0900
***************
*** 24,30 ****
  static char  temp[] = "ptmp";
  static char  home[BUFSIZ];

- extern int errno;

  char   *crypt (), *getpass (), *tail ();
  time_t        time ();
--- 24,29 ----
diff -cr mh-6.8.4-JP-3.05/uip/annosbr.c mh-6.8.4-JP-3.05_PATCHED/uip/annosbr.c
*** mh-6.8.4-JP-3.05/uip/annosbr.c      2001-04-02 21:03:43.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/annosbr.c      2006-10-18 02:17:11.000000000 +0900
***************
*** 11,17 ****
  #include <sys/stat.h>


- extern int  errno;
  off_t lseek ();
  static annosbr();

--- 11,16 ----
diff -cr mh-6.8.4-JP-3.05/uip/bbc.c mh-6.8.4-JP-3.05_PATCHED/uip/bbc.c
*** mh-6.8.4-JP-3.05/uip/bbc.c  1998-12-02 02:05:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/bbc.c  2006-10-18 02:17:26.000000000 +0900
***************
*** 112,118 ****

  /*
      */

- extern int  errno;

  static int  changed = 0;
  static int  oops = 0;
--- 112,117 ----
diff -cr mh-6.8.4-JP-3.05/uip/dropsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/dropsbr.c
*** mh-6.8.4-JP-3.05/uip/dropsbr.c      1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/dropsbr.c      2006-10-18 02:17:38.000000000 +0900
***************
*** 33,39 ****

  static int    mbx_create(), mbx_chk(), map_open();

- extern int  errno;

  off_t   lseek ();

--- 33,38 ----
diff -cr mh-6.8.4-JP-3.05/uip/folder.c mh-6.8.4-JP-3.05_PATCHED/uip/folder.c
*** mh-6.8.4-JP-3.05/uip/folder.c       2001-04-02 19:35:24.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/folder.c       2006-10-18 02:17:46.000000000 +0900
***************
*** 74,80 ****

  /*
      */

- extern int errno;

  static int  fshort = 0;
  static int  fcreat = 0;
--- 74,79 ----
diff -cr mh-6.8.4-JP-3.05/uip/ftpsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/ftpsbr.c
*** mh-6.8.4-JP-3.05/uip/ftpsbr.c       2001-04-02 19:49:08.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/ftpsbr.c       2006-10-18 02:18:23.000000000 +0900
***************
*** 66,75 ****

  /*
      */

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern        int     errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern        int     sys_nerr;
  extern        char   *sys_errlist[];
--- 66,72 ----
diff -cr mh-6.8.4-JP-3.05/uip/inc.c mh-6.8.4-JP-3.05_PATCHED/uip/inc.c
*** mh-6.8.4-JP-3.05/uip/inc.c  2001-04-05 01:05:16.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/inc.c  2006-10-18 02:18:34.000000000 +0900
***************
*** 142,148 ****

  /*
      */

- extern int  errno;

  #ifdef        POP
  int  snoop = 0;
--- 142,147 ----
diff -cr mh-6.8.4-JP-3.05/uip/mhn.c mh-6.8.4-JP-3.05_PATCHED/uip/mhn.c
*** mh-6.8.4-JP-3.05/uip/mhn.c  2001-08-30 11:57:33.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/mhn.c  2006-10-18 02:18:45.000000000 +0900
***************
*** 219,225 ****
  static        char   *tmp;


- extern        int     errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern        int     sys_nerr;
  extern        char   *sys_errlist[];
--- 219,224 ----
diff -cr mh-6.8.4-JP-3.05/uip/mshcmds.c mh-6.8.4-JP-3.05_PATCHED/uip/mshcmds.c
*** mh-6.8.4-JP-3.05/uip/mshcmds.c      2001-04-03 01:40:58.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/mshcmds.c      2006-10-18 02:19:10.000000000 +0900
***************
*** 29,35 ****

  /*
      */

- extern int errno;

                                /* BURST */
  static char delim3[] = "-------";/* from burst.c */
--- 29,34 ----
***************
*** 3529,3535 ****
      (void) strcpy (tmpfil, m_scratch ("", invo_name));
      if ((out = fopen (tmpfil, "w")) == NULL) {
        int     olderr;
-       extern int  errno;
        char    newfil[80];

        olderr = errno;
--- 3528,3533 ----
diff -cr mh-6.8.4-JP-3.05/uip/packf.c mh-6.8.4-JP-3.05_PATCHED/uip/packf.c
*** mh-6.8.4-JP-3.05/uip/packf.c        1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/packf.c        2006-10-18 02:19:19.000000000 +0900
***************
*** 27,33 ****

  /*
      */

- extern int errno;


  static int  md = NOTOK;
--- 27,32 ----
diff -cr mh-6.8.4-JP-3.05/uip/popi.c mh-6.8.4-JP-3.05_PATCHED/uip/popi.c
*** mh-6.8.4-JP-3.05/uip/popi.c 1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/popi.c 2006-10-18 02:19:29.000000000 +0900
***************
*** 100,106 ****

  static        struct msgs *mp;

- extern        int     errno;

  extern        char    response[];

--- 100,105 ----
diff -cr mh-6.8.4-JP-3.05/uip/popsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/popsbr.c
*** mh-6.8.4-JP-3.05/uip/popsbr.c       2001-04-02 19:50:01.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/popsbr.c       2006-10-18 02:19:41.000000000 +0900
***************
*** 27,36 ****
  #define       TRM     "."
  #define       TRMLEN  (sizeof TRM - 1)

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 27,33 ----
diff -cr mh-6.8.4-JP-3.05/uip/prompter.c mh-6.8.4-JP-3.05_PATCHED/uip/prompter.c
*** mh-6.8.4-JP-3.05/uip/prompter.c     1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/prompter.c     2006-10-18 02:19:52.000000000 +0900
***************
*** 68,74 ****

  /*
      */

- extern int  errno;


  #ifndef       SYS5
--- 68,73 ----
diff -cr mh-6.8.4-JP-3.05/uip/pshsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/pshsbr.c
*** mh-6.8.4-JP-3.05/uip/pshsbr.c       2001-04-02 19:50:24.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/pshsbr.c       2006-10-18 02:20:01.000000000 +0900
***************
*** 27,36 ****
  #define       TRM     "."
  #define       TRMLEN  (sizeof TRM - 1)

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 27,33 ----
diff -cr mh-6.8.4-JP-3.05/uip/rcvstore.c mh-6.8.4-JP-3.05_PATCHED/uip/rcvstore.c
*** mh-6.8.4-JP-3.05/uip/rcvstore.c     1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/rcvstore.c     2006-10-18 02:20:17.000000000 +0900
***************
*** 43,49 ****

  /*
      */

- extern int  errno;

  static char *tmpfilenam = NULLCP;
  /*
      */
--- 43,48 ----
diff -cr mh-6.8.4-JP-3.05/uip/refile.c mh-6.8.4-JP-3.05_PATCHED/uip/refile.c
*** mh-6.8.4-JP-3.05/uip/refile.c       1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/refile.c       2006-10-18 02:20:23.000000000 +0900
***************
*** 47,53 ****

  /*
      */

- extern int  errno;


  static char maildir[BUFSIZ];
--- 47,52 ----
diff -cr mh-6.8.4-JP-3.05/uip/replsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/replsbr.c
*** mh-6.8.4-JP-3.05/uip/replsbr.c      2001-04-05 01:05:17.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/replsbr.c      2006-10-18 02:08:54.000000000 +0900
***************
*** 195,205 ****
                        }
                    } while (cptr = cptr->c_next);

!               while (state == FLDPLUS)
                    state = m_getfld (state, name, tmpbuf, SBUFSIZ, inb);
  #ifdef JAPAN
                    (void) ml_conv(tmpbuf);
  #endif /* JAPAN */
                break;

            case LENERR:
--- 195,206 ----
                        }
                    } while (cptr = cptr->c_next);

!               while (state == FLDPLUS) {
                    state = m_getfld (state, name, tmpbuf, SBUFSIZ, inb);
  #ifdef JAPAN
                    (void) ml_conv(tmpbuf);
  #endif /* JAPAN */
+               }
                break;

            case LENERR:
diff -cr mh-6.8.4-JP-3.05/uip/scan.c mh-6.8.4-JP-3.05_PATCHED/uip/scan.c
*** mh-6.8.4-JP-3.05/uip/scan.c 1999-02-09 20:30:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/scan.c 2006-10-18 02:20:52.000000000 +0900
***************
*** 50,56 ****

  /*
      */

- extern int errno;
  #ifdef        LBL     /* global for sbr/formatsbr.c - yech! */
  extern struct msgs *fmt_current_folder;
  #endif
--- 50,55 ----
diff -cr mh-6.8.4-JP-3.05/uip/send.c mh-6.8.4-JP-3.05_PATCHED/uip/send.c
*** mh-6.8.4-JP-3.05/uip/send.c 1998-04-24 06:02:00.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/send.c 2006-10-18 02:20:59.000000000 +0900
***************
*** 164,170 ****
  extern char *distfile;


- extern int   errno;

  /*
      */

--- 164,169 ----
diff -cr mh-6.8.4-JP-3.05/uip/trmsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/trmsbr.c
*** mh-6.8.4-JP-3.05/uip/trmsbr.c       1993-12-01 13:01:39.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/trmsbr.c       2006-10-18 02:08:58.000000000 +0900
***************
*** 26,31 ****
--- 26,34 ----
  #define       TXTSIZ  BUFSIZ
  #endif

+ #if defined(linux)
+ #include      <termcap.h>
+ #else
  #ifndef       SYS5
  extern char PC;
  extern short    ospeed;
***************
*** 33,38 ****
--- 36,42 ----
  char  PC;
  short ospeed;
  #endif        /* SYS5 */
+ #endif

  int     tgetent (), tgetnum ();
  char   *tgetstr ();
diff -cr mh-6.8.4-JP-3.05/uip/ttyd.h mh-6.8.4-JP-3.05_PATCHED/uip/ttyd.h
*** mh-6.8.4-JP-3.05/uip/ttyd.h 1993-12-01 13:01:39.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/ttyd.h 2006-10-18 02:21:41.000000000 +0900
***************
*** 35,41 ****
  #define       serror  \
        (errno > 0 && errno < sys_nerr ? sys_errlist[errno] : "Unknown error")

- extern int  errno;
  #ifndef       BSD44
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 35,40 ----
diff -cr mh-6.8.4-JP-3.05/uip/vmh.c mh-6.8.4-JP-3.05_PATCHED/uip/vmh.c
*** mh-6.8.4-JP-3.05/uip/vmh.c  2001-04-21 20:16:49.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/vmh.c  2006-10-18 02:22:22.000000000 +0900
***************
*** 116,121 ****
--- 116,141 ----

  #define       XYZ                     /* XXX */

+ #if defined(__FreeBSD__) && __FreeBSD__ >= 5
+ struct ldat
+ {
+       NCURSES_CH_T    *text;
+       NCURSES_SIZE_T  firstchar;
+       NCURSES_SIZE_T  lastchar;
+       NCURSES_SIZE_T  oldindex;
+ };
+ #endif
+
+ #if (defined(__FreeBSD__) && __FreeBSD__ >= 5) || (defined(linux))
+ struct ldat
+ {
+       NCURSES_CH_T    *text;
+       NCURSES_SIZE_T  firstchar;
+       NCURSES_SIZE_T  lastchar;
+       NCURSES_SIZE_T  oldindex;
+ };
+ #endif
+
  /*
      */

  static struct swit switches[] = {
***************
*** 229,235 ****


                                        /* MISCELLANY */
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 249,254 ----
Only in mh-6.8.4-JP-3.05_PATCHED/uip: vmh.c.orig
diff -cr mh-6.8.4-JP-3.05/uip/vmhsbr.c mh-6.8.4-JP-3.05_PATCHED/uip/vmhsbr.c
*** mh-6.8.4-JP-3.05/uip/vmhsbr.c       2001-04-02 19:50:46.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/vmhsbr.c       2006-10-18 02:22:43.000000000 +0900
***************
*** 24,33 ****
  static        int PEERrfd = NOTOK;
  static        int PEERwfd = NOTOK;

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 24,30 ----
diff -cr mh-6.8.4-JP-3.05/uip/wmh.c mh-6.8.4-JP-3.05_PATCHED/uip/wmh.c
*** mh-6.8.4-JP-3.05/uip/wmh.c  2001-04-05 01:05:18.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/uip/wmh.c  2006-10-18 02:22:57.000000000 +0900
***************
*** 146,152 ****


                                        /* MISCELLANY */
- extern int  errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 146,151 ----
diff -cr mh-6.8.4-JP-3.05/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c
*** mh-6.8.4-JP-3.05/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c       1993-12-01 13:01:41.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/mmdfI/src/uucp/uu_wtmail.c       2006-10-18 02:23:37.000000000 +0900
***************
*** 4,13 ****
  #include "mmdf.h"
  #include "ch.h"
  #include <signal.h>

  /*
      */

- extern int  errno;

  int     broken_pipe;
  void  pipeser ();
--- 4,13 ----
  #include "mmdf.h"
  #include "ch.h"
  #include <signal.h>
+ #include <errno.h>

  /*
      */


  int     broken_pipe;
  void  pipeser ();
diff -cr mh-6.8.4-JP-3.05/zotnet/mf/muinc.c mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/muinc.c
*** mh-6.8.4-JP-3.05/zotnet/mf/muinc.c  1993-12-01 13:01:42.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/muinc.c  2006-10-18 02:24:07.000000000 +0900
***************
*** 81,87 ****
  {
      int     count,
              fd;
-     extern int  errno;

      for (count = 2; count > 0; count--)
        if ((fd = lkopen (file, 1)) == NOTOK)
--- 81,86 ----
diff -cr mh-6.8.4-JP-3.05/zotnet/mf/uminc.c mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/uminc.c
*** mh-6.8.4-JP-3.05/zotnet/mf/uminc.c  1993-12-01 13:01:42.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/zotnet/mf/uminc.c  2006-10-18 02:24:21.000000000 +0900
***************
*** 86,92 ****
      int     clear,
              count,
              fd;
-     extern int  errno;
      struct stat stbuf;

      for (clear = FALSE, count = 2; count > 0; count--)
--- 86,91 ----
diff -cr mh-6.8.4-JP-3.05/zotnet/mts/client.c mh-6.8.4-JP-3.05_PATCHED/zotnet/mts/client.c
*** mh-6.8.4-JP-3.05/zotnet/mts/client.c        2001-04-05 01:05:19.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/zotnet/mts/client.c        2006-10-18 02:24:35.000000000 +0900
***************
*** 52,58 ****

  /*
      */

- extern int errno;
  #if !defined(BSD44) && !defined(__GNU_LIBRARY__)
  extern int  sys_nerr;
  extern char *sys_errlist[];
--- 52,57 ----
diff -cr mh-6.8.4-JP-3.05/zotnet/mts/lock.c mh-6.8.4-JP-3.05_PATCHED/zotnet/mts/lock.c
*** mh-6.8.4-JP-3.05/zotnet/mts/lock.c  2001-04-03 16:22:46.000000000 +0900
--- mh-6.8.4-JP-3.05_PATCHED/zotnet/mts/lock.c  2006-10-18 02:15:15.000000000 +0900
***************
*** 77,86 ****
  #define       FLOCK           /* LOCKF will override this, if defined */
  #endif

- #ifdef __CYGWIN32__
  #include <errno.h>
- #endif
- extern int  errno;

  #ifdef        LOCKONLY
  #ifndef       MMDFONLY
--- 77,83 ----

という内容を、↓こんな手順でやると当たります。

$ tar zxf mh-6.8.4-JP-3.05.tar.gz
$ patch -p0 < patch-file-name

免責事項:絶対無保証。とりあえずコンパイルは通ったし、今回必要としてたxincのバイナリも作られた。でもそれ以上はテストも何もしてません。また、mh-plusをやって(る|た)人に送るつもりはありません。俺に↑のパッチ以上の何かを期待しないで下さい。