2006-12-10  Dmitry V. Levin <ldv@altlinux.org>

	Make several global variables static.
	#ifdef definitions of rarely unused functions.
	* defs.h (rflag, tflag, outfname): Remove.
	* strace.c (iflag, interactive, pflag_seen, rflag, tflag,
	outfname, username): Make static.
	* desc.c (sys_getdtablesize): Define only for
	ALPHA || FREEBSD || SUNOS4.
	* file.c (sys_fchroot): Define only for SUNOS4 || SVR4.
	(sys_mkfifo): Define only for FREEBSD.
	* mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4.
	(sys_getpagesize): Define only for
	ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4.
	* net.c (sys_so_socket): Define only for SVR4.
	* process.c (sys_gethostid): Define only for
	FREEBSD || SUNOS4 || SVR4.
	(sys_gethostname): Define only for
	ALPHA || FREEBSD || SUNOS4 || SVR4.
	(sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4.
	(sys_execv): Define only for SPARC || SPARC64 || SUNOS4.
	* signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4.
	(sys_sighold, sys_sigwait): Define only for SVR4.
	(sys_killpg): Define only for FREEBSD || SUNOS4.
	* stream.c (sys_getmsg): Define only for
	SPARC || SPARC64 || SUNOS4 || SVR4.
	* syscall.c (sys_indir): Define only for SUNOS4.
diff --git a/ChangeLog b/ChangeLog
index f7c87dc..48817b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2006-12-10  Dmitry V. Levin <ldv@altlinux.org>
+
+	Make several global variables static.
+	#ifdef definitions of rarely unused functions.
+	* defs.h (rflag, tflag, outfname): Remove.
+	* strace.c (iflag, interactive, pflag_seen, rflag, tflag,
+	outfname, username): Make static.
+	* desc.c (sys_getdtablesize): Define only for
+	ALPHA || FREEBSD || SUNOS4.
+	* file.c (sys_fchroot): Define only for SUNOS4 || SVR4.
+	(sys_mkfifo): Define only for FREEBSD.
+	* mem.c (sys_sbrk): Define only for FREEBSD || SUNOS4.
+	(sys_getpagesize): Define only for
+	ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4.
+	* net.c (sys_so_socket): Define only for SVR4.
+	* process.c (sys_gethostid): Define only for
+	FREEBSD || SUNOS4 || SVR4.
+	(sys_gethostname): Define only for
+	ALPHA || FREEBSD || SUNOS4 || SVR4.
+	(sys_setpgrp): Define only for ALPHA || SUNOS4 || SVR4.
+	(sys_execv): Define only for SPARC || SPARC64 || SUNOS4.
+	* signal.c (sys_sigblock): Define only for FREEBSD || SUNOS4.
+	(sys_sighold, sys_sigwait): Define only for SVR4.
+	(sys_killpg): Define only for FREEBSD || SUNOS4.
+	* stream.c (sys_getmsg): Define only for
+	SPARC || SPARC64 || SUNOS4 || SVR4.
+	* syscall.c (sys_indir): Define only for SUNOS4.
+
 2006-11-27  Dmitry V. Levin  <ldv@altlinux.org>
 
 	* system.c [LINUX]: Define CTL_PROC, since Linux 2.6.18+ headers
diff --git a/defs.h b/defs.h
index 312f28e..f60b558 100644
--- a/defs.h
+++ b/defs.h
@@ -409,9 +409,8 @@
 extern struct tcb **tcbtab;
 extern int *qual_flags;
 extern int debug, followfork, followvfork;
-extern int rflag, tflag, dtime, cflag, xflag, qflag;
+extern int dtime, cflag, xflag, qflag;
 extern int acolumn;
-extern char *outfname;
 extern unsigned int nprocs, tcbtabsize;
 extern int max_strlen;
 extern struct tcb *tcp_last;
diff --git a/desc.c b/desc.c
index 9cdabbb..c3a7e6c 100644
--- a/desc.c
+++ b/desc.c
@@ -391,12 +391,14 @@
 	return 0;
 }
 
+#if defined(ALPHA) || defined(FREEBSD) || defined(SUNOS4)
 int
 sys_getdtablesize(tcp)
 struct tcb *tcp;
 {
 	return 0;
 }
