Hopefully fix the windows build to grovel time structures correctly.
authorJoshua Elsasser <joshua@elsasser.org>
Sun, 9 Jun 2013 04:36:48 +0000 (21:36 -0700)
committerJoshua Elsasser <joshua@elsasser.org>
Thu, 20 Jun 2013 03:12:38 +0000 (20:12 -0700)
It is a little misleading to say "correctly" since struct timespec
doesn't really exist on windows. Groveling the definition that we
define in our own pthreads wrapper seems the most consistent choice.

The grovel-headers.c changes have only been tested in isolation, not
with a real build. Thanks to Kyle Isom for testing, any resulting
build problems are entirely my fault.

src/runtime/pthreads_win32.h
tools-for-build/grovel-headers.c

index b91c0f9..a8f99a8 100644 (file)
@@ -16,8 +16,12 @@ typedef int sigset_t;
 
 /* 0 - Misc */
 
+#ifndef SIG_IGN
 #define SIG_IGN ((void (*)(int, siginfo_t, void*))-1)
+#endif
+#ifndef SIG_DFL
 #define SIG_DFL ((void (*)(int, siginfo_t, void*))-2)
+#endif
 
 #define SIGHUP    1
 #define SIGINT    2 /* Interactive attention */
@@ -42,7 +46,9 @@ typedef int sigset_t;
 
 #define SIGRTMIN  23
 
+#ifndef NSIG
 #define NSIG 32     /* maximum signal number + 1 */
+#endif
 
 /* To avoid overusing system TLS, pthread provides its own */
 #define PTHREAD_KEYS_MAX 128
index 315c6cd..9be8744 100644 (file)
@@ -31,6 +31,7 @@
   #include <windows.h>
   #include <shlobj.h>
   #include <wincrypt.h>
+  #include <winsock2.h>
   #undef boolean
 #else
   #include <poll.h>
   #include <sys/sysctl.h>
 #endif
 
+#ifdef _WIN32
+  #include "pthreads_win32.h"
+#endif
+
 #include "wrap.h"
 #include "gc.h"