diff -u -r strace-3.1.0.1/defs.h strace-3.1.0.1.local/defs.h
--- strace-3.1.0.1/defs.h	Mon May 20 20:20:55 1996
+++ strace-3.1.0.1.local/defs.h	Thu Feb 11 20:24:43 1999
@@ -356,3 +356,15 @@
 extern char *signalent2[];
 extern int nsignals2;
 #endif /* SUPPORTED_PERSONALITIES >= 3 */
+
+#if _LFS64_LARGEFILE
+/* _l refers to the lower numbered u_arg,
+ * _h refers to the higher numbered u_arg
+ */
+#if _LITTLE_ENDIAN
+#define get64(_l,_h) ((long long)((unsigned long long)(_l) | ((unsigned long long)(_h)<<32)))
+#else
+#define get64(_l,_h) ((long long)((unsigned long long)(_h) | ((unsigned long long)(_l)<<32)))
+#endif
+#endif
+
diff -u -r strace-3.1.0.1/desc.c strace-3.1.0.1.local/desc.c
--- strace-3.1.0.1/desc.c	Mon May 20 20:20:55 1996
+++ strace-3.1.0.1.local/desc.c	Thu Feb 11 21:32:51 1999
@@ -57,6 +57,73 @@
 #ifdef F_CNVT
 	{ F_CNVT,	"F_CNVT"	},
 #endif
+#ifdef F_CHKFL
+	{ F_CHKFL,	"F_CHKFL"	},
+#endif
+#ifdef F_DUP2FD
+	{ F_DUP2FD,	"F_DUP2FD"	},
+#endif
+#ifdef F_ALLOCSP
+	{ F_ALLOCSP,	"F_ALLOCSP"	},
+#endif
+#ifdef F_ISSTREAM
+	{ F_ISSTREAM,	"F_ISSTREAM"	},
+#endif
+#ifdef F_PRIV
+	{ F_PRIV,	"F_PRIV"	},
+#endif
+#ifdef F_NPRIV
+	{ F_NPRIV,	"F_NPRIV"	},
+#endif
+#ifdef F_QUOTACL
+	{ F_QUOTACL,	"F_QUOTACL"	},
+#endif
+#ifdef F_BLOCKS
+	{ F_BLOCKS,	"F_BLOCKS"	},
+#endif
+#ifdef F_BLKSIZE
+	{ F_BLKSIZE,	"F_BLKSIZE"	},
+#endif
+#ifdef F_GETOWN
+	{ F_GETOWN,	"F_GETOWN"	},
+#endif
+#ifdef F_SETOWN
+	{ F_SETOWN,	"F_SETOWN"	},
+#endif
+#ifdef F_REVOKE
+	{ F_REVOKE,	"F_REVOKE"	},
+#endif
+#ifdef F_SETLK
+	{ F_SETLK,	"F_SETLK"	},
+#endif
+#ifdef F_SETLKW
+	{ F_SETLKW,	"F_SETLKW"	},
+#endif
+#ifdef F_FREESP
+	{ F_FREESP,	"F_FREESP"	},
+#endif
+#ifdef F_GETLK
+	{ F_GETLK,	"F_GETLK"	},
+#endif
+#ifdef F_SETLK64
+	{ F_SETLK64,	"F_SETLK64"	},
+#endif
+#ifdef F_SETLKW64
+	{ F_SETLKW64,	"F_SETLKW64"	},
+#endif
+#ifdef F_FREESP64
+	{ F_FREESP64,	"F_FREESP64"	},
+#endif
+#ifdef F_GETLK64
+	{ F_GETLK64,	"F_GETLK64"	},
+#endif
+#ifdef F_SHARE
+	{ F_SHARE,	"F_SHARE"	},
+#endif
+#ifdef F_UNSHARE
+	{ F_UNSHARE,	"F_UNSHARE"	},
+#endif
+
 	{ 0,		NULL		},
 };
 
@@ -123,6 +190,32 @@
 		tprintf("}");
 }
 
+#if _LFS64_LARGEFILE
+/* fcntl/lockf */
+static void
+printflock64(tcp, addr, getlk)
+struct tcb *tcp;
+int addr;
+int getlk;
+{
+	struct flock64 fl;
+
+	if (umove(tcp, addr, &fl) < 0) {
+		tprintf("{...}");
+		return;
+	}
+	tprintf("{type=");
+	printxval(lockfcmds, fl.l_type, "F_???");
+	tprintf(", whence=");
+	printxval(whence, fl.l_whence, "SEEK_???");
+	tprintf(", start=%lld, len=%lld", fl.l_start, fl.l_len);
+	if (getlk)
+		tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
+	else
+		tprintf("}");
+}
+#endif
+
 static char *
 sprintflags(xlat, flags)
 struct xlat *xlat;