+#endif /* ALPHA || FREEBSD || SUNOS4 */
 
 static int
 decode_select(tcp, args, bitness)
diff --git a/file.c b/file.c
index cb0c535..dbd1661 100644
--- a/file.c
+++ b/file.c
@@ -1824,6 +1824,7 @@
 	return 0;
 }
 
+#if defined(SUNOS4) || defined(SVR4)
 int
 sys_fchroot(tcp)
 struct tcb *tcp;
@@ -1833,6 +1834,7 @@
 	}
 	return 0;
 }
+#endif /* SUNOS4 || SVR4 */
 
 int
 sys_link(tcp)
@@ -2164,6 +2166,7 @@
 }
 #endif
 
+#ifdef FREEBSD
 int
 sys_mkfifo(tcp)
 struct tcb *tcp;
@@ -2174,6 +2177,7 @@
 	}
 	return 0;
 }
+#endif /* FREEBSD */
 
 int
 sys_fsync(tcp)
diff --git a/mem.c b/mem.c
index 618212a..06da6e1 100644
--- a/mem.c
+++ b/mem.c
@@ -70,6 +70,7 @@
 #endif
 }
 
+#if defined(FREEBSD) || defined(SUNOS4)
 int
 sys_sbrk(tcp)
 struct tcb *tcp;
@@ -79,6 +80,7 @@
 	}
 	return RVAL_HEX;
 }
+#endif /* FREEBSD || SUNOS4 */
 
 static const struct xlat mmap_prot[] = {
 	{ PROT_NONE,	"PROT_NONE",	},
@@ -539,6 +541,7 @@
 	return 0;
 }
 
+#if defined(ALPHA) || defined(FREEBSD) || defined(IA64) || defined(SUNOS4) || defined(SVR4)
 int
 sys_getpagesize(tcp)
 struct tcb *tcp;
@@ -547,6 +550,7 @@
 		return RVAL_HEX;
 	return 0;
 }
+#endif /* ALPHA || FREEBSD || IA64 || SUNOS4 || SVR4 */
 
 #if defined(LINUX) && defined(__i386__)
 void
diff --git a/net.c b/net.c
index c627094..5c276ea 100644
--- a/net.c
+++ b/net.c
@@ -1205,6 +1205,7 @@
 	return 0;
 }
 
+#ifdef SVR4
 int
 sys_so_socket(tcp)
 struct tcb *tcp;
@@ -1231,6 +1232,7 @@
 	}
 	return 0;
 }
+#endif /* SVR4 */
 
 int
 sys_bind(tcp)
diff --git a/process.c b/process.c
index bea69a1..06eb76e 100644
--- a/process.c
+++ b/process.c
@@ -305,6 +305,7 @@
 
 #endif /* HAVE_PRCTL */
 
+#if defined(FREEBSD) || defined(SUNOS4) || defined(SVR4)
 int
 sys_gethostid(tcp)
 struct tcb *tcp;
@@ -313,6 +314,7 @@
 		return RVAL_HEX;
 	return 0;
 }
+#endif /* FREEBSD || SUNOS4 || SVR4 */
 
 int
 sys_sethostname(tcp)
@@ -325,6 +327,7 @@
 	return 0;
 }
 
+#if defined(ALPHA) || defined(FREEBSD) || defined(SUNOS4) || defined(SVR4)
 int
 sys_gethostname(tcp)
 struct tcb *tcp;
@@ -338,6 +341,7 @@
 	}
 	return 0;
 }
+#endif /* ALPHA || FREEBSD || SUNOS4 || SVR4 */
 
 int
 sys_setdomainname(tcp)
@@ -1473,6 +1477,7 @@
 }
 #endif /* LINUX */
 
+#if defined(ALPHA) || defined(SUNOS4) || defined(SVR4)
 int
 sys_setpgrp(tcp)
 struct tcb *tcp;
@@ -1484,6 +1489,7 @@
 	}
 	return 0;
 }
+#endif /* ALPHA || SUNOS4 || SVR4 */
 
 int
 sys_getpgrp(tcp)
@@ -1713,6 +1719,7 @@
 	tprintf(fmt, count, count == 1 ? "" : "s");
 }
 
