From: ppan@nobeltech.se (Per Andersson)
Subject: tcsh for Solaris 2.0 !
Organization: NobelTech AB
Date: Thu, 27 Aug 1992 10:42:28 GMT


Since I haven't seen anything about tcsh for the new Solaris 2.0 I thought
I'd share this with you. Usual restrictions apply. It works for me.

# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by nobeltech!ppan on Thu Aug 27 12:24:56 MET DST 1992
# Contents:  config.sunos50 tcsh.sunos50.diff
 
echo x - config.sunos50
sed 's/^@//' > "config.sunos50" <<'@//E*O*F config.sunos50//'
/*
 * config.h -- configure various defines for tcsh
 *
 * All source files should #include this FIRST.
 *
 * Edit this to match your system type.
 */

/****************** System dependant compilation flags ****************/
/*
 * POSIX	This system supports IEEE Std 1003.1-1988 (POSIX).
 */
#define POSIX

/*
 * POSIXJOBS	This system supports the optional IEEE Std 1003.1-1988 (POSIX)
 *		job control facilities.
 */
#define POSIXJOBS

/*
 * VFORK	This machine has a vfork().  
 *		It used to be that for job control to work, this define
 *		was mandatory. This is not the case any more.
 *		If you think you still need it, but you don't have vfork, 
 *		define this anyway and then do #define vfork fork.  
 *		I do this anyway on a Sun because of yellow pages brain damage,
 *		[should not be needed under 4.1]
 *		and on the iris4d cause	SGI's fork is sufficiently "virtual" 
 *		that vfork isn't necessary.  (Besides, SGI's vfork is weird).
 *		Note that some machines eg. rs6000 have a vfork, but not
 *		with the berkeley semantics, so we cannot use it there either.
 */
#undef VFORK

/*
 * BSDJOBS	You have BSD-style job control (both process groups and
 *		a tty that deals correctly
 */
#define BSDJOBS

/*
 * BSDSIGS	You have 4.2-style signals, rather than USG style.
 *		Note: POSIX systems should not define this unless they
 *		have sigvec() and friends (ie: 4.3BSD-RENO, HP-UX).
 */
#undef BSDSIGS

/*
 * BSDTIMES	You have BSD-style process time stuff (like rusage)
 *		This may or may not be true.  For example, Apple Unix
 *		(OREO) has BSDJOBS and BSDSIGS but not BSDTIMES.
 */
#undef BSDTIMES

/*
 * BSDNICE	Your system uses setpriority() instead of nice, to
 *		change a processes scheduling priority
 */
#undef BSDNICE

/*
 * TERMIO	You have struct termio instead of struct sgttyb.
 * 		This is usually the case for SYSV systems, where
 *		BSD uses sgttyb. POSIX systems should define this
 *		anyway, even though they use struct termios.
 */
#define TERMIO

/*
 * SYSVREL	Your machine is SYSV based (HPUX, A/UX)
 *		NOTE: don't do this if you are on a Pyramid -- tcsh is
 *		built in a BSD universe.
 *		Set SYSVREL to 1, 2, or 3, depending the version of System V
 *		you are running. Or set it to 0 if you are not SYSV based
 */
#define SYSVREL	4

/*
 * YPBUGS	Work around Sun YP bugs that cause expansion of ~username
 *		to send command output to /dev/null
 */
#undef YPBUGS

/*
 * SIGVOID	Define this if your signal handlers return void.  On older
 *		systems, signal returns int, but on newer ones, it returns void.
 */
#define SIGVOID 

/*
 * HAVEDUP2	Define this if your system supports dup2().
 */
#define HAVEDUP2

/*
 * HAVEUTMPX	Define if you have extended utmp (utmpx).
 *		(common for svr4 systems)
 */
#define HAVEUTMPX

/*
 * UTHOST	Does the utmp file have a host field?
 */
#ifdef HAVEUTMPX
# define UTHOST
#else
# undef UTHOST
#endif /* HAVEUTMPX */

/*
 * DIRENT	Your system has <dirent.h> instead of <sys/dir.h>
 */
#define DIRENT

/*
 * ECHO_STYLE	Optionally change the behavior of the builtin echo
 *		BOTH_ECHO: Support both bsd options (-n) and sysv escapes (\nnn)
 *		BSD_ECHO:  Support only -n
 *		SYSV_ECHO: Support only sysv escapes (\nnn)
 *		NONE_ECHO: Pure echo.
 */
#define ECHO_STYLE BSD_ECHO	/* BSD options only */

/****************** local defines *********************/
#ifndef BSDTIMES
# define NEEDgethostname
#endif
/*
 * Shadow passwd file
 */
#define PW_SHADOW

#define SUNOS50
/****************** configurable hacks ****************/
/* have been moved to config_f.h */
#include "config_f.h"