@@ -171,9 +264,26 @@
 				tprintf("0");
 			break;
 		case F_SETLK: case F_SETLKW:
+#ifdef F_FREESP
+		case F_FREESP:
+#endif
 			tprintf(", ");
 			printflock(tcp, tcp->u_arg[2], 0);
 			break;
+#if _LFS64_LARGEFILE
+#ifdef F_FREESP64
+		case F_FREESP64:
+#endif
+#ifdef F_SETLK64
+		case F_SETLK64:
+#endif
+#ifdef F_SETLKW64
+		case F_SETLKW64:
+#endif
+			tprintf(", ");
+			printflock64(tcp, tcp->u_arg[2], 0);
+			break;
+#endif
 		}
 	}
 	else {
@@ -195,6 +305,14 @@
 			tprintf(", ");
 			printflock(tcp, tcp->u_arg[2], 1);
 			break;
+#if _LFS64_LARGEFILE
+#ifdef F_GETLK64
+		case F_GETLK64:
+#endif
+			tprintf(", ");
+			printflock64(tcp, tcp->u_arg[2], 1);
+			break;
+#endif
 		default:
 			tprintf(", %#lx", tcp->u_arg[2]);
 			break;
diff -u -r strace-3.1.0.1/file.c strace-3.1.0.1.local/file.c
--- strace-3.1.0.1/file.c	Mon May 20 20:20:56 1996
+++ strace-3.1.0.1.local/file.c	Thu Feb 11 21:19:58 1999
@@ -218,6 +218,27 @@
 	return RVAL_UDECIMAL;
 }
 
+#if _LFS64_LARGEFILE
+int
+sys_llseek(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		unsigned long long o = get64(tcp->u_arg[1], tcp->u_arg[2]);
+		tprintf("%ld, ", tcp->u_arg[0]);
+		if (tcp->u_arg[3] == SEEK_SET)
+			tprintf("%llu, ", o);
+		else
+			tprintf("%lld, ", o);
+		printxval(whence, tcp->u_arg[3], "L_???");
+	}
+	/* XXX this isn't quite right -- it's an offset_t, 64-bits...
+	 * not sure how to represent that
+	 */
+	return RVAL_UDECIMAL;
+}
+#endif
+
 int
 sys_truncate(tcp)
 struct tcb *tcp;
@@ -395,6 +416,109 @@
 	return 0;
 }
 
