Subject: tcsh 6.05.02 vs. NetBSD 1.0beta - seems to need some small fixes?
To: None <current-users@netbsd.org>
From: Greg Earle <earle@isolar.Tujunga.CA.US>
List: current-users
Date: 09/11/1994 01:08:01
I grabbed the latest tcsh (6.05.02) thinking fer shure that, from comments
I'd seen Christos make in the past, it would make right out of the box on
NetBSD(/SPARC) 1.0beta.  But it tripped up right off the bat making "gethost"
as part of "make depend":

netbsd4me [/usr/othersrc/tcsh-6.05.02] # make depend
...
gcc -O2   -I.  -I/usr/X11R6/include           -c gethost.c
In file included from sh.h:379, from gethost.c:37:
sh.types.h:556: conflicting types for `pid_t'
/usr/include/sys/types.h:71: previous declaration of `pid_t'
In file included from tc.sig.h:42, from tc.h:45, from sh.h:1056, from gethost.c:
37:
/usr/include/signal.h:65: conflicting types for `sigpause'
tc.os.h:547: previous declaration of `sigpause'

I "fixed" (read: kludged) it easily by changing the two instances of "HPBSD"
to instead be "HPBSD || __NetBSD__":

*** sh.types.h.orig	Sun Sep  4 16:16:20 1994
--- sh.types.h	Sun Sep 11 00:09:27 1994
***************
*** 268,273 ****
  /***
!  *** Utah's HPBSD
!  *** some posix & 4.4 BSD changes (pid_t is a short)
   ***/
! #ifdef HPBSD
  # ifndef _PID_T
--- 267,272 ----
  /***
!  *** Utah's HPBSD and NetBSD
!  *** some posix & 4.4 BSD changes (pid_t is a short on HPBSD; long on NetBSD)
   ***/
! #if defined(HPBSD) || defined(__NetBSD__)
  # ifndef _PID_T
***************
*** 275,277 ****
  # endif /* _PID_T */
! #endif /* HPBSD */
  
--- 274,276 ----
  # endif /* _PID_T */
! #endif /* HPBSD || __NetBSD__ */
  
*** tc.os.h.orig	Sun Sep  4 16:16:19 1994
--- tc.os.h	Sun Sep 11 00:06:31 1994
***************
*** 540,542 ****
  # ifdef BSDSIGS
! #  if defined(_AIX370) || defined(MACH) || defined(NeXT) || defined(_AIXPS2) || defined(ardent) || defined(SUNOS4) || defined(HPBSD)
  extern int sigvec();
--- 540,542 ----
  # ifdef BSDSIGS
! #  if defined(_AIX370) || defined(MACH) || defined(NeXT) || defined(_AIXPS2) || defined(ardent) || defined(SUNOS4) || defined(HPBSD) || defined(__NetBSD__)
  extern int sigvec();

Also, the Imakefile needs a clause for NetBSD, as otherwise it falls through
to the default, which is to copy config/bsd to config.h; whereas it should
really use config/bsd4.4.  The obvious choice is to change

	#ifdef i386BsdArchitecture
to
	#if defined(i386BsdArchitecture) || defined(NetBSDArchitecture)

... but then, I have patches for NetBSD/SPARC for R6 that #defines
"NetBSDArchitecture" in xc/config/cf/NetBSD.cf; does XFree86 provide such
a #define/mechanism?

Given that I haven't heard anyone else mention these, and Christos said it
should work out of the box, am I missing something obvious???

	- Greg