OS X Tiger changes
diff --git a/include/u.h b/include/u.h
index b9f07c4..8e889e6 100644
--- a/include/u.h
+++ b/include/u.h
@@ -72,8 +72,15 @@
 #	include <sys/types.h>
 #	include <pthread.h>
 #	define PLAN9PORT_USING_PTHREADS 1
-#	undef _NEEDUSHORT
-#	undef _NEEDUINT
+#	if __GNUC__ < 4
+#		undef _NEEDUSHORT
+#		undef _NEEDUINT
+#	endif
+#	undef _ANSI_SOURCE
+#	undef _POSIX_C_SOURCE
+#	if !defined(NSIG)
+#		define NSIG 32
+#	endif
 #	define _NEEDLL 1
 #elif defined(__NetBSD__)
 #	include <sched.h>
@@ -131,10 +138,10 @@
 #define AUTOLIB(x)	static int __p9l_autolib_ ## x = 1;
 
 /*
- * Gcc 3 is too smart for its own good.
+ * Gcc is too smart for its own good.
  */
-#if defined(__GNUC__) && !defined(__APPLE_CC__)
-#	if __GNUC__ >= 3
+#if defined(__GNUC__)
+#	if __GNUC__ >= 4 || (__GNUC__==3 && !defined(__APPLE_CC__))
 #		undef AUTOLIB
 #		define AUTOLIB(x) int __p9l_autolib_ ## x __attribute__ ((weak));
 #	else
diff --git a/src/lib9/notify.c b/src/lib9/notify.c
index 9c8012c..2a562b6 100644
--- a/src/lib9/notify.c
+++ b/src/lib9/notify.c
@@ -66,7 +66,9 @@
 	SIGVTALRM,	0,
 	SIGUSR1,		0,
 	SIGUSR2,		0,
+#ifdef SIGWINCH
 	SIGWINCH,	Restart|Ignore,
+#endif
 #ifdef SIGINFO
 	SIGINFO,		Restart|Ignore,
 #endif
diff --git a/src/libthread/daemonize.c b/src/libthread/daemonize.c
index a551efa..e047ab0 100644
--- a/src/libthread/daemonize.c
+++ b/src/libthread/daemonize.c
@@ -74,7 +74,12 @@
 	SIGALRM, SIGTERM, SIGCHLD, SIGSTOP,
 	/*SIGTSTP, SIGTTIN, SIGTTOU,*/ SIGURG, 
 	SIGXCPU, SIGXFSZ, SIGVTALRM, SIGPROF,
-	SIGWINCH, SIGIO, 
+#ifdef SIGWINCH
+	SIGWINCH,
+#endif
+#ifdef SIGIO
+	SIGIO,
+#endif
 #ifdef SIGEMT
 	SIGEMT,
 #endif