]> git.sur5r.net Git - bacula/bacula/commitdiff
ebl Tweak
authorEric Bollengier <eric@eb.homelinux.org>
Thu, 8 Jan 2009 10:19:56 +0000 (10:19 +0000)
committerEric Bollengier <eric@eb.homelinux.org>
Thu, 8 Jan 2009 10:19:56 +0000 (10:19 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@8337 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/win32/patches/pthreads-w64+bacula.patch [deleted file]
bacula/src/win32/patches/pthreads-w64.patch [new file with mode: 0644]

diff --git a/bacula/src/win32/patches/pthreads-w64+bacula.patch b/bacula/src/win32/patches/pthreads-w64+bacula.patch
deleted file mode 100644 (file)
index 209ff6d..0000000
+++ /dev/null
@@ -1,970 +0,0 @@
-diff -Naur ../pthreads-snap-2004-06-22/GNUmakefile ./GNUmakefile
---- ../pthreads-snap-2004-06-22/GNUmakefile    2004-05-20 02:56:52.000000000 +0200
-+++ ./GNUmakefile      2009-01-07 15:57:36.000000000 +0100
-@@ -48,9 +48,9 @@
- #OPT  = -g
- #OPT  = -O3 -DTEST_ICE
--OPT   = -O3 -finline-functions
-+OPT   = $(CLEANUP) -O3  -DHAVE_STRUCT_TIMESPEC -D__MINGW32__ -finline-functions
--LFLAGS                = -lwsock32
-+LFLAGS                = -lws2_32
- GC_CFLAGS     = -D__CLEANUP_C
- GCE_CFLAGS    = -D__CLEANUP_CXX -mthreads
-@@ -408,16 +408,16 @@
-       @ $(MAKE) clean GC
- GC:
--              $(MAKE) CC=gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" $(GC_DLL)
-+              $(MAKE) CC=mingw32-gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" $(GC_DLL)
- GCE:
--              $(MAKE) CC=g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" $(GCE_DLL)
-+              $(MAKE) CC=mingw32-g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" $(GCE_DLL)
- GC-inlined:
--              $(MAKE) CC=gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_INLINED_STAMP)
-+              $(MAKE) CC=mingw32-gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_INLINED_STAMP)
- GCE-inlined:
--              $(MAKE) CC=g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GCE_INLINED_STAMP)
-+              $(MAKE) CC=mingw32-g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GCE_INLINED_STAMP)
- tests:
-       @ cd tests
-@@ -436,24 +436,24 @@
- $(GC_DLL): $(DLL_OBJS)
-       $(CC) $(OPT) -shared -o $(GC_DLL) $(DLL_OBJS) $(LFLAGS)
--      dlltool -z pthread.def $(DLL_OBJS)
--      dlltool -k --dllname $@ --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
-+      mingw32-dlltool -z pthread.def $(DLL_OBJS)
-+      mingw32-dlltool -k --dllname $@ --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
- $(GCE_DLL): $(DLL_OBJS)
-       $(CC) $(OPT) -mthreads -shared -o $(GCE_DLL) $(DLL_OBJS) $(LFLAGS)
--      dlltool -z pthread.def $(DLL_OBJS)
--      dlltool -k --dllname $@ --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
-+      mingw32-dlltool -z pthread.def $(DLL_OBJS)
-+      mingw32-dlltool -k --dllname $@ --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
- $(GC_INLINED_STAMP): $(DLL_INLINED_OBJS)
-       $(CC) $(OPT) -shared -o $(GC_DLL) $(DLL_INLINED_OBJS) $(LFLAGS)
--      dlltool -z pthread.def $(DLL_INLINED_OBJS)
--      dlltool -k --dllname $(GC_DLL) --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
-+      mingw32-dlltool -z pthread.def $(DLL_INLINED_OBJS)
-+      mingw32-dlltool -k --dllname $(GC_DLL) --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
-       echo touched > $(GC_INLINED_STAMP)
- $(GCE_INLINED_STAMP): $(DLL_INLINED_OBJS)
-       $(CC) $(OPT) -mthreads -shared -o $(GCE_DLL) $(DLL_INLINED_OBJS)  $(LFLAGS)
--      dlltool -z pthread.def $(DLL_INLINED_OBJS)
--      dlltool -k --dllname $(GCE_DLL) --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
-+      mingw32-dlltool -z pthread.def $(DLL_INLINED_OBJS)
-+      mingw32-dlltool -k --dllname $(GCE_DLL) --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
-       echo touched > $(GCE_INLINED_STAMP)
- clean:
-diff -Naur ../pthreads-snap-2004-06-22/implement.h ./implement.h
---- ../pthreads-snap-2004-06-22/implement.h    2004-06-22 08:12:54.000000000 +0200
-+++ ./implement.h      2009-01-07 15:57:36.000000000 +0100
-@@ -38,7 +38,9 @@
- #ifndef _IMPLEMENT_H
- #define _IMPLEMENT_H
-+#ifndef _WIN32_WINNT
- #define _WIN32_WINNT 0x400
-+#endif
- #include <windows.h>
-diff -Naur ../pthreads-snap-2004-06-22/pthread_cancel.c ./pthread_cancel.c
---- ../pthreads-snap-2004-06-22/pthread_cancel.c       2004-05-17 03:38:02.000000000 +0200
-+++ ./pthread_cancel.c 2009-01-07 15:57:36.000000000 +0100
-@@ -70,7 +70,7 @@
- }
- static void CALLBACK
--ptw32_cancel_callback (DWORD unused)
-+ptw32_cancel_callback (ULONG_PTR unused)
- {
-   ptw32_throw (PTW32_EPS_CANCEL);
-diff -Naur ../pthreads-snap-2004-06-22/pthread_exit.c ./pthread_exit.c
---- ../pthreads-snap-2004-06-22/pthread_exit.c 2004-05-17 03:38:03.000000000 +0200
-+++ ./pthread_exit.c   2009-01-07 15:57:36.000000000 +0100
-@@ -89,7 +89,7 @@
-        */
- #if ! defined (__MINGW32__) || defined (__MSVCRT__)
--      _endthreadex ((unsigned) value_ptr);
-+      _endthreadex ((unsigned) ((ULONG_PTR)value_ptr));
- #else
-       _endthread ();
- #endif
-diff -Naur ../pthreads-snap-2004-06-22/pthread_getspecific.c ./pthread_getspecific.c
---- ../pthreads-snap-2004-06-22/pthread_getspecific.c  2004-05-17 03:38:03.000000000 +0200
-+++ ./pthread_getspecific.c    2009-01-07 15:57:36.000000000 +0100
-@@ -63,13 +63,18 @@
-       * ------------------------------------------------------
-       */
- {
--  int lasterror = GetLastError ();
--  int lastWSAerror = WSAGetLastError ();
-+  void *ptr;
--  void *ptr = TlsGetValue (key->key);
-+  if (key == NULL) {
-+     ptr = NULL;
-+  } else {
-+     int lasterror = GetLastError ();
-+     int lastWSAerror = WSAGetLastError ();
--  SetLastError (lasterror);
--  WSASetLastError (lastWSAerror);
-+     ptr = TlsGetValue(key->key);
-+     SetLastError(lasterror);
-+     WSASetLastError(lastWSAerror);
-+  }
-   return ptr;
- }
-diff -Naur ../pthreads-snap-2004-06-22/pthread.h ./pthread.h
---- ../pthreads-snap-2004-06-22/pthread.h      2004-06-22 08:12:54.000000000 +0200
-+++ ./pthread.h        2009-01-07 15:57:36.000000000 +0100
-@@ -274,10 +274,6 @@
- #endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
- #ifndef HAVE_STRUCT_TIMESPEC
--struct timespec {
--        long tv_sec;
--        long tv_nsec;
--};
- #endif /* HAVE_STRUCT_TIMESPEC */
- #ifndef SIG_BLOCK
-diff -Naur ../pthreads-snap-2004-06-22/ptw32_InterlockedCompareExchange.c ./ptw32_InterlockedCompareExchange.c
---- ../pthreads-snap-2004-06-22/ptw32_InterlockedCompareExchange.c     2004-05-17 03:38:03.000000000 +0200
-+++ ./ptw32_InterlockedCompareExchange.c       2009-01-07 15:57:36.000000000 +0100
-@@ -101,6 +101,19 @@
- #endif
- #else
-+#if defined(_WIN64)
-+   /*
-+    * Microsoft Visual C++ 7.1 and newer have _Interlocked intrinsics
-+    */
-+       {
-+               result = InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
-+       }
-+       else
-+       {
-+               result = InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
-+       }
-+ #else
-+
-   /*
-    * If execution gets to here then we should be running on a Win95 system
-@@ -110,7 +123,8 @@
-    */
-   result = 0;
--
-+#error Unsupported platform or compiler!
-+#endif
- #endif
- /* *INDENT-ON* */
-diff -Naur ../pthreads-snap-2004-06-22/ptw32_semwait.c ./ptw32_semwait.c
---- ../pthreads-snap-2004-06-22/ptw32_semwait.c        2004-05-17 09:59:47.000000000 +0200
-+++ ./ptw32_semwait.c  2009-01-07 15:57:36.000000000 +0100
-@@ -41,7 +41,7 @@
- #include "implement.h"
--INLINE int
-+int
- ptw32_semwait (sem_t * sem)
-      /*
-       * ------------------------------------------------------
-diff -Naur ../pthreads-snap-2004-06-22/ptw32_threadStart.c ./ptw32_threadStart.c
---- ../pthreads-snap-2004-06-22/ptw32_threadStart.c    2004-05-17 03:38:03.000000000 +0200
-+++ ./ptw32_threadStart.c      2009-01-07 15:57:36.000000000 +0100
-@@ -356,7 +356,7 @@
-     }
- #if ! defined (__MINGW32__) || defined (__MSVCRT__)
--  _endthreadex ((unsigned) status);
-+  _endthreadex ((unsigned) ((ULONG_PTR)status));
- #else
-   _endthread ();
- #endif
-@@ -366,7 +366,7 @@
-    */
- #if ! defined (__MINGW32__) || defined (__MSVCRT__)
--  return (unsigned) status;
-+  return (unsigned) ((ULONG_PTR)status);
- #endif
- }                             /* ptw32_threadStart */
-diff -Naur ../pthreads-snap-2004-06-22/ptw32_throw.c ./ptw32_throw.c
---- ../pthreads-snap-2004-06-22/ptw32_throw.c  2004-05-17 03:38:03.000000000 +0200
-+++ ./ptw32_throw.c    2009-01-07 15:57:36.000000000 +0100
-@@ -78,10 +78,10 @@
-       switch (exception)
-       {
-       case PTW32_EPS_CANCEL:
--        exitCode = (unsigned) PTHREAD_CANCELED;
-+        exitCode = (unsigned) ((ULONG_PTR)PTHREAD_CANCELED);
-         break;
-       case PTW32_EPS_EXIT:
--        exitCode = (unsigned) self->exitStatus;;
-+        exitCode = (unsigned) ((ULONG_PTR)self->exitStatus);;
-         break;
-       }
-diff -Naur ../pthreads-snap-2004-06-22/tests/barrier3.c ./tests/barrier3.c
---- ../pthreads-snap-2004-06-22/tests/barrier3.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/barrier3.c 2009-01-07 15:57:36.000000000 +0100
-@@ -41,7 +41,7 @@
- #include "test.h"
-  
- pthread_barrier_t barrier = NULL;
--static int result = 1;
-+static DWORD_PTR result = 1;
- void * func(void * arg)
- {
-diff -Naur ../pthreads-snap-2004-06-22/tests/barrier5.c ./tests/barrier5.c
---- ../pthreads-snap-2004-06-22/tests/barrier5.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/barrier5.c 2009-01-07 15:57:36.000000000 +0100
-@@ -90,7 +90,7 @@
- main()
- {
-   int i, j;
--  int result;
-+  DWORD_PTR result;
-   int serialThreadsTotal;
-   pthread_t t[NUMTHREADS + 1];
-@@ -112,7 +112,7 @@
-       for (i = 1; i <= j; i++)
-         {
-           assert(pthread_join(t[i], (void **) &result) == 0);
--          serialThreadsTotal += result;
-+           serialThreadsTotal += (int)result;
-         }
-       assert(serialThreadsTotal == BARRIERS - 1);
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel2.c ./tests/cancel2.c
---- ../pthreads-snap-2004-06-22/tests/cancel2.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/cancel2.c  2009-01-07 15:57:36.000000000 +0100
-@@ -217,7 +217,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(t[i], (void **) &result) == 0);
-       fail = (result != (int) PTHREAD_CANCELED);
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel3.c ./tests/cancel3.c
---- ../pthreads-snap-2004-06-22/tests/cancel3.c        2004-05-17 03:38:03.000000000 +0200
-+++ ./tests/cancel3.c  2009-01-07 15:57:36.000000000 +0100
-@@ -173,7 +173,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /*
-        * The thread does not contain any cancelation points, so
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel4.c ./tests/cancel4.c
---- ../pthreads-snap-2004-06-22/tests/cancel4.c        2004-05-17 03:38:03.000000000 +0200
-+++ ./tests/cancel4.c  2009-01-07 15:57:36.000000000 +0100
-@@ -173,7 +173,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /*
-        * The thread does not contain any cancelation points, so
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel5.c ./tests/cancel5.c
---- ../pthreads-snap-2004-06-22/tests/cancel5.c        2004-05-17 03:38:03.000000000 +0200
-+++ ./tests/cancel5.c  2009-01-07 15:57:36.000000000 +0100
-@@ -171,7 +171,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /*
-        * The thread does not contain any cancelation points, so
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel6a.c ./tests/cancel6a.c
---- ../pthreads-snap-2004-06-22/tests/cancel6a.c       2004-05-17 03:38:03.000000000 +0200
-+++ ./tests/cancel6a.c 2009-01-07 15:57:36.000000000 +0100
-@@ -161,7 +161,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /*
-        * The thread does not contain any cancelation points, so
-diff -Naur ../pthreads-snap-2004-06-22/tests/cancel6d.c ./tests/cancel6d.c
---- ../pthreads-snap-2004-06-22/tests/cancel6d.c       2004-05-17 03:38:03.000000000 +0200
-+++ ./tests/cancel6d.c 2009-01-07 15:57:36.000000000 +0100
-@@ -165,7 +165,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /*
-        * The thread does not contain any cancelation points, so
-diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup0.c ./tests/cleanup0.c
---- ../pthreads-snap-2004-06-22/tests/cleanup0.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/cleanup0.c 2009-01-07 15:57:36.000000000 +0100
-@@ -180,7 +180,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(t[i], (void **) &result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup1.c ./tests/cleanup1.c
---- ../pthreads-snap-2004-06-22/tests/cleanup1.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/cleanup1.c 2009-01-07 15:57:36.000000000 +0100
-@@ -195,7 +195,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(t[i], (void **) &result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup2.c ./tests/cleanup2.c
---- ../pthreads-snap-2004-06-22/tests/cleanup2.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/cleanup2.c 2009-01-07 15:57:36.000000000 +0100
-@@ -169,7 +169,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(t[i], (void **) &result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup3.c ./tests/cleanup3.c
---- ../pthreads-snap-2004-06-22/tests/cleanup3.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/cleanup3.c 2009-01-07 15:57:36.000000000 +0100
-@@ -172,7 +172,7 @@
-   for (i = 1; i <= NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(t[i], (void **) &result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar1_2.c ./tests/condvar1_2.c
---- ../pthreads-snap-2004-06-22/tests/condvar1_2.c     2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar1_2.c       2009-01-07 15:57:36.000000000 +0100
-@@ -89,7 +89,7 @@
- main()
- {
-   int i, j, k;
--  int result = -1;
-+  DWORD_PTR result = -1;
-   pthread_t t;
-   for (k = 0; k < NUM_LOOPS; k++)
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar2_1.c ./tests/condvar2_1.c
---- ../pthreads-snap-2004-06-22/tests/condvar2_1.c     2004-05-20 02:56:52.000000000 +0200
-+++ ./tests/condvar2_1.c       2009-01-07 15:57:36.000000000 +0100
-@@ -105,7 +105,7 @@
- {
-   int i;
-   pthread_t t[NUMTHREADS + 1];
--  int result = 0;
-+  DWORD_PTR result = 0;
-   struct _timeb currSysTime;
-   const DWORD NANOSEC_PER_MILLISEC = 1000000;
-@@ -116,7 +116,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar2.c ./tests/condvar2.c
---- ../pthreads-snap-2004-06-22/tests/condvar2.c       2004-05-20 02:56:52.000000000 +0200
-+++ ./tests/condvar2.c 2009-01-07 15:57:36.000000000 +0100
-@@ -99,7 +99,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-@@ -109,7 +109,7 @@
-   assert(pthread_mutex_unlock(&mutex) == 0);
-   {
--  int result = pthread_cond_destroy(&cv);
-+  DWORD_PTR result = pthread_cond_destroy(&cv);
-   if (result != 0)
-     {
-       fprintf(stderr, "Result = %s\n", error_string[result]);
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_1.c ./tests/condvar3_1.c
---- ../pthreads-snap-2004-06-22/tests/condvar3_1.c     2004-05-20 02:56:52.000000000 +0200
-+++ ./tests/condvar3_1.c       2009-01-07 15:57:36.000000000 +0100
-@@ -125,7 +125,7 @@
- {
-   int i;
-   pthread_t t[NUMTHREADS + 1];
--  int result = 0;
-+  DWORD_PTR result = 0;
-   struct _timeb currSysTime;
-   const DWORD NANOSEC_PER_MILLISEC = 1000000;
-@@ -137,7 +137,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_2.c ./tests/condvar3_2.c
---- ../pthreads-snap-2004-06-22/tests/condvar3_2.c     2004-05-20 02:56:52.000000000 +0200
-+++ ./tests/condvar3_2.c       2009-01-07 15:57:36.000000000 +0100
-@@ -127,7 +127,7 @@
- {
-   int i;
-   pthread_t t[NUMTHREADS + 1];
--  int result = 0;
-+  DWORD_PTR result = 0;
-   struct _timeb currSysTime;
-   const DWORD NANOSEC_PER_MILLISEC = 1000000;
-@@ -138,7 +138,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = abstime.tv_sec = currSysTime.time + 5;
-+  abstime.tv_sec = abstime.tv_sec = (long)currSysTime.time + 5;
-   abstime.tv_nsec = abstime2.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   assert(pthread_mutex_lock(&mutex) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_3.c ./tests/condvar3_3.c
---- ../pthreads-snap-2004-06-22/tests/condvar3_3.c     2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar3_3.c       2009-01-07 15:57:36.000000000 +0100
-@@ -96,7 +96,7 @@
-    /* get current system time */
-    _ftime(&currSysTime);
--   abstime.tv_sec = currSysTime.time;
-+   abstime.tv_sec = (long)currSysTime.time;
-    abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-    abstime.tv_sec += 1;
-@@ -120,7 +120,7 @@
-    assert(pthread_mutex_lock(&mtx) == 0);
--   abstime.tv_sec = currSysTime.time;
-+   abstime.tv_sec = (long)currSysTime.time;
-    abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-    abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3.c ./tests/condvar3.c
---- ../pthreads-snap-2004-06-22/tests/condvar3.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar3.c 2009-01-07 15:57:36.000000000 +0100
-@@ -127,7 +127,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   assert(pthread_create(&t[1], NULL, mythread, (void *) 1) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar4.c ./tests/condvar4.c
---- ../pthreads-snap-2004-06-22/tests/condvar4.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar4.c 2009-01-07 15:57:36.000000000 +0100
-@@ -132,7 +132,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-@@ -145,7 +145,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar5.c ./tests/condvar5.c
---- ../pthreads-snap-2004-06-22/tests/condvar5.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar5.c 2009-01-07 15:57:36.000000000 +0100
-@@ -131,7 +131,7 @@
-   /* get current system time */
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-@@ -144,7 +144,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar6.c ./tests/condvar6.c
---- ../pthreads-snap-2004-06-22/tests/condvar6.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar6.c 2009-01-07 15:57:36.000000000 +0100
-@@ -159,7 +159,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar7.c ./tests/condvar7.c
---- ../pthreads-snap-2004-06-22/tests/condvar7.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar7.c 2009-01-07 15:57:36.000000000 +0100
-@@ -169,7 +169,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 10;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar8.c ./tests/condvar8.c
---- ../pthreads-snap-2004-06-22/tests/condvar8.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar8.c 2009-01-07 15:57:36.000000000 +0100
-@@ -166,7 +166,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 10;
-diff -Naur ../pthreads-snap-2004-06-22/tests/condvar9.c ./tests/condvar9.c
---- ../pthreads-snap-2004-06-22/tests/condvar9.c       2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/condvar9.c 2009-01-07 15:57:36.000000000 +0100
-@@ -172,7 +172,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 5;
-diff -Naur ../pthreads-snap-2004-06-22/tests/context1.c ./tests/context1.c
---- ../pthreads-snap-2004-06-22/tests/context1.c       2004-05-20 02:56:52.000000000 +0200
-+++ ./tests/context1.c 2009-01-07 15:57:36.000000000 +0100
-@@ -125,7 +125,11 @@
-       /*
-        *_x86 only!!!
-        */
-+#if defined(_M_IX86)
-       context.Eip = (DWORD) anotherEnding;
-+#else
-+      context.Rip = (DWORD64) anotherEnding;
-+#endif
-       SetThreadContext(hThread, &context);
-       ResumeThread(hThread);
-     }
-diff -Naur ../pthreads-snap-2004-06-22/tests/delay2.c ./tests/delay2.c
---- ../pthreads-snap-2004-06-22/tests/delay2.c 2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/delay2.c   2009-01-07 15:57:36.000000000 +0100
-@@ -65,7 +65,7 @@
- main(int argc, char * argv[])
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   assert(pthread_mutex_lock(&mx) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/exception1.c ./tests/exception1.c
---- ../pthreads-snap-2004-06-22/tests/exception1.c     2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/exception1.c       2009-01-07 15:57:36.000000000 +0100
-@@ -226,7 +226,7 @@
-   for (i = 0; i < NUMTHREADS; i++)
-     {
-       int fail = 0;
--      int result = 0;
-+      DWORD_PTR result = 0;
-       /* Canceled thread */
-       assert(pthread_join(ct[i], (void **) &result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/GNUmakefile ./tests/GNUmakefile
---- ../pthreads-snap-2004-06-22/tests/GNUmakefile      2004-06-22 08:12:55.000000000 +0200
-+++ ./tests/GNUmakefile        2009-01-07 15:57:36.000000000 +0100
-@@ -64,7 +64,7 @@
- DLL   = pthread$(GCX).dll
- QAPC  = ../QueueUserAPCEx/User/quserex.dll
--COPYFILES     = $(HDR) $(LIB) $(DLL) $(QAPC)
-+COPYFILES     = $(HDR) $(LIB) $(DLL)
- # If a test case returns a non-zero exit code to the shell, make will
- # stop.
-diff -Naur ../pthreads-snap-2004-06-22/tests/join0.c ./tests/join0.c
---- ../pthreads-snap-2004-06-22/tests/join0.c  2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/join0.c    2009-01-07 15:57:36.000000000 +0100
-@@ -53,7 +53,7 @@
- main(int argc, char * argv[])
- {
-   pthread_t id;
--  int result;
-+  DWORD_PTR result;
-   /* Create a single thread and wait for it to exit. */
-   assert(pthread_create(&id, NULL, func, (void *) 123) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/join1.c ./tests/join1.c
---- ../pthreads-snap-2004-06-22/tests/join1.c  2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/join1.c    2009-01-07 15:57:36.000000000 +0100
-@@ -56,7 +56,7 @@
- {
-       pthread_t id[4];
-       int i;
--      int result;
-+      DWORD_PTR result;
-       /* Create a few threads and then exit. */
-       for (i = 0; i < 4; i++)
-diff -Naur ../pthreads-snap-2004-06-22/tests/join2.c ./tests/join2.c
---- ../pthreads-snap-2004-06-22/tests/join2.c  2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/join2.c    2009-01-07 15:57:36.000000000 +0100
-@@ -50,7 +50,7 @@
- {
-       pthread_t id[4];
-       int i;
--      int result;
-+      DWORD_PTR result;
-       /* Create a few threads and then exit. */
-       for (i = 0; i < 4; i++)
-diff -Naur ../pthreads-snap-2004-06-22/tests/join3.c ./tests/join3.c
---- ../pthreads-snap-2004-06-22/tests/join3.c  2004-05-22 03:17:58.000000000 +0200
-+++ ./tests/join3.c    2009-01-07 15:57:36.000000000 +0100
-@@ -50,7 +50,7 @@
- {
-       pthread_t id[4];
-       int i;
--      int result;
-+      DWORD_PTR result;
-       /* Create a few threads and then exit. */
-       for (i = 0; i < 4; i++)
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6e.c ./tests/mutex6e.c
---- ../pthreads-snap-2004-06-22/tests/mutex6e.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/mutex6e.c  2009-01-07 15:57:36.000000000 +0100
-@@ -74,7 +74,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   int mxType = -1;
-   assert(pthread_mutexattr_init(&mxAttr) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6es.c ./tests/mutex6es.c
---- ../pthreads-snap-2004-06-22/tests/mutex6es.c       2004-06-22 08:12:55.000000000 +0200
-+++ ./tests/mutex6es.c 2009-01-07 15:57:36.000000000 +0100
-@@ -73,7 +73,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   assert(mutex == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6r.c ./tests/mutex6r.c
---- ../pthreads-snap-2004-06-22/tests/mutex6r.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/mutex6r.c  2009-01-07 15:57:36.000000000 +0100
-@@ -73,7 +73,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   int mxType = -1;
-   assert(pthread_mutexattr_init(&mxAttr) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6rs.c ./tests/mutex6rs.c
---- ../pthreads-snap-2004-06-22/tests/mutex6rs.c       2004-06-22 08:12:55.000000000 +0200
-+++ ./tests/mutex6rs.c 2009-01-07 15:57:36.000000000 +0100
-@@ -72,7 +72,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   assert(mutex == PTHREAD_RECURSIVE_MUTEX_INITIALIZER);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex7e.c ./tests/mutex7e.c
---- ../pthreads-snap-2004-06-22/tests/mutex7e.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/mutex7e.c  2009-01-07 15:57:36.000000000 +0100
-@@ -74,7 +74,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   int mxType = -1;
-   assert(pthread_mutexattr_init(&mxAttr) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex7r.c ./tests/mutex7r.c
---- ../pthreads-snap-2004-06-22/tests/mutex7r.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/mutex7r.c  2009-01-07 15:57:36.000000000 +0100
-@@ -73,7 +73,7 @@
- main()
- {
-   pthread_t t;
--  int result = 0;
-+  DWORD_PTR result = 0;
-   int mxType = -1;
-   assert(pthread_mutexattr_init(&mxAttr) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8.c ./tests/mutex8.c
---- ../pthreads-snap-2004-06-22/tests/mutex8.c 2002-02-20 05:39:56.000000000 +0100
-+++ ./tests/mutex8.c   2009-01-07 15:57:36.000000000 +0100
-@@ -49,7 +49,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8e.c ./tests/mutex8e.c
---- ../pthreads-snap-2004-06-22/tests/mutex8e.c        2002-02-20 05:39:56.000000000 +0100
-+++ ./tests/mutex8e.c  2009-01-07 15:57:36.000000000 +0100
-@@ -57,7 +57,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8n.c ./tests/mutex8n.c
---- ../pthreads-snap-2004-06-22/tests/mutex8n.c        2002-02-20 05:39:56.000000000 +0100
-+++ ./tests/mutex8n.c  2009-01-07 15:57:36.000000000 +0100
-@@ -57,7 +57,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8r.c ./tests/mutex8r.c
---- ../pthreads-snap-2004-06-22/tests/mutex8r.c        2002-02-20 05:39:56.000000000 +0100
-+++ ./tests/mutex8r.c  2009-01-07 15:57:36.000000000 +0100
-@@ -57,7 +57,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock2_t.c ./tests/rwlock2_t.c
---- ../pthreads-snap-2004-06-22/tests/rwlock2_t.c      2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock2_t.c        2009-01-07 15:57:36.000000000 +0100
-@@ -55,7 +55,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock3_t.c ./tests/rwlock3_t.c
---- ../pthreads-snap-2004-06-22/tests/rwlock3_t.c      2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock3_t.c        2009-01-07 15:57:36.000000000 +0100
-@@ -68,7 +68,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock4_t.c ./tests/rwlock4_t.c
---- ../pthreads-snap-2004-06-22/tests/rwlock4_t.c      2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock4_t.c        2009-01-07 15:57:36.000000000 +0100
-@@ -68,7 +68,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock5_t.c ./tests/rwlock5_t.c
---- ../pthreads-snap-2004-06-22/tests/rwlock5_t.c      2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock5_t.c        2009-01-07 15:57:36.000000000 +0100
-@@ -70,7 +70,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6.c ./tests/rwlock6.c
---- ../pthreads-snap-2004-06-22/tests/rwlock6.c        2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock6.c  2009-01-07 15:57:36.000000000 +0100
-@@ -77,9 +77,9 @@
-   pthread_t wrt1;
-   pthread_t wrt2;
-   pthread_t rdt;
--  int wr1Result = 0;
--  int wr2Result = 0;
--  int rdResult = 0;
-+  DWORD_PTR wr1Result = 0;
-+  DWORD_PTR wr2Result = 0;
-+  DWORD_PTR rdResult = 0;
-   bankAccount = 0;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6_t2.c ./tests/rwlock6_t2.c
---- ../pthreads-snap-2004-06-22/tests/rwlock6_t2.c     2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock6_t2.c       2009-01-07 15:57:36.000000000 +0100
-@@ -86,15 +86,15 @@
-   pthread_t wrt1;
-   pthread_t wrt2;
-   pthread_t rdt;
--  int wr1Result = 0;
--  int wr2Result = 0;
--  int rdResult = 0;
-+  DWORD_PTR wr1Result = 0;
-+  DWORD_PTR wr2Result = 0;
-+  DWORD_PTR rdResult = 0;
-   struct _timeb currSysTime;
-   const DWORD NANOSEC_PER_MILLISEC = 1000000;
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-   abstime.tv_sec += 1;
-diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6_t.c ./tests/rwlock6_t.c
---- ../pthreads-snap-2004-06-22/tests/rwlock6_t.c      2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/rwlock6_t.c        2009-01-07 15:57:36.000000000 +0100
-@@ -67,7 +67,7 @@
-   _ftime(&currSysTime);
--  abstime.tv_sec = currSysTime.time;
-+  abstime.tv_sec = (long)currSysTime.time;
-   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
-@@ -95,10 +95,10 @@
-   pthread_t wrt2;
-   pthread_t rdt1;
-   pthread_t rdt2;
--  int wr1Result = 0;
--  int wr2Result = 0;
--  int rd1Result = 0;
--  int rd2Result = 0;
-+  DWORD_PTR wr1Result = 0;
-+  DWORD_PTR wr2Result = 0;
-+  DWORD_PTR rd1Result = 0;
-+  DWORD_PTR rd2Result = 0;
-   bankAccount = 0;
-diff -Naur ../pthreads-snap-2004-06-22/tests/semaphore1.c ./tests/semaphore1.c
---- ../pthreads-snap-2004-06-22/tests/semaphore1.c     2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/semaphore1.c       2009-01-07 15:57:36.000000000 +0100
-@@ -117,7 +117,7 @@
- {
-   pthread_t t;
-   sem_t s;
--  int result;
-+  DWORD_PTR result;
-   assert(pthread_create(&t, NULL, thr, NULL) == 0);
-   assert(pthread_join(t, (void **)&result) == 0);
-diff -Naur ../pthreads-snap-2004-06-22/tests/spin4.c ./tests/spin4.c
---- ../pthreads-snap-2004-06-22/tests/spin4.c  2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/spin4.c    2009-01-07 15:57:36.000000000 +0100
-@@ -63,7 +63,7 @@
- int
- main()
- {
--  long result = 0;
-+  DWORD_PTR result = 0;
-   pthread_t t;
-   int CPUs;
-   struct _timeb sysTime;
-diff -Naur ../pthreads-snap-2004-06-22/tests/tsd1.c ./tests/tsd1.c
---- ../pthreads-snap-2004-06-22/tests/tsd1.c   2003-08-19 05:31:51.000000000 +0200
-+++ ./tests/tsd1.c     2009-01-07 15:57:36.000000000 +0100
-@@ -171,7 +171,7 @@
-    */
-   for (i = 1; i < 10; i++)
-     {
--      int result = 0;
-+      DWORD_PTR result = 0;
-       assert(pthread_join(thread[i], (void **) &result) == 0);
-     }
diff --git a/bacula/src/win32/patches/pthreads-w64.patch b/bacula/src/win32/patches/pthreads-w64.patch
new file mode 100644 (file)
index 0000000..209ff6d
--- /dev/null
@@ -0,0 +1,970 @@
+diff -Naur ../pthreads-snap-2004-06-22/GNUmakefile ./GNUmakefile
+--- ../pthreads-snap-2004-06-22/GNUmakefile    2004-05-20 02:56:52.000000000 +0200
++++ ./GNUmakefile      2009-01-07 15:57:36.000000000 +0100
+@@ -48,9 +48,9 @@
+ #OPT  = -g
+ #OPT  = -O3 -DTEST_ICE
+-OPT   = -O3 -finline-functions
++OPT   = $(CLEANUP) -O3  -DHAVE_STRUCT_TIMESPEC -D__MINGW32__ -finline-functions
+-LFLAGS                = -lwsock32
++LFLAGS                = -lws2_32
+ GC_CFLAGS     = -D__CLEANUP_C
+ GCE_CFLAGS    = -D__CLEANUP_CXX -mthreads
+@@ -408,16 +408,16 @@
+       @ $(MAKE) clean GC
+ GC:
+-              $(MAKE) CC=gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" $(GC_DLL)
++              $(MAKE) CC=mingw32-gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_OBJS)" $(GC_DLL)
+ GCE:
+-              $(MAKE) CC=g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" $(GCE_DLL)
++              $(MAKE) CC=mingw32-g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_OBJS)" $(GCE_DLL)
+ GC-inlined:
+-              $(MAKE) CC=gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_INLINED_STAMP)
++              $(MAKE) CC=mingw32-gcc CLEANUP_FLAGS="$(GC_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GC_INLINED_STAMP)
+ GCE-inlined:
+-              $(MAKE) CC=g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GCE_INLINED_STAMP)
++              $(MAKE) CC=mingw32-g++ CLEANUP_FLAGS="$(GCE_CFLAGS)" OBJ="$(DLL_INLINED_OBJS)" $(GCE_INLINED_STAMP)
+ tests:
+       @ cd tests
+@@ -436,24 +436,24 @@
+ $(GC_DLL): $(DLL_OBJS)
+       $(CC) $(OPT) -shared -o $(GC_DLL) $(DLL_OBJS) $(LFLAGS)
+-      dlltool -z pthread.def $(DLL_OBJS)
+-      dlltool -k --dllname $@ --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
++      mingw32-dlltool -z pthread.def $(DLL_OBJS)
++      mingw32-dlltool -k --dllname $@ --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
+ $(GCE_DLL): $(DLL_OBJS)
+       $(CC) $(OPT) -mthreads -shared -o $(GCE_DLL) $(DLL_OBJS) $(LFLAGS)
+-      dlltool -z pthread.def $(DLL_OBJS)
+-      dlltool -k --dllname $@ --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
++      mingw32-dlltool -z pthread.def $(DLL_OBJS)
++      mingw32-dlltool -k --dllname $@ --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
+ $(GC_INLINED_STAMP): $(DLL_INLINED_OBJS)
+       $(CC) $(OPT) -shared -o $(GC_DLL) $(DLL_INLINED_OBJS) $(LFLAGS)
+-      dlltool -z pthread.def $(DLL_INLINED_OBJS)
+-      dlltool -k --dllname $(GC_DLL) --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
++      mingw32-dlltool -z pthread.def $(DLL_INLINED_OBJS)
++      mingw32-dlltool -k --dllname $(GC_DLL) --output-lib $(GC_LIB) --def $(PTHREAD_DEF)
+       echo touched > $(GC_INLINED_STAMP)
+ $(GCE_INLINED_STAMP): $(DLL_INLINED_OBJS)
+       $(CC) $(OPT) -mthreads -shared -o $(GCE_DLL) $(DLL_INLINED_OBJS)  $(LFLAGS)
+-      dlltool -z pthread.def $(DLL_INLINED_OBJS)
+-      dlltool -k --dllname $(GCE_DLL) --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
++      mingw32-dlltool -z pthread.def $(DLL_INLINED_OBJS)
++      mingw32-dlltool -k --dllname $(GCE_DLL) --output-lib $(GCE_LIB) --def $(PTHREAD_DEF)
+       echo touched > $(GCE_INLINED_STAMP)
+ clean:
+diff -Naur ../pthreads-snap-2004-06-22/implement.h ./implement.h
+--- ../pthreads-snap-2004-06-22/implement.h    2004-06-22 08:12:54.000000000 +0200
++++ ./implement.h      2009-01-07 15:57:36.000000000 +0100
+@@ -38,7 +38,9 @@
+ #ifndef _IMPLEMENT_H
+ #define _IMPLEMENT_H
++#ifndef _WIN32_WINNT
+ #define _WIN32_WINNT 0x400
++#endif
+ #include <windows.h>
+diff -Naur ../pthreads-snap-2004-06-22/pthread_cancel.c ./pthread_cancel.c
+--- ../pthreads-snap-2004-06-22/pthread_cancel.c       2004-05-17 03:38:02.000000000 +0200
++++ ./pthread_cancel.c 2009-01-07 15:57:36.000000000 +0100
+@@ -70,7 +70,7 @@
+ }
+ static void CALLBACK
+-ptw32_cancel_callback (DWORD unused)
++ptw32_cancel_callback (ULONG_PTR unused)
+ {
+   ptw32_throw (PTW32_EPS_CANCEL);
+diff -Naur ../pthreads-snap-2004-06-22/pthread_exit.c ./pthread_exit.c
+--- ../pthreads-snap-2004-06-22/pthread_exit.c 2004-05-17 03:38:03.000000000 +0200
++++ ./pthread_exit.c   2009-01-07 15:57:36.000000000 +0100
+@@ -89,7 +89,7 @@
+        */
+ #if ! defined (__MINGW32__) || defined (__MSVCRT__)
+-      _endthreadex ((unsigned) value_ptr);
++      _endthreadex ((unsigned) ((ULONG_PTR)value_ptr));
+ #else
+       _endthread ();
+ #endif
+diff -Naur ../pthreads-snap-2004-06-22/pthread_getspecific.c ./pthread_getspecific.c
+--- ../pthreads-snap-2004-06-22/pthread_getspecific.c  2004-05-17 03:38:03.000000000 +0200
++++ ./pthread_getspecific.c    2009-01-07 15:57:36.000000000 +0100
+@@ -63,13 +63,18 @@
+       * ------------------------------------------------------
+       */
+ {
+-  int lasterror = GetLastError ();
+-  int lastWSAerror = WSAGetLastError ();
++  void *ptr;
+-  void *ptr = TlsGetValue (key->key);
++  if (key == NULL) {
++     ptr = NULL;
++  } else {
++     int lasterror = GetLastError ();
++     int lastWSAerror = WSAGetLastError ();
+-  SetLastError (lasterror);
+-  WSASetLastError (lastWSAerror);
++     ptr = TlsGetValue(key->key);
++     SetLastError(lasterror);
++     WSASetLastError(lastWSAerror);
++  }
+   return ptr;
+ }
+diff -Naur ../pthreads-snap-2004-06-22/pthread.h ./pthread.h
+--- ../pthreads-snap-2004-06-22/pthread.h      2004-06-22 08:12:54.000000000 +0200
++++ ./pthread.h        2009-01-07 15:57:36.000000000 +0100
+@@ -274,10 +274,6 @@
+ #endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
+ #ifndef HAVE_STRUCT_TIMESPEC
+-struct timespec {
+-        long tv_sec;
+-        long tv_nsec;
+-};
+ #endif /* HAVE_STRUCT_TIMESPEC */
+ #ifndef SIG_BLOCK
+diff -Naur ../pthreads-snap-2004-06-22/ptw32_InterlockedCompareExchange.c ./ptw32_InterlockedCompareExchange.c
+--- ../pthreads-snap-2004-06-22/ptw32_InterlockedCompareExchange.c     2004-05-17 03:38:03.000000000 +0200
++++ ./ptw32_InterlockedCompareExchange.c       2009-01-07 15:57:36.000000000 +0100
+@@ -101,6 +101,19 @@
+ #endif
+ #else
++#if defined(_WIN64)
++   /*
++    * Microsoft Visual C++ 7.1 and newer have _Interlocked intrinsics
++    */
++       {
++               result = InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
++       }
++       else
++       {
++               result = InterlockedCompareExchange(LONG volatile *Destination,LONG ExChange,LONG Comperand);
++       }
++ #else
++
+   /*
+    * If execution gets to here then we should be running on a Win95 system
+@@ -110,7 +123,8 @@
+    */
+   result = 0;
+-
++#error Unsupported platform or compiler!
++#endif
+ #endif
+ /* *INDENT-ON* */
+diff -Naur ../pthreads-snap-2004-06-22/ptw32_semwait.c ./ptw32_semwait.c
+--- ../pthreads-snap-2004-06-22/ptw32_semwait.c        2004-05-17 09:59:47.000000000 +0200
++++ ./ptw32_semwait.c  2009-01-07 15:57:36.000000000 +0100
+@@ -41,7 +41,7 @@
+ #include "implement.h"
+-INLINE int
++int
+ ptw32_semwait (sem_t * sem)
+      /*
+       * ------------------------------------------------------
+diff -Naur ../pthreads-snap-2004-06-22/ptw32_threadStart.c ./ptw32_threadStart.c
+--- ../pthreads-snap-2004-06-22/ptw32_threadStart.c    2004-05-17 03:38:03.000000000 +0200
++++ ./ptw32_threadStart.c      2009-01-07 15:57:36.000000000 +0100
+@@ -356,7 +356,7 @@
+     }
+ #if ! defined (__MINGW32__) || defined (__MSVCRT__)
+-  _endthreadex ((unsigned) status);
++  _endthreadex ((unsigned) ((ULONG_PTR)status));
+ #else
+   _endthread ();
+ #endif
+@@ -366,7 +366,7 @@
+    */
+ #if ! defined (__MINGW32__) || defined (__MSVCRT__)
+-  return (unsigned) status;
++  return (unsigned) ((ULONG_PTR)status);
+ #endif
+ }                             /* ptw32_threadStart */
+diff -Naur ../pthreads-snap-2004-06-22/ptw32_throw.c ./ptw32_throw.c
+--- ../pthreads-snap-2004-06-22/ptw32_throw.c  2004-05-17 03:38:03.000000000 +0200
++++ ./ptw32_throw.c    2009-01-07 15:57:36.000000000 +0100
+@@ -78,10 +78,10 @@
+       switch (exception)
+       {
+       case PTW32_EPS_CANCEL:
+-        exitCode = (unsigned) PTHREAD_CANCELED;
++        exitCode = (unsigned) ((ULONG_PTR)PTHREAD_CANCELED);
+         break;
+       case PTW32_EPS_EXIT:
+-        exitCode = (unsigned) self->exitStatus;;
++        exitCode = (unsigned) ((ULONG_PTR)self->exitStatus);;
+         break;
+       }
+diff -Naur ../pthreads-snap-2004-06-22/tests/barrier3.c ./tests/barrier3.c
+--- ../pthreads-snap-2004-06-22/tests/barrier3.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/barrier3.c 2009-01-07 15:57:36.000000000 +0100
+@@ -41,7 +41,7 @@
+ #include "test.h"
+  
+ pthread_barrier_t barrier = NULL;
+-static int result = 1;
++static DWORD_PTR result = 1;
+ void * func(void * arg)
+ {
+diff -Naur ../pthreads-snap-2004-06-22/tests/barrier5.c ./tests/barrier5.c
+--- ../pthreads-snap-2004-06-22/tests/barrier5.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/barrier5.c 2009-01-07 15:57:36.000000000 +0100
+@@ -90,7 +90,7 @@
+ main()
+ {
+   int i, j;
+-  int result;
++  DWORD_PTR result;
+   int serialThreadsTotal;
+   pthread_t t[NUMTHREADS + 1];
+@@ -112,7 +112,7 @@
+       for (i = 1; i <= j; i++)
+         {
+           assert(pthread_join(t[i], (void **) &result) == 0);
+-          serialThreadsTotal += result;
++           serialThreadsTotal += (int)result;
+         }
+       assert(serialThreadsTotal == BARRIERS - 1);
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel2.c ./tests/cancel2.c
+--- ../pthreads-snap-2004-06-22/tests/cancel2.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/cancel2.c  2009-01-07 15:57:36.000000000 +0100
+@@ -217,7 +217,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(t[i], (void **) &result) == 0);
+       fail = (result != (int) PTHREAD_CANCELED);
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel3.c ./tests/cancel3.c
+--- ../pthreads-snap-2004-06-22/tests/cancel3.c        2004-05-17 03:38:03.000000000 +0200
++++ ./tests/cancel3.c  2009-01-07 15:57:36.000000000 +0100
+@@ -173,7 +173,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /*
+        * The thread does not contain any cancelation points, so
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel4.c ./tests/cancel4.c
+--- ../pthreads-snap-2004-06-22/tests/cancel4.c        2004-05-17 03:38:03.000000000 +0200
++++ ./tests/cancel4.c  2009-01-07 15:57:36.000000000 +0100
+@@ -173,7 +173,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /*
+        * The thread does not contain any cancelation points, so
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel5.c ./tests/cancel5.c
+--- ../pthreads-snap-2004-06-22/tests/cancel5.c        2004-05-17 03:38:03.000000000 +0200
++++ ./tests/cancel5.c  2009-01-07 15:57:36.000000000 +0100
+@@ -171,7 +171,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /*
+        * The thread does not contain any cancelation points, so
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel6a.c ./tests/cancel6a.c
+--- ../pthreads-snap-2004-06-22/tests/cancel6a.c       2004-05-17 03:38:03.000000000 +0200
++++ ./tests/cancel6a.c 2009-01-07 15:57:36.000000000 +0100
+@@ -161,7 +161,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /*
+        * The thread does not contain any cancelation points, so
+diff -Naur ../pthreads-snap-2004-06-22/tests/cancel6d.c ./tests/cancel6d.c
+--- ../pthreads-snap-2004-06-22/tests/cancel6d.c       2004-05-17 03:38:03.000000000 +0200
++++ ./tests/cancel6d.c 2009-01-07 15:57:36.000000000 +0100
+@@ -165,7 +165,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /*
+        * The thread does not contain any cancelation points, so
+diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup0.c ./tests/cleanup0.c
+--- ../pthreads-snap-2004-06-22/tests/cleanup0.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/cleanup0.c 2009-01-07 15:57:36.000000000 +0100
+@@ -180,7 +180,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(t[i], (void **) &result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup1.c ./tests/cleanup1.c
+--- ../pthreads-snap-2004-06-22/tests/cleanup1.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/cleanup1.c 2009-01-07 15:57:36.000000000 +0100
+@@ -195,7 +195,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(t[i], (void **) &result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup2.c ./tests/cleanup2.c
+--- ../pthreads-snap-2004-06-22/tests/cleanup2.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/cleanup2.c 2009-01-07 15:57:36.000000000 +0100
+@@ -169,7 +169,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(t[i], (void **) &result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/cleanup3.c ./tests/cleanup3.c
+--- ../pthreads-snap-2004-06-22/tests/cleanup3.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/cleanup3.c 2009-01-07 15:57:36.000000000 +0100
+@@ -172,7 +172,7 @@
+   for (i = 1; i <= NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(t[i], (void **) &result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar1_2.c ./tests/condvar1_2.c
+--- ../pthreads-snap-2004-06-22/tests/condvar1_2.c     2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar1_2.c       2009-01-07 15:57:36.000000000 +0100
+@@ -89,7 +89,7 @@
+ main()
+ {
+   int i, j, k;
+-  int result = -1;
++  DWORD_PTR result = -1;
+   pthread_t t;
+   for (k = 0; k < NUM_LOOPS; k++)
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar2_1.c ./tests/condvar2_1.c
+--- ../pthreads-snap-2004-06-22/tests/condvar2_1.c     2004-05-20 02:56:52.000000000 +0200
++++ ./tests/condvar2_1.c       2009-01-07 15:57:36.000000000 +0100
+@@ -105,7 +105,7 @@
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  DWORD_PTR result = 0;
+   struct _timeb currSysTime;
+   const DWORD NANOSEC_PER_MILLISEC = 1000000;
+@@ -116,7 +116,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar2.c ./tests/condvar2.c
+--- ../pthreads-snap-2004-06-22/tests/condvar2.c       2004-05-20 02:56:52.000000000 +0200
++++ ./tests/condvar2.c 2009-01-07 15:57:36.000000000 +0100
+@@ -99,7 +99,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+@@ -109,7 +109,7 @@
+   assert(pthread_mutex_unlock(&mutex) == 0);
+   {
+-  int result = pthread_cond_destroy(&cv);
++  DWORD_PTR result = pthread_cond_destroy(&cv);
+   if (result != 0)
+     {
+       fprintf(stderr, "Result = %s\n", error_string[result]);
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_1.c ./tests/condvar3_1.c
+--- ../pthreads-snap-2004-06-22/tests/condvar3_1.c     2004-05-20 02:56:52.000000000 +0200
++++ ./tests/condvar3_1.c       2009-01-07 15:57:36.000000000 +0100
+@@ -125,7 +125,7 @@
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  DWORD_PTR result = 0;
+   struct _timeb currSysTime;
+   const DWORD NANOSEC_PER_MILLISEC = 1000000;
+@@ -137,7 +137,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_2.c ./tests/condvar3_2.c
+--- ../pthreads-snap-2004-06-22/tests/condvar3_2.c     2004-05-20 02:56:52.000000000 +0200
++++ ./tests/condvar3_2.c       2009-01-07 15:57:36.000000000 +0100
+@@ -127,7 +127,7 @@
+ {
+   int i;
+   pthread_t t[NUMTHREADS + 1];
+-  int result = 0;
++  DWORD_PTR result = 0;
+   struct _timeb currSysTime;
+   const DWORD NANOSEC_PER_MILLISEC = 1000000;
+@@ -138,7 +138,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = abstime.tv_sec = currSysTime.time + 5;
++  abstime.tv_sec = abstime.tv_sec = (long)currSysTime.time + 5;
+   abstime.tv_nsec = abstime2.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   assert(pthread_mutex_lock(&mutex) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3_3.c ./tests/condvar3_3.c
+--- ../pthreads-snap-2004-06-22/tests/condvar3_3.c     2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar3_3.c       2009-01-07 15:57:36.000000000 +0100
+@@ -96,7 +96,7 @@
+    /* get current system time */
+    _ftime(&currSysTime);
+-   abstime.tv_sec = currSysTime.time;
++   abstime.tv_sec = (long)currSysTime.time;
+    abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+    abstime.tv_sec += 1;
+@@ -120,7 +120,7 @@
+    assert(pthread_mutex_lock(&mtx) == 0);
+-   abstime.tv_sec = currSysTime.time;
++   abstime.tv_sec = (long)currSysTime.time;
+    abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+    abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar3.c ./tests/condvar3.c
+--- ../pthreads-snap-2004-06-22/tests/condvar3.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar3.c 2009-01-07 15:57:36.000000000 +0100
+@@ -127,7 +127,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   assert(pthread_create(&t[1], NULL, mythread, (void *) 1) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar4.c ./tests/condvar4.c
+--- ../pthreads-snap-2004-06-22/tests/condvar4.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar4.c 2009-01-07 15:57:36.000000000 +0100
+@@ -132,7 +132,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+@@ -145,7 +145,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar5.c ./tests/condvar5.c
+--- ../pthreads-snap-2004-06-22/tests/condvar5.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar5.c 2009-01-07 15:57:36.000000000 +0100
+@@ -131,7 +131,7 @@
+   /* get current system time */
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+@@ -144,7 +144,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar6.c ./tests/condvar6.c
+--- ../pthreads-snap-2004-06-22/tests/condvar6.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar6.c 2009-01-07 15:57:36.000000000 +0100
+@@ -159,7 +159,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar7.c ./tests/condvar7.c
+--- ../pthreads-snap-2004-06-22/tests/condvar7.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar7.c 2009-01-07 15:57:36.000000000 +0100
+@@ -169,7 +169,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 10;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar8.c ./tests/condvar8.c
+--- ../pthreads-snap-2004-06-22/tests/condvar8.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar8.c 2009-01-07 15:57:36.000000000 +0100
+@@ -166,7 +166,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 10;
+diff -Naur ../pthreads-snap-2004-06-22/tests/condvar9.c ./tests/condvar9.c
+--- ../pthreads-snap-2004-06-22/tests/condvar9.c       2003-08-19 05:31:51.000000000 +0200
++++ ./tests/condvar9.c 2009-01-07 15:57:36.000000000 +0100
+@@ -172,7 +172,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 5;
+diff -Naur ../pthreads-snap-2004-06-22/tests/context1.c ./tests/context1.c
+--- ../pthreads-snap-2004-06-22/tests/context1.c       2004-05-20 02:56:52.000000000 +0200
++++ ./tests/context1.c 2009-01-07 15:57:36.000000000 +0100
+@@ -125,7 +125,11 @@
+       /*
+        *_x86 only!!!
+        */
++#if defined(_M_IX86)
+       context.Eip = (DWORD) anotherEnding;
++#else
++      context.Rip = (DWORD64) anotherEnding;
++#endif
+       SetThreadContext(hThread, &context);
+       ResumeThread(hThread);
+     }
+diff -Naur ../pthreads-snap-2004-06-22/tests/delay2.c ./tests/delay2.c
+--- ../pthreads-snap-2004-06-22/tests/delay2.c 2003-08-19 05:31:51.000000000 +0200
++++ ./tests/delay2.c   2009-01-07 15:57:36.000000000 +0100
+@@ -65,7 +65,7 @@
+ main(int argc, char * argv[])
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   assert(pthread_mutex_lock(&mx) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/exception1.c ./tests/exception1.c
+--- ../pthreads-snap-2004-06-22/tests/exception1.c     2003-08-19 05:31:51.000000000 +0200
++++ ./tests/exception1.c       2009-01-07 15:57:36.000000000 +0100
+@@ -226,7 +226,7 @@
+   for (i = 0; i < NUMTHREADS; i++)
+     {
+       int fail = 0;
+-      int result = 0;
++      DWORD_PTR result = 0;
+       /* Canceled thread */
+       assert(pthread_join(ct[i], (void **) &result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/GNUmakefile ./tests/GNUmakefile
+--- ../pthreads-snap-2004-06-22/tests/GNUmakefile      2004-06-22 08:12:55.000000000 +0200
++++ ./tests/GNUmakefile        2009-01-07 15:57:36.000000000 +0100
+@@ -64,7 +64,7 @@
+ DLL   = pthread$(GCX).dll
+ QAPC  = ../QueueUserAPCEx/User/quserex.dll
+-COPYFILES     = $(HDR) $(LIB) $(DLL) $(QAPC)
++COPYFILES     = $(HDR) $(LIB) $(DLL)
+ # If a test case returns a non-zero exit code to the shell, make will
+ # stop.
+diff -Naur ../pthreads-snap-2004-06-22/tests/join0.c ./tests/join0.c
+--- ../pthreads-snap-2004-06-22/tests/join0.c  2003-08-19 05:31:51.000000000 +0200
++++ ./tests/join0.c    2009-01-07 15:57:36.000000000 +0100
+@@ -53,7 +53,7 @@
+ main(int argc, char * argv[])
+ {
+   pthread_t id;
+-  int result;
++  DWORD_PTR result;
+   /* Create a single thread and wait for it to exit. */
+   assert(pthread_create(&id, NULL, func, (void *) 123) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/join1.c ./tests/join1.c
+--- ../pthreads-snap-2004-06-22/tests/join1.c  2003-08-19 05:31:51.000000000 +0200
++++ ./tests/join1.c    2009-01-07 15:57:36.000000000 +0100
+@@ -56,7 +56,7 @@
+ {
+       pthread_t id[4];
+       int i;
+-      int result;
++      DWORD_PTR result;
+       /* Create a few threads and then exit. */
+       for (i = 0; i < 4; i++)
+diff -Naur ../pthreads-snap-2004-06-22/tests/join2.c ./tests/join2.c
+--- ../pthreads-snap-2004-06-22/tests/join2.c  2003-08-19 05:31:51.000000000 +0200
++++ ./tests/join2.c    2009-01-07 15:57:36.000000000 +0100
+@@ -50,7 +50,7 @@
+ {
+       pthread_t id[4];
+       int i;
+-      int result;
++      DWORD_PTR result;
+       /* Create a few threads and then exit. */
+       for (i = 0; i < 4; i++)
+diff -Naur ../pthreads-snap-2004-06-22/tests/join3.c ./tests/join3.c
+--- ../pthreads-snap-2004-06-22/tests/join3.c  2004-05-22 03:17:58.000000000 +0200
++++ ./tests/join3.c    2009-01-07 15:57:36.000000000 +0100
+@@ -50,7 +50,7 @@
+ {
+       pthread_t id[4];
+       int i;
+-      int result;
++      DWORD_PTR result;
+       /* Create a few threads and then exit. */
+       for (i = 0; i < 4; i++)
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6e.c ./tests/mutex6e.c
+--- ../pthreads-snap-2004-06-22/tests/mutex6e.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/mutex6e.c  2009-01-07 15:57:36.000000000 +0100
+@@ -74,7 +74,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   int mxType = -1;
+   assert(pthread_mutexattr_init(&mxAttr) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6es.c ./tests/mutex6es.c
+--- ../pthreads-snap-2004-06-22/tests/mutex6es.c       2004-06-22 08:12:55.000000000 +0200
++++ ./tests/mutex6es.c 2009-01-07 15:57:36.000000000 +0100
+@@ -73,7 +73,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   assert(mutex == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6r.c ./tests/mutex6r.c
+--- ../pthreads-snap-2004-06-22/tests/mutex6r.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/mutex6r.c  2009-01-07 15:57:36.000000000 +0100
+@@ -73,7 +73,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   int mxType = -1;
+   assert(pthread_mutexattr_init(&mxAttr) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex6rs.c ./tests/mutex6rs.c
+--- ../pthreads-snap-2004-06-22/tests/mutex6rs.c       2004-06-22 08:12:55.000000000 +0200
++++ ./tests/mutex6rs.c 2009-01-07 15:57:36.000000000 +0100
+@@ -72,7 +72,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   assert(mutex == PTHREAD_RECURSIVE_MUTEX_INITIALIZER);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex7e.c ./tests/mutex7e.c
+--- ../pthreads-snap-2004-06-22/tests/mutex7e.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/mutex7e.c  2009-01-07 15:57:36.000000000 +0100
+@@ -74,7 +74,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   int mxType = -1;
+   assert(pthread_mutexattr_init(&mxAttr) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex7r.c ./tests/mutex7r.c
+--- ../pthreads-snap-2004-06-22/tests/mutex7r.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/mutex7r.c  2009-01-07 15:57:36.000000000 +0100
+@@ -73,7 +73,7 @@
+ main()
+ {
+   pthread_t t;
+-  int result = 0;
++  DWORD_PTR result = 0;
+   int mxType = -1;
+   assert(pthread_mutexattr_init(&mxAttr) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8.c ./tests/mutex8.c
+--- ../pthreads-snap-2004-06-22/tests/mutex8.c 2002-02-20 05:39:56.000000000 +0100
++++ ./tests/mutex8.c   2009-01-07 15:57:36.000000000 +0100
+@@ -49,7 +49,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8e.c ./tests/mutex8e.c
+--- ../pthreads-snap-2004-06-22/tests/mutex8e.c        2002-02-20 05:39:56.000000000 +0100
++++ ./tests/mutex8e.c  2009-01-07 15:57:36.000000000 +0100
+@@ -57,7 +57,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8n.c ./tests/mutex8n.c
+--- ../pthreads-snap-2004-06-22/tests/mutex8n.c        2002-02-20 05:39:56.000000000 +0100
++++ ./tests/mutex8n.c  2009-01-07 15:57:36.000000000 +0100
+@@ -57,7 +57,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/mutex8r.c ./tests/mutex8r.c
+--- ../pthreads-snap-2004-06-22/tests/mutex8r.c        2002-02-20 05:39:56.000000000 +0100
++++ ./tests/mutex8r.c  2009-01-07 15:57:36.000000000 +0100
+@@ -57,7 +57,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock2_t.c ./tests/rwlock2_t.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock2_t.c      2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock2_t.c        2009-01-07 15:57:36.000000000 +0100
+@@ -55,7 +55,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock3_t.c ./tests/rwlock3_t.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock3_t.c      2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock3_t.c        2009-01-07 15:57:36.000000000 +0100
+@@ -68,7 +68,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock4_t.c ./tests/rwlock4_t.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock4_t.c      2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock4_t.c        2009-01-07 15:57:36.000000000 +0100
+@@ -68,7 +68,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock5_t.c ./tests/rwlock5_t.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock5_t.c      2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock5_t.c        2009-01-07 15:57:36.000000000 +0100
+@@ -70,7 +70,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6.c ./tests/rwlock6.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock6.c        2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock6.c  2009-01-07 15:57:36.000000000 +0100
+@@ -77,9 +77,9 @@
+   pthread_t wrt1;
+   pthread_t wrt2;
+   pthread_t rdt;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rdResult = 0;
++  DWORD_PTR wr1Result = 0;
++  DWORD_PTR wr2Result = 0;
++  DWORD_PTR rdResult = 0;
+   bankAccount = 0;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6_t2.c ./tests/rwlock6_t2.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock6_t2.c     2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock6_t2.c       2009-01-07 15:57:36.000000000 +0100
+@@ -86,15 +86,15 @@
+   pthread_t wrt1;
+   pthread_t wrt2;
+   pthread_t rdt;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rdResult = 0;
++  DWORD_PTR wr1Result = 0;
++  DWORD_PTR wr2Result = 0;
++  DWORD_PTR rdResult = 0;
+   struct _timeb currSysTime;
+   const DWORD NANOSEC_PER_MILLISEC = 1000000;
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+   abstime.tv_sec += 1;
+diff -Naur ../pthreads-snap-2004-06-22/tests/rwlock6_t.c ./tests/rwlock6_t.c
+--- ../pthreads-snap-2004-06-22/tests/rwlock6_t.c      2003-08-19 05:31:51.000000000 +0200
++++ ./tests/rwlock6_t.c        2009-01-07 15:57:36.000000000 +0100
+@@ -67,7 +67,7 @@
+   _ftime(&currSysTime);
+-  abstime.tv_sec = currSysTime.time;
++  abstime.tv_sec = (long)currSysTime.time;
+   abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;
+@@ -95,10 +95,10 @@
+   pthread_t wrt2;
+   pthread_t rdt1;
+   pthread_t rdt2;
+-  int wr1Result = 0;
+-  int wr2Result = 0;
+-  int rd1Result = 0;
+-  int rd2Result = 0;
++  DWORD_PTR wr1Result = 0;
++  DWORD_PTR wr2Result = 0;
++  DWORD_PTR rd1Result = 0;
++  DWORD_PTR rd2Result = 0;
+   bankAccount = 0;
+diff -Naur ../pthreads-snap-2004-06-22/tests/semaphore1.c ./tests/semaphore1.c
+--- ../pthreads-snap-2004-06-22/tests/semaphore1.c     2003-08-19 05:31:51.000000000 +0200
++++ ./tests/semaphore1.c       2009-01-07 15:57:36.000000000 +0100
+@@ -117,7 +117,7 @@
+ {
+   pthread_t t;
+   sem_t s;
+-  int result;
++  DWORD_PTR result;
+   assert(pthread_create(&t, NULL, thr, NULL) == 0);
+   assert(pthread_join(t, (void **)&result) == 0);
+diff -Naur ../pthreads-snap-2004-06-22/tests/spin4.c ./tests/spin4.c
+--- ../pthreads-snap-2004-06-22/tests/spin4.c  2003-08-19 05:31:51.000000000 +0200
++++ ./tests/spin4.c    2009-01-07 15:57:36.000000000 +0100
+@@ -63,7 +63,7 @@
+ int
+ main()
+ {
+-  long result = 0;
++  DWORD_PTR result = 0;
+   pthread_t t;
+   int CPUs;
+   struct _timeb sysTime;
+diff -Naur ../pthreads-snap-2004-06-22/tests/tsd1.c ./tests/tsd1.c
+--- ../pthreads-snap-2004-06-22/tests/tsd1.c   2003-08-19 05:31:51.000000000 +0200
++++ ./tests/tsd1.c     2009-01-07 15:57:36.000000000 +0100
+@@ -171,7 +171,7 @@
+    */
+   for (i = 1; i < 10; i++)
+     {
+-      int result = 0;
++      DWORD_PTR result = 0;
+       assert(pthread_join(thread[i], (void **) &result) == 0);
+     }