+#if _LFS64_LARGEFILE
+static void
+printstat64(tcp, addr)
+struct tcb *tcp;
+int addr;
+{
+	struct stat64 statbuf;
+
+	if (!addr) {
+		tprintf("NULL");
+		return;
+	}
+	if (syserror(tcp) || !verbose(tcp)) {
+		tprintf("%#x", addr);
+		return;
+	}
+	if (umove(tcp, addr, &statbuf) < 0) {
+		tprintf("{...}");
+		return;
+	}
+	if (!abbrev(tcp)) {
+		tprintf("{st_dev=makedev(%lu, %lu), st_ino=%llu, st_mode=%s, ",
+			(unsigned long) major(statbuf.st_dev),
+			(unsigned long) minor(statbuf.st_dev),
+			statbuf.st_ino,
+			sprintmode(statbuf.st_mode));
+		tprintf("st_nlink=%lu, st_uid=%lu, st_gid=%lu, ",
+			(unsigned long) statbuf.st_nlink,
+			(unsigned long) statbuf.st_uid,
+			(unsigned long) statbuf.st_gid);
+#ifdef HAVE_ST_BLKSIZE
+		tprintf("st_blksize=%lu, ", (unsigned long) statbuf.st_blksize);
+#endif /* HAVE_ST_BLKSIZE */
+#ifdef HAVE_ST_BLOCKS
+		tprintf("st_blocks=%llu, ", statbuf.st_blocks);
+#endif /* HAVE_ST_BLOCKS */
+	}
+	else
+		tprintf("{st_mode=%s, ", sprintmode(statbuf.st_mode));
+	switch (statbuf.st_mode & S_IFMT) {
+	case S_IFCHR: case S_IFBLK:
+#ifdef HAVE_ST_RDEV
+		tprintf("st_rdev=makedev(%lu, %lu), ",
+			(unsigned long) major(statbuf.st_rdev),
+			(unsigned long) minor(statbuf.st_rdev));
+#else /* !HAVE_ST_RDEV */
+		tprintf("st_size=makedev(%lu, %lu), ",
+			(unsigned long) major(statbuf.st_size),
+			(unsigned long) minor(statbuf.st_size));
+#endif /* !HAVE_ST_RDEV */
+		break;
+	default:
+		tprintf("st_size=%llu, ", statbuf.st_size);
+		break;
+	}
+	if (!abbrev(tcp)) {
+		tprintf("st_atime=%s, ", sprinttime(statbuf.st_atime));
+		tprintf("st_mtime=%s, ", sprinttime(statbuf.st_mtime));
+		tprintf("st_ctime=%s}", sprinttime(statbuf.st_ctime));
+	}
+	else
+		tprintf("...}");
+}
+
+int
+sys_stat64(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprintf(", ");
+	} else {
+		printstat64(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+
+int
+sys_fstat64(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp))
+		tprintf("%ld, ", tcp->u_arg[0]);
+	else {
+		printstat64(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+
+int
+sys_lstat64(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		printpath(tcp, tcp->u_arg[0]);
+		tprintf(", ");
+	} else {
+		printstat64(tcp, tcp->u_arg[1]);
+	}
+	return 0;
+}
+#endif
+
 #ifdef SVR4
 
 int
@@ -992,6 +1116,74 @@
 	free(buf);
 	return 0;
 }
+
+#if _LFS64_LARGEFILE
+int
+sys_getdents64(tcp)
+struct tcb *tcp;
+{
+	int i, len, dents = 0;
+	char *buf;
+
+	if (entering(tcp)) {
+		tprintf("%lu, ", tcp->u_arg[0]);
+		return 0;
+	}
+	if (syserror(tcp) || !verbose(tcp)) {
+		tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
+		return 0;
+	}
+	len = tcp->u_rval;
+	if ((buf = malloc(len)) == NULL) {
+		tprintf("out of memory\n");
+		return 0;
+	}
+	if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+		tprintf("{...}, %lu", tcp->u_arg[2]);
+		free(buf);
+		return 0;
+	}
+	if (!abbrev(tcp))
+		tprintf("{");
+	for (i = 0; i < len;) {
+		struct dirent64 *d = (struct dirent64 *) &buf[i];
+#ifdef LINUX
+		if (!abbrev(tcp)) {
+			tprintf("%s{d_ino=%lu, d_off=%lu, ",
+				i ? " " : "", d->d_ino, d->d_off);
+			tprintf("d_reclen=%u, d_name=\"%s\"}",
+				d->d_reclen, d->d_name);
+		}
+#endif /* LINUX */
+#ifdef SVR4
+		if (!abbrev(tcp)) {
+			tprintf("%s{d_ino=%llu, d_off=%llu, ",
+				i ? " " : "", d->d_ino, d->d_off);
+			tprintf("d_reclen=%u, d_name=\"%s\"}",
+				d->d_reclen, d->d_name);
+		}
+#endif /* SVR4 */
+#ifdef SUNOS4
+		if (!abbrev(tcp)) {
+			tprintf("%s{d_off=%lu, d_fileno=%lu, d_reclen=%u, ",
+				i ? " " : "", d->d_off, d->d_fileno,
+				d->d_reclen);
+			tprintf("d_namlen=%u, d_name=\"%.*s\"}",
+				d->d_namlen, d->d_namlen, d->d_name);
+		}
+#endif /* SUNOS4 */
+		i += d->d_reclen;
+		dents++;
+	}
+	if (!abbrev(tcp))
+		tprintf("}");
+	else
+		tprintf("/* %u entries */", dents);
+	tprintf(", %lu", tcp->u_arg[2]);
+	free(buf);
+	return 0;
+}
+#endif
 
 #ifdef HAVE_SYS_ASYNCH_H
 
diff -u -r strace-3.1.0.1/io.c strace-3.1.0.1.local/io.c
--- strace-3.1.0.1/io.c	Sat May 18 23:40:36 1996
+++ strace-3.1.0.1.local/io.c	Thu Feb 11 21:54:09 1999
@@ -152,7 +152,7 @@
 			tprintf("%#lx", tcp->u_arg[1]);
 		else
 			printstr(tcp, tcp->u_arg[1], tcp->u_rval);
-		tprintf(", %lu, %lu", tcp->u_arg[2], tcp->u_arg[3]);
+		tprintf(", %lu, %#lx", tcp->u_arg[2], tcp->u_arg[3]);
 	}
 	return 0;
 }
@@ -164,12 +164,42 @@
 	if (entering(tcp)) {
 		tprintf("%ld, ", tcp->u_arg[0]);
 		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
-		tprintf(", %lu, %lu", tcp->u_arg[2], tcp->u_arg[3]);
+		tprintf(", %lu, %#lx", tcp->u_arg[2], tcp->u_arg[3]);
 	}
 	return 0;
 }
 
 #endif /* SVR4 */
+
+#if _LFS64_LARGEFILE
+int
+sys_pread64(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		tprintf("%ld, ", tcp->u_arg[0]);
+	} else {
+		if (syserror(tcp))
+			tprintf("%#lx", tcp->u_arg[1]);
+		else
+			printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+		tprintf(", %lu, %#llx", tcp->u_arg[2], get64(tcp->u_arg[3], tcp->u_arg[4]));
+	}
+	return 0;
+}
+
+int
+sys_pwrite64(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		tprintf("%ld, ", tcp->u_arg[0]);
+		printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+		tprintf(", %lu, %#llx", tcp->u_arg[2], get64(tcp->u_arg[3], tcp->u_arg[4]));
+	}
+	return 0;
+}
+#endif
 
 int
 sys_ioctl(tcp)
