I just noticed a bug in my previous patch: my test-run compiling logwtmp.c failed to notice that I botched the strncpy() prototype, because my <utmp.h> file defines the OLD_TIME macro which bypasses the branch of the source code where logwtmp() is defined. Below is a better fix for this: #include the relevant system headers which declare these functions, rather than inserting the prototypes explicitly in the code. I've also cleaned up the function declaration for logwtmp() itself while I was at it. --Ken Pizzini diff -ru tzcode2007-cleancast/logwtmp.c tzcode2007-foo/logwtmp.c --- tzcode2007-cleancast/logwtmp.c 2007-11-13 15:08:32.000000000 -0800 +++ tzcode2007-foo/logwtmp.c 2007-11-13 17:52:54.000000000 -0800 @@ -39,20 +39,20 @@ #ifndef OLD_TIME +#include <string.h> +#include <time.h> #include <sys/file.h> #include <sys/time.h> #include <sys/stat.h> #define WTMPFILE "/usr/adm/wtmp" -logwtmp(line, name, host) - char *line, *name, *host; +void +logwtmp(const char *line, const char *name, const char *host) { struct utmp ut; struct stat buf; int fd; - time_t time(time_t *); - char *strncpy(char *, const char *); if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) < 0) return; diff -ru tzcode2007-cleancast/date.c tzcode2007-foo/date.c --- tzcode2007-cleancast/date.c 2007-11-13 17:26:02.000000000 -0800 +++ tzcode2007-foo/date.c 2007-11-13 17:53:29.000000000 -0800 @@ -440,7 +440,7 @@ #define TSPTYPES #include <protocols/timed.h> -extern int logwtmp(); +extern void logwtmp(const char *line, const char *name, const char *host); #if HAVE_SETTIMEOFDAY == 1 #define settimeofday(t, tz) (settimeofday)(t)