@//E*O*F config.sunos50//
chmod u=rw,g=r,o=r config.sunos50
 
echo x - tcsh.sunos50.diff
sed 's/^@//' > "tcsh.sunos50.diff" <<'@//E*O*F tcsh.sunos50.diff//'
diff -c -r tcsh-6.02/sh.sem.c tcsh-6.02.sunos50/sh.sem.c
*** tcsh-6.02/sh.sem.c	Sat May 16 02:00:42 1992
--- tcsh-6.02.sunos50/sh.sem.c	Thu Aug 27 12:09:54 1992
***************
*** 51,57 ****
  
  #ifdef sparc
  # ifndef MACH
! #  include <vfork.h>
  # endif /* !MACH */
  #endif /* sparc */
  
--- 51,59 ----
  
  #ifdef sparc
  # ifndef MACH
! #  ifndef SUNOS50
! #   include <vfork.h>
! #  endif /* !SUNOS50 */
  # endif /* !MACH */
  #endif /* sparc */
  
diff -c -r tcsh-6.02/sh.time.c tcsh-6.02.sunos50/sh.time.c
*** tcsh-6.02/sh.time.c	Sat May 16 02:00:42 1992
--- tcsh-6.02.sunos50/sh.time.c	Thu Aug 27 12:10:11 1992
***************
*** 38,44 ****
  
  RCSID("$Id: sh.time.c,v 3.7 1992/04/03 22:15:14 christos Exp $")
  
! #if defined(sun) && ! defined(MACH)
  # include <machine/param.h>
  #endif /* sun */
  
--- 38,44 ----
  
  RCSID("$Id: sh.time.c,v 3.7 1992/04/03 22:15:14 christos Exp $")
  
! #if defined(sun) && ! defined(MACH) && ! defined(SUNOS50)
  # include <machine/param.h>
  #endif /* sun */
  
diff -c -r tcsh-6.02/sh.types.h tcsh-6.02.sunos50/sh.types.h
*** tcsh-6.02/sh.types.h	Sat May 16 02:00:51 1992
--- tcsh-6.02.sunos50/sh.types.h	Thu Aug 27 12:11:12 1992
***************
*** 66,71 ****
--- 66,72 ----
  # ifndef _SIZE_T
  #  define _SIZE_T
  # endif /* _SIZE_T */
+ #ifndef SUNOS50
  # ifndef __sys_stdtypes_h
  #  define __sys_stdtypes_h
      typedef int pid_t;
***************
*** 89,94 ****
--- 90,97 ----
  #   endif /* _GID_T */
  #  endif /* !MACH */
  # endif /* !SUNOS4 */
+ #endif /* !SUNOS50 */
+ 
  #endif /* sun */
  
  
***************
*** 134,140 ****
--- 137,145 ----
  extern void perror();
  extern void _exit();
  extern void abort();
+ #ifndef SUNOS50
  extern void qsort();
+ #endif /* !SUNOS50 */
  extern void free();
  extern unsigned int alarm();
  extern unsigned int sleep();
diff -c -r tcsh-6.02/tc.os.h tcsh-6.02.sunos50/tc.os.h
*** tcsh-6.02/tc.os.h	Sat May 16 02:00:50 1992
--- tcsh-6.02.sunos50/tc.os.h	Thu Aug 27 12:12:42 1992
***************
*** 380,386 ****
--- 380,388 ----
  extern int abort();
  #  endif /* __GNUC__ != 2 */
  # ifndef fps500
+ #  ifndef SUNOS50
  extern int qsort();
+ #  endif /* !SUNOS50 */
  # endif /* fps500 */
  # else
  extern void abort();
***************
*** 446,452 ****
--- 448,456 ----
  #   if !defined(POSIXJOBS) && !defined(_SEQUENT_)
  extern int wait3();
  #   else /* POSIXJOBS || _SEQUENT_ */
+ #    ifndef SUNOS50
  extern int waitpid();
+ #    endif /* !SUNOS50 */
  #   endif /* POSIXJOBS || _SEQUENT_ */
  #  endif /* ! BSDTIMES */
  # else /* !BSDJOBS */
***************
*** 499,505 ****
--- 503,511 ----
   * Somehow these are missing
   */
  extern int ioctl __P((int, int, ...));
+ #  ifndef SUNOS50
  extern int readlink __P((const char *, char *, size_t));
+ #  endif /* !SUNOS50 */
  # endif /* sun && __GNUC__ == 2 */
  
  #ifdef linux

@//E*O*F tcsh.sunos50.diff//
chmod u=rw,g=r,o=r tcsh.sunos50.diff
 
exit 0
-- 
-----------------------------------------------------------------------------
Per Andersson - ppan@nobeltech.se (perand@stacken.kth.se on free time)
Managing networks at, but not speaking for Nobeltech AB, J{rf{lla, Sweden
-----------------------------------------------------------------------------