diff -u -r strace-3.1.0.1/mem.c strace-3.1.0.1.local/mem.c
--- strace-3.1.0.1/mem.c	Sat May 18 23:40:36 1996
+++ strace-3.1.0.1.local/mem.c	Thu Feb 11 21:21:10 1999
@@ -135,6 +135,49 @@
 	return RVAL_HEX;
 }
 
+#if _LFS64_LARGEFILE
+int
+sys_mmap64(tcp)
+struct tcb *tcp;
+{
+#ifdef LINUX
+#ifdef ALPHA
+	long *u_arg = tcp->u_arg;
+#else /* !ALPHA */
+	long u_arg[7];
+#endif /* !ALPHA */
+#else /* !LINUX */
+	long *u_arg = tcp->u_arg;
+#endif /* !LINUX */
+
+	if (entering(tcp)) {
+#ifdef LINUX
+#ifndef ALPHA
+		if (umoven(tcp, tcp->u_arg[0], sizeof u_arg,
+				(char *) u_arg) == -1)
+			return 0;
+#endif /* ALPHA */
+#endif /* LINUX */
+
+		/* addr */
+		tprintf("%#lx, ", u_arg[0]);
+		/* len */
+		tprintf("%lu, ", u_arg[1]);
+		/* prot */
+		printflags(mmap_prot, u_arg[2]);
+		tprintf(", ");
+		/* flags */
+		printxval(mmap_flags, u_arg[3] & MAP_TYPE, "MAP_???");
+		addflags(mmap_flags, u_arg[3] & ~MAP_TYPE);
+		/* fd */
+		tprintf(", %ld, ", u_arg[4]);
+		/* offset */
+		tprintf("%#llx", get64(u_arg[5], u_arg[6]));
+	}
+	return RVAL_HEX;
+}
+#endif
+
 int
 sys_munmap(tcp)
 struct tcb *tcp;
diff -u -r strace-3.1.0.1/net.c strace-3.1.0.1.local/net.c
--- strace-3.1.0.1/net.c	Mon May 20 20:20:57 1996
+++ strace-3.1.0.1.local/net.c	Thu Feb 11 21:03:56 1999
@@ -272,6 +272,33 @@
 }
 
 int
+sys_so_socket(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+		/* not sure really what these args are... but this
+		 * is how truss prints it
+		 */
+		tprintf("%ld, %ld, %ld, ",
+		  tcp->u_arg[0], tcp->u_arg[1], tcp->u_arg[2]);
+		printpath(tcp, tcp->u_arg[3]);
+		tprintf(", %ld", tcp->u_arg[4]);
+	}
+	return 0;
+}
+
+int
+sys_so_socketpair(tcp)
+struct tcb *tcp;
+{
+	if (entering(tcp)) {
+	  	/* not sure what this arg is */
+		tprintf("0x%lx", tcp->u_arg[0]);
+	}
+	return 0;
+}
+
+int
 sys_bind(tcp)
 struct tcb *tcp;
 {
diff -u -r strace-3.1.0.1/resource.c strace-3.1.0.1.local/resource.c
--- strace-3.1.0.1/resource.c	Sat May 18 23:40:37 1996
+++ strace-3.1.0.1.local/resource.c	Thu Feb 11 20:38:09 1999
@@ -134,6 +134,67 @@
 	return 0;
 }
 
