Index: /trunk/src/gmake/kmkbuiltin/setmode.c
===================================================================
--- /trunk/src/gmake/kmkbuiltin/setmode.c	(revision 615)
+++ /trunk/src/gmake/kmkbuiltin/setmode.c	(revision 616)
@@ -33,5 +33,5 @@
  */
 
-#include <sys/cdefs.h>
+/*#include <sys/cdefs.h>*/
 #if defined(LIBC_SCCS) && !defined(lint)
 #if 0
@@ -42,5 +42,5 @@
 #endif /* LIBC_SCCS and not lint */
 
-#include "namespace.h"
+/*#include "namespace.h"*/
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -51,5 +51,9 @@
 #include <signal.h>
 #include <stdlib.h>
+#ifndef _MSC_VER
 #include <unistd.h>
+#else
+#include "mscfakes.h"
+#endif 
 
 #ifdef SETMODE_DEBUG
@@ -57,8 +61,8 @@
 #endif
 
-#ifdef __weak_alias
+/*#ifdef __weak_alias
 __weak_alias(getmode,_getmode)
 __weak_alias(setmode,_setmode)
-#endif
+#endif*/
 
 #define	SET_LEN	6		/* initial # of bitcmd struct to malloc */
@@ -77,9 +81,21 @@
 #define	CMD2_UBITS	0x10
 
-static BITCMD	*addcmd __P((BITCMD *, int, int, int, u_int));
-static void	 compress_mode __P((BITCMD *));
+static BITCMD	*addcmd(BITCMD *, int, int, int, u_int);
+static void	 compress_mode(BITCMD *);
 #ifdef SETMODE_DEBUG
-static void	 dumpmode __P((BITCMD *));
-#endif
+static void	 dumpmode(BITCMD *);
+#endif
+
+#ifndef _DIAGASSERT
+# define _DIAGASSERT assert
+#endif 
+
+#ifndef S_ISTXT
+# ifdef S_ISVTX
+#  define S_ISTXT S_ISVTX
+# else
+#  define S_ISTXT 0
+# endif
+#endif /* !S_ISTXT */
 
 /*
@@ -186,5 +202,7 @@
 	char op, *ep;
 	BITCMD *set, *saveset, *endset;
+#ifndef _MSC_VER
 	sigset_t signset, sigoset;
+#endif
 	mode_t mask;
 	int equalopdone = 0;	/* pacify gcc */
@@ -200,9 +218,13 @@
 	 * as best we can.
 	 */
+#ifndef _MSC_VER
 	sigfillset(&signset);
 	(void)sigprocmask(SIG_BLOCK, &signset, &sigoset);
+#endif 
 	(void)umask(mask = umask(0));
 	mask = ~mask;
+#ifndef _MSC_VER
 	(void)sigprocmask(SIG_SETMASK, &sigoset, NULL);
+#endif
 
 	setlen = SET_LEN + 2;
