diff --git a/src/osdef2.h.in b/src/osdef2.h.in
new file mode 100644
index 0000000..cca78b0
--- /dev/null
+++ b/src/osdef2.h.in
@@ -0,0 +1,88 @@
+/*
+ * osdef2.h.in - See osdef1.h.in for a description.
+ */
+
+extern int	remove __ARGS((const char *));
+extern int	rename __ARGS((const char *, const char *));
+extern int	free __ARGS((char *));
+extern char	*malloc __ARGS((unsigned int));
+extern char	*realloc __ARGS((char *, int));
+extern char	*getenv __ARGS((char *));
+extern int	setenv __ARGS((char *, char *, int));
+extern int	putenv __ARGS((const char *));
+
+extern int	gethostname __ARGS((char *, int));
+extern void	perror __ARGS((char *));
+
+extern int	sleep __ARGS((int));
+extern int	usleep __ARGS((unsigned int));
+extern unsigned int	alarm __ARGS((unsigned int));
+extern int	chdir __ARGS((char *));
+extern int	fchdir __ARGS((int));
+#ifndef stat	/* could be redefined to stat64() */
+extern int	stat __ARGS((const char *, struct stat *));
+#endif
+#ifndef lstat	/* could be redefined to lstat64() */
+extern int	lstat __ARGS((const char *, struct stat *));
+#endif
+extern int	fstat __ARGS((int, struct stat *));
+extern int	open __ARGS((const char *, int, ...));
+extern int	close __ARGS((int));
+extern int	read __ARGS((int, char *, size_t));
+extern int	write __ARGS((int, char *, size_t));
+extern int	pipe __ARGS((int *));
+extern off_t	lseek __ARGS((int, off_t, int));
+extern void	sync __ARGS((void));
+extern uid_t	getuid __ARGS((void));
+extern gid_t	getgid __ARGS((void));
+extern void	qsort __ARGS((void *, size_t, size_t, int (*)(const void *, const void *)));
+
+extern int	isatty __ARGS((int));
+extern int	getpid __ARGS((void));
+extern int	dup __ARGS((int));
+extern int	unlink __ARGS((const char *));
+extern int	link __ARGS((const char *, const char *));
+extern int	mkdir __ARGS((const char *, mode_t));
+extern int	rmdir __ARGS((const char *));
+
+extern int	tgetent __ARGS((char *, char *));
+extern int	tgetnum __ARGS((char *));
+extern int	tgetflag __ARGS((char *));
+extern char	*tgoto __ARGS((char *, int, int));
+extern int	tputs __ARGS((char *, int, int (*)(int)));
+
+#ifdef HAVE_TERMIOS_H
+struct termios;		/* for tcgetattr __ARGS */
+extern int	tcgetattr __ARGS((int, struct termios *));
+extern int	tcsetattr __ARGS((int, int, const struct termios *));
+#endif
+
+#ifdef HAVE_SYS_STATFS_H
+struct statfs;		/* for fstatfs __ARGS */
+extern int	fstatfs __ARGS((int, struct statfs *, int, int));
+#endif
+
+#ifdef HAVE_GETTIMEOFDAY
+struct timeval;		/* for gettimeofday __ARGS */
+struct timezone;	/* for gettimeofday __ARGS */
+extern int	gettimeofday __ARGS((struct timeval *tp, struct timezone *tzp));
+extern time_t	time __ARGS((time_t *));
+#endif
+
+#ifdef HAVE_GETPWNAM
+struct passwd;		/* for getpwnam __ARGS */
+extern struct passwd *getpwnam __ARGS((const char *));
+#endif
+
+#ifdef USE_TMPNAM
+extern char	*tmpnam __ARGS((char *));
+#else
+extern char	*mktemp __ARGS((char *));
+#endif
+
+#ifdef ISC
+extern int	_Xmblen __ARGS((char const *, size_t));
+#else
+		/* This is different from the header but matches mblen() */
+extern int	_Xmblen __ARGS((char *, size_t));
+#endif