+#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4)
 int
 sys_execv(tcp)
 struct tcb *tcp;
@@ -1733,6 +1740,7 @@
 	}
 	return 0;
 }
+#endif /* SPARC || SPARC64 || SUNOS4 */
 
 int
 sys_execve(tcp)
diff --git a/signal.c b/signal.c
index fde89f2..41f9ad4 100644
--- a/signal.c
+++ b/signal.c
@@ -1058,12 +1058,14 @@
 	return 0;
 }
 
+#if defined(SUNOS4) || defined(FREEBSD)
 int
 sys_sigblock(tcp)
 struct tcb *tcp;
 {
 	return sys_sigsetmask(tcp);
 }
+#endif /* SUNOS4 || FREEBSD */
 
 #endif /* !SVR4 */
 
@@ -1206,6 +1208,7 @@
 	}
 }
 
+#ifdef SVR4
 int
 sys_sighold(tcp)
 struct tcb *tcp;
@@ -1215,6 +1218,7 @@
 	}
 	return 0;
 }
+#endif /* SVR4 */
 
 #endif /* HAVE_SIGACTION */
 
@@ -1700,12 +1704,14 @@
 	return 0;
 }
 
+#if defined(FREEBSD) || defined(SUNOS4)
 int
 sys_killpg(tcp)
 struct tcb *tcp;
 {
 	return sys_kill(tcp);
 }
+#endif /* FREEBSD || SUNOS4 */
 
 #ifdef LINUX
 int
@@ -1737,6 +1743,7 @@
 	return 0;
 }
 
+#ifdef SVR4
 int sys_sigwait(tcp)
 struct tcb *tcp;
 {
@@ -1756,6 +1763,7 @@
 	}
 	return 0;
 }
+#endif /* SVR4 */
 
 #ifdef LINUX
 
diff --git a/strace.c b/strace.c
index fd3f7bd..7d5f86b 100644
--- a/strace.c
+++ b/strace.c
@@ -63,21 +63,20 @@
 #endif
 #endif
 
-int debug = 0, followfork = 0, followvfork = 0, interactive = 0;
-int rflag = 0, tflag = 0, dtime = 0, cflag = 0;
-int iflag = 0, xflag = 0, qflag = 0;
-int pflag_seen = 0;
+int debug = 0, followfork = 0, followvfork = 0;
+int dtime = 0, cflag = 0, xflag = 0, qflag = 0;
+static int iflag = 0, interactive = 0, pflag_seen = 0, rflag = 0, tflag = 0;
 
 /* Sometimes we want to print only succeeding syscalls. */
 int not_failing_only = 0;
 
-char *username = NULL;
+static char *username = NULL;
 uid_t run_uid;
 gid_t run_gid;
 
 int acolumn = DEFAULT_ACOLUMN;
 int max_strlen = DEFAULT_STRLEN;
-char *outfname = NULL;
+static char *outfname = NULL;
 FILE *outf;
 struct tcb **tcbtab;
 unsigned int nprocs, tcbtabsize;
diff --git a/stream.c b/stream.c
index eb72d62..9c24ad6 100644
--- a/stream.c
+++ b/stream.c
@@ -129,6 +129,7 @@
 	return 0;
 }
 
+#if defined(SPARC) || defined(SPARC64) || defined(SUNOS4) || defined(SVR4)
 int
 sys_getmsg(tcp)
 struct tcb *tcp;
@@ -175,6 +176,7 @@
 	}
 	return RVAL_HEX | RVAL_STR;
 }
+#endif /* SPARC || SPARC64 || SUNOS4 || SVR4 */
 
 #if defined SYS_putpmsg || defined SYS_getpmsg
 static const struct xlat pmsgflags[] = {
diff --git a/syscall.c b/syscall.c
index 2e5053a..05679ca 100644
--- a/syscall.c
+++ b/syscall.c
@@ -2660,6 +2660,7 @@
 	return val;
 }
 
+#ifdef SUNOS4
 /*
  * Apparently, indirect system calls have already be converted by ptrace(2),
  * so if you see "indir" this program has gone astray.
@@ -2682,6 +2683,7 @@
 	}
 	return 0;
 }
+#endif /* SUNOS4 */
 
 static int
 time_cmp(a, b)