+#if _LFS64_LARGEFILE
+static char *
+sprintrlim64(lim)
+rlim64_t lim;
+{
+	static char buf[64];
+
+	if (lim == RLIM64_INFINITY)
+		sprintf(buf, "RLIM64_INFINITY");
+	else if (lim > 1024 && lim%1024 == 0)
+		sprintf(buf, "%lld*1024", lim/1024);
+	else
+		sprintf(buf, "%lld", lim);
+	return buf;
+}
+
+int
+sys_getrlimit64(tcp)
+struct tcb *tcp;
+{
+	struct rlimit64 rlim;
+
+	if (entering(tcp)) {
+		printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+		tprintf(", ");
+	}
+	else {
+		if (syserror(tcp) || !verbose(tcp))
+			tprintf("%#lx", tcp->u_arg[1]);
+		else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+			tprintf("{...}");
+		else {
+			tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
+			tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
+		}
+	}
+	return 0;
+}
+
+int
+sys_setrlimit64(tcp)
+struct tcb *tcp;
+{
+	struct rlimit64 rlim;
+
+	if (entering(tcp)) {
+		printxval(resources, tcp->u_arg[0], "RLIMIT_???");
+		tprintf(", ");
+		if (!verbose(tcp))
+			tprintf("%#lx", tcp->u_arg[1]);
+		else if (umove(tcp, tcp->u_arg[1], &rlim) < 0)
+			tprintf("{...}");
+		else {
+			tprintf("{rlim_cur=%s,", sprintrlim64(rlim.rlim_cur));
+			tprintf(" rlim_max=%s}", sprintrlim64(rlim.rlim_max));
+		}
+	}
+	return 0;
+}
+#endif
+
 #ifndef SVR4
 
 static struct xlat usagewho[] = {
diff -u -r strace-3.1.0.1/signal.c strace-3.1.0.1.local/signal.c
--- strace-3.1.0.1/signal.c	Wed May 22 22:12:47 1996
+++ strace-3.1.0.1.local/signal.c	Thu Feb 11 21:48:02 1999
@@ -202,7 +202,18 @@
 	*s++ = '[';
 	for (i = 1; i <= NSIG; i++) {
 		if (sigismember(&mask, i) == 1) {
-			sprintf(s, format, signalent[i] + 3); s += strlen(s);
+			/* real-time signals on solaris don't have
+			 * signalent entries
+			 */
+			if (i < nsignals) {
+				sprintf(s, format, signalent[i] + 3);
+			}
+			else {
+				char tsig[32];
+				sprintf(tsig, "%u", i);
+				sprintf(s, format, tsig);
+			}
+			s += strlen(s);
 			format = " %s";
 		}
 	}
diff -u -r strace-3.1.0.1/svr4/dummy.h strace-3.1.0.1.local/svr4/dummy.h
--- strace-3.1.0.1/svr4/dummy.h	Fri Aug 18 22:03:43 1995
+++ strace-3.1.0.1.local/svr4/dummy.h	Thu Feb 11 21:16:28 1999
@@ -109,7 +109,9 @@
 #define sys_lwp_cond_wait printargs
 #define sys_lwp_cond_signal printargs
 #define sys_lwp_cond_broadcast printargs
+#if !_LFS64_LARGEFILE
 #define sys_llseek printargs
+#endif
 #define sys_inst_sync printargs
 #define sys_auditsys printargs
 #define sys_processor_bind printargs
@@ -148,6 +150,45 @@
 #define sys_sysfs1 printargs
 #define sys_sysfs2 printargs
 #define sys_sysfs3 printargs
+#define sys_lwp_sema_trywait printargs
+#define sys_kaio printargs
+#define sys_tsolsys printargs
+#define sys_acl printargs
+#define sys_facl printargs
+#define sys_door printargs
+#define sys_install_utrap printargs
+#define sys_signotify printargs
+#define sys_schedctl printargs
+#define sys_pset printargs
+#define sys_resolvepath printargs
+#define sys_signotifywait printargs
+#define sys_lwp_sigredirect printargs
+#define sys_lwp_alarm printargs
+#define sys_rpcsys printargs
+#define sys_sockconfig printargs
+#define sys_ntp_gettime printargs
+#define sys_ntp_adjtime printargs
+
+/* the various 64-bit file stuff */
+#if !_LFS64_LARGEFILE
+/* we've implemented these */
+#define sys_getdents64 printargs
+#define sys_mmap64 printargs
+#define sys_stat64 printargs
+#define sys_lstat64 printargs
+#define sys_fstat64 printargs
+#define sys_setrlimit64 printargs
+#define sys_getrlimit64 printargs
+#define sys_pread64 printargs
+#define sys_pwrite64 printargs
+#endif
+/* unimplemented 64-bit stuff */
+#define sys_statvfs64 printargs
+#define sys_fstatvfs64 printargs
+/* like another call */
+#define sys_creat64 sys_creat
+#define sys_open64 sys_open
+
 
 /* like another call */
 #define sys_lchown sys_chown
diff -u -r strace-3.1.0.1/svr4/syscall.h strace-3.1.0.1.local/svr4/syscall.h
--- strace-3.1.0.1/svr4/syscall.h	Sat Mar 25 22:03:51 1995
+++ strace-3.1.0.1.local/svr4/syscall.h	Thu Feb 11 21:16:45 1999
@@ -104,26 +104,26 @@
 extern int sys_getmsg();
 extern int sys_putmsg();
 extern int sys_poll();
-#ifdef MIPS
-extern int sys_sigreturn();
-extern int sys_accept();
 extern int sys_bind();
+extern int sys_listen();
+extern int sys_accept();
 extern int sys_connect();
-extern int sys_gethostid();
+extern int sys_shutdown();
+extern int sys_recv();
+extern int sys_recvfrom();
+extern int sys_send();
+extern int sys_sendto();
 extern int sys_getpeername();
 extern int sys_getsockname();
 extern int sys_getsockopt();
-extern int sys_listen();
-extern int sys_recv();
-extern int sys_recvfrom();
+extern int sys_setsockopt();
+#ifdef MIPS
+extern int sys_sigreturn();
+extern int sys_gethostid();
 extern int sys_recvmsg();
 extern int sys_select();
-extern int sys_send();
 extern int sys_sendmsg();
-extern int sys_sendto();
 extern int sys_sethostid();
-extern int sys_setsockopt();
-extern int sys_shutdown();
 extern int sys_socket();
 extern int sys_gethostname();
 extern int sys_sethostname();
@@ -276,7 +276,6 @@
 extern int sys_lwp_cond_broadcast();
 extern int sys_pread();
 extern int sys_pwrite();
-extern int sys_llseek();
 extern int sys_inst_sync();
 extern int sys_auditsys();
 extern int sys_processor_bind();
@@ -292,6 +291,8 @@
 extern int sys_timer_gettime();
 extern int sys_timer_getoverrun();
 extern int sys_nanosleep();
+extern int sys_setreuid();
+extern int sys_setregid();
 #endif /* !MIPS */
 
 #ifdef MIPS
@@ -428,3 +429,22 @@
 #define SYS_context_nsubcalls	2
 
 #endif /* !MIPS */
+
+/* 64-bit file stuff */
+
+#if _LFS64_LARGEFILE
+extern int sys_getdents64();
+extern int sys_mmap64();
+extern int sys_stat64();
+extern int sys_lstat64();
+extern int sys_fstat64();
+extern int sys_setrlimit64();
+extern int sys_getrlimit64();
+extern int sys_pread64();
+extern int sys_pwrite64();
+extern int sys_llseek();
+#endif
+
+/* solaris 2.6 stuff */
+extern int sys_so_socket();
+extern int sys_so_socketpair();
diff -u -r strace-3.1.0.1/svr4/syscallent.h strace-3.1.0.1.local/svr4/syscallent.h
--- strace-3.1.0.1/svr4/syscallent.h	Tue Feb 13 19:52:29 1996
+++ strace-3.1.0.1.local/svr4/syscallent.h	Thu Feb 11 19:54:28 1999
@@ -364,7 +364,7 @@
 	{ -1,	0,	sys_yield,		"yield"		}, /* 146 */
 	{ -1,	0,	sys_lwp_sema_wait,	"lwp_sema_wait"	}, /* 147 */
 	{ -1,	0,	sys_lwp_sema_post,	"lwp_sema_post"	}, /* 148 */
-	{ -1,	0,	printargs,		"SYS_149"	}, /* 149 */
+	{ -1,	0,	sys_lwp_sema_trywait,	"lwp_sema_trywait"}, /* 149 */
 	{ -1,	0,	printargs,		"SYS_150"	}, /* 150 */
 	{ -1,	0,	printargs,		"SYS_151"	}, /* 151 */
 	{ -1,	0,	sys_modctl,		"modctl"	}, /* 152 */
@@ -393,14 +393,14 @@
 	{ -1,	0,	sys_llseek,		"llseek"	}, /* 175 */
 	{ -1,	0,	sys_inst_sync,		"inst_sync"	}, /* 176 */
 	{ -1,	0,	printargs,		"SYS_177"	}, /* 177 */
-	{ -1,	0,	printargs,		"SYS_178"	}, /* 178 */
+	{ -1,	0,	sys_kaio,		"kaio"		}, /* 178 */
 	{ -1,	0,	printargs,		"SYS_179"	}, /* 179 */
 	{ -1,	0,	printargs,		"SYS_180"	}, /* 180 */
 	{ -1,	0,	printargs,		"SYS_181"	}, /* 181 */
 	{ -1,	0,	printargs,		"SYS_182"	}, /* 182 */
 	{ -1,	0,	printargs,		"SYS_183"	}, /* 183 */
-	{ -1,	0,	printargs,		"SYS_184"	}, /* 184 */
-	{ -1,	0,	printargs,		"SYS_185"	}, /* 185 */
+	{ -1,	0,	sys_tsolsys,		"tsolsys"	}, /* 184 */
+	{ -1,	0,	sys_acl,		"acl"		}, /* 185 */
 	{ -1,	0,	sys_auditsys,		"auditsys"	}, /* 186 */
 	{ -1,	0,	sys_processor_bind,	"processor_bind"}, /* 187 */
 	{ -1,	0,	sys_processor_info,	"processor_info"}, /* 188 */
@@ -415,56 +415,56 @@
 	{ -1,	0,	sys_timer_gettime,	"timer_gettime"	}, /* 197 */
 	{ -1,	0,	sys_timer_getoverrun,	"timer_getoverrun"}, /* 198 */
 	{ -1,	0,	sys_nanosleep,		"nanosleep"	}, /* 199 */
-	{ -1,	0,	printargs,		"SYS_200"	}, /* 200 */
-	{ -1,	0,	printargs,		"SYS_201"	}, /* 201 */
-	{ -1,	0,	printargs,		"SYS_202"	}, /* 202 */
-	{ -1,	0,	printargs,		"SYS_203"	}, /* 203 */
-	{ -1,	0,	printargs,		"SYS_204"	}, /* 204 */
-	{ -1,	0,	printargs,		"SYS_205"	}, /* 205 */
-	{ -1,	0,	printargs,		"SYS_206"	}, /* 206 */
-	{ -1,	0,	printargs,		"SYS_207"	}, /* 207 */
+	{ -1,	0,	sys_facl,		"facl"		}, /* 200 */
+	{ -1,	0,	sys_door,		"door"		}, /* 201 */
+	{ -1,	0,	sys_setreuid,		"setreuid"	}, /* 202 */
+	{ -1,	0,	sys_setregid,		"setregid"	}, /* 203 */
+	{ -1,	0,	sys_install_utrap,	"install_utrap"	}, /* 204 */
+	{ -1,	0,	sys_signotify,		"signotify"	}, /* 205 */
+	{ -1,	0,	sys_schedctl,		"schedctl"	}, /* 206 */
+	{ -1,	0,	sys_pset,		"pset"		}, /* 207 */
 	{ -1,	0,	printargs,		"SYS_208"	}, /* 208 */
-	{ -1,	0,	printargs,		"SYS_209"	}, /* 209 */
-	{ -1,	0,	printargs,		"SYS_210"	}, /* 210 */
-	{ -1,	0,	printargs,		"SYS_211"	}, /* 211 */
-	{ -1,	0,	printargs,		"SYS_212"	}, /* 212 */
-	{ -1,	0,	printargs,		"SYS_213"	}, /* 213 */
-	{ -1,	0,	printargs,		"SYS_214"	}, /* 214 */
-	{ -1,	0,	printargs,		"SYS_215"	}, /* 215 */
-	{ -1,	0,	printargs,		"SYS_216"	}, /* 216 */
-	{ -1,	0,	printargs,		"SYS_217"	}, /* 217 */
-	{ -1,	0,	printargs,		"SYS_218"	}, /* 218 */
-	{ -1,	0,	printargs,		"SYS_219"	}, /* 219 */
-	{ -1,	0,	printargs,		"SYS_220"	}, /* 220 */
-	{ -1,	0,	printargs,		"SYS_221"	}, /* 221 */
-	{ -1,	0,	printargs,		"SYS_222"	}, /* 222 */
-	{ -1,	0,	printargs,		"SYS_223"	}, /* 223 */
-	{ -1,	0,	printargs,		"SYS_224"	}, /* 224 */
-	{ -1,	0,	printargs,		"SYS_225"	}, /* 225 */
-	{ -1,	0,	printargs,		"SYS_226"	}, /* 226 */
+	{ -1,	0,	sys_resolvepath,	"resolvepath"	}, /* 209 */
+	{ -1,	0,	sys_signotifywait,	"signotifywait"	}, /* 210 */
+	{ -1,	0,	sys_lwp_sigredirect,	"lwp_sigredirect"}, /* 211 */
+	{ -1,	0,	sys_lwp_alarm,		"lwp_alarm"	}, /* 212 */
+	{ -1,	0,	sys_getdents64,		"getdents64"	}, /* 213 */
+	{ -1,	0,	sys_mmap64,		"mmap64"	}, /* 214 */
+	{ -1,	0,	sys_stat64,		"stat64"	}, /* 215 */
+	{ -1,	0,	sys_lstat64,		"lstat64"	}, /* 216 */
+	{ -1,	0,	sys_fstat64,		"fstat64"	}, /* 217 */
+	{ -1,	0,	sys_statvfs64,		"statvfs64"	}, /* 218 */
+	{ -1,	0,	sys_fstatvfs64,		"fstatvfs64"	}, /* 219 */
+	{ -1,	0,	sys_setrlimit64,	"setrlimit64"	}, /* 220 */
+	{ -1,	0,	sys_getrlimit64,	"getrlimit64"	}, /* 221 */
+	{ -1,	0,	sys_pread64,		"pread64"	}, /* 222 */
+	{ -1,	0,	sys_pwrite64,		"pwrite64"	}, /* 223 */
+	{ -1,	0,	sys_creat64,		"creat64"	}, /* 224 */
+	{ -1,	0,	sys_open64,		"open64"	}, /* 225 */
+	{ -1,	0,	sys_rpcsys,		"rpcsys"	}, /* 226 */
 	{ -1,	0,	printargs,		"SYS_227"	}, /* 227 */
 	{ -1,	0,	printargs,		"SYS_228"	}, /* 228 */
 	{ -1,	0,	printargs,		"SYS_229"	}, /* 229 */
-	{ -1,	0,	printargs,		"SYS_230"	}, /* 230 */
-	{ -1,	0,	printargs,		"SYS_231"	}, /* 231 */
-	{ -1,	0,	printargs,		"SYS_232"	}, /* 232 */
-	{ -1,	0,	printargs,		"SYS_233"	}, /* 233 */
-	{ -1,	0,	printargs,		"SYS_234"	}, /* 234 */
-	{ -1,	0,	printargs,		"SYS_235"	}, /* 235 */
-	{ -1,	0,	printargs,		"SYS_236"	}, /* 236 */
-	{ -1,	0,	printargs,		"SYS_237"	}, /* 237 */
-	{ -1,	0,	printargs,		"SYS_238"	}, /* 238 */
-	{ -1,	0,	printargs,		"SYS_239"	}, /* 239 */
-	{ -1,	0,	printargs,		"SYS_240"	}, /* 240 */
-	{ -1,	0,	printargs,		"SYS_241"	}, /* 241 */
-	{ -1,	0,	printargs,		"SYS_242"	}, /* 242 */
-	{ -1,	0,	printargs,		"SYS_243"	}, /* 243 */
-	{ -1,	0,	printargs,		"SYS_244"	}, /* 244 */
-	{ -1,	0,	printargs,		"SYS_245"	}, /* 245 */
-	{ -1,	0,	printargs,		"SYS_246"	}, /* 246 */
-	{ -1,	0,	printargs,		"SYS_247"	}, /* 247 */
-	{ -1,	0,	printargs,		"SYS_248"	}, /* 248 */
-	{ -1,	0,	printargs,		"SYS_249"	}, /* 249 */
+	{ -1,	0,	sys_so_socket,		"so_socket"	}, /* 230 */
+	{ -1,	0,	sys_so_socketpair,	"so_socketpair"	}, /* 231 */
+	{ -1,	0,	sys_bind,		"bind"		}, /* 232 */
+	{ -1,	0,	sys_listen,		"listen"	}, /* 233 */
+	{ -1,	0,	sys_accept,		"accept"	}, /* 234 */
+	{ -1,	0,	sys_connect,		"connect"	}, /* 235 */
+	{ -1,	0,	sys_shutdown,		"shutdown"	}, /* 236 */
+	{ -1,	0,	sys_recv,		"recv"		}, /* 237 */
+	{ -1,	0,	sys_recvfrom,		"recvfrom"	}, /* 238 */
+	{ -1,	0,	sys_recvmsg,		"recvmsg"	}, /* 239 */
+	{ -1,	0,	sys_send,		"send"		}, /* 240 */
+	{ -1,	0,	sys_sendmsg,		"sendmsg"	}, /* 241 */
+	{ -1,	0,	sys_sendto,		"sendto"	}, /* 242 */
+	{ -1,	0,	sys_getpeername,	"getpeername"	}, /* 243 */
+	{ -1,	0,	sys_getsockname,	"getsockname"	}, /* 244 */
+	{ -1,	0,	sys_getsockopt,		"getsockopt"	}, /* 245 */
+	{ -1,	0,	sys_setsockopt,		"setsockopt"	}, /* 246 */
+	{ -1,	0,	sys_sockconfig,		"sockconfig"	}, /* 247 */
+	{ -1,	0,	sys_ntp_gettime,	"ntp_gettime"	}, /* 248 */
+	{ -1,	0,	sys_ntp_adjtime,	"ntp_adjtime"	}, /* 249 */
 	{ -1,	0,	printargs,		"SYS_250"	}, /* 250 */
 #endif /* !MIPS */
 	{ -1,	0,	printargs,		"SYS_251"	}, /* 251 */
diff -u -r strace-3.1.0.1/util.c strace-3.1.0.1.local/util.c
--- strace-3.1.0.1/util.c	Sun Oct 27 19:30:42 1996
+++ strace-3.1.0.1.local/util.c	Thu Feb 11 21:08:44 1999
@@ -26,7 +26,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- *	$Id: util.c,v 2.38 1996/10/28 03:30:42 jrs Exp $
+ *	$Id: util.c,v 2.37 1996/05/21 03:32:23 jrs Exp $
  */
 
 #include "defs.h"
@@ -604,9 +604,9 @@
 int len;
 char *laddr;
 {
-#ifdef SRVR4
+#ifndef SUNOS4
 	return umoven(tcp, addr, len, laddr);
-#else /* !SVR4 */
+#else /* SUNOS4 */
 	int pid = tcp->pid;
 	int i, n, m;
 	union {
@@ -645,7 +645,7 @@
 		addr += sizeof(long), laddr += m, len -= m;
 	}
 	return 0;
-#endif /* !SVR4 */
+#endif /* SUNOS4 */
 }
 
 #ifdef LINUX
