diff -Nbaurpad pthreads-w32-2-8-0-release/GNUmakefile pthreads-w64-2-8-0-release/GNUmakefile --- pthreads-w32-2-8-0-release/GNUmakefile 2006-04-30 12:22:33.000000000 +0200 +++ pthreads-w64-2-8-0-release/GNUmakefile 2009-11-08 16:01:29.000000000 +0100 @@ -58,12 +58,12 @@ CXX = $(CROSS)g++ RANLIB = $(CROSS)ranlib RC = $(CROSS)windres -OPT = $(CLEANUP) -O3 -finline-functions +OPT = $(CLEANUP) -O3 -DHAVE_STRUCT_TIMESPEC -D__MINGW32__ -finline-functions DOPT = $(CLEANUP) -g -O0 XOPT = RCFLAGS = --include-dir=. -LFLAGS = -lwsock32 +LFLAGS = -lws2_32 # ---------------------------------------------------------------------- # The library can be built with some alternative behaviour to diff -Nbaurpad pthreads-w32-2-8-0-release/pthread.h pthreads-w64-2-8-0-release/pthread.h --- pthreads-w32-2-8-0-release/pthread.h 2006-01-24 14:59:57.000000000 +0100 +++ pthreads-w64-2-8-0-release/pthread.h 2009-11-08 16:01:29.000000000 +0100 @@ -304,10 +304,6 @@ enum { #ifndef HAVE_STRUCT_TIMESPEC #define HAVE_STRUCT_TIMESPEC 1 -struct timespec { - long tv_sec; - long tv_nsec; -}; #endif /* HAVE_STRUCT_TIMESPEC */ #ifndef SIG_BLOCK diff -Nbaurpad pthreads-w32-2-8-0-release/ptw32_InterlockedCompareExchange.c pthreads-w64-2-8-0-release/ptw32_InterlockedCompareExchange.c --- pthreads-w32-2-8-0-release/ptw32_InterlockedCompareExchange.c 2005-04-26 04:41:11.000000000 +0200 +++ pthreads-w64-2-8-0-release/ptw32_InterlockedCompareExchange.c 2009-11-08 16:01:29.000000000 +0100 @@ -181,7 +181,7 @@ ptw32_InterlockedExchange (LPLONG locati /* *INDENT-OFF* */ -#if defined(_M_IX86) || defined(_X86_) +#if defined(_M_IX86) || defined(_X86_) || defined(_M_X64) #if defined(_MSC_VER) || defined(__WATCOMC__) || (defined(__BORLANDC__) && defined(HAVE_TASM32)) #define HAVE_INLINABLE_INTERLOCKED_XCHG @@ -267,14 +267,26 @@ L1: MOV eax,dword ptr [ecx] #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're running on a currently * unsupported processor or compiler. */ - result = 0; - +result = 0; +#error Unsupported platform or compiler! +#endif #endif /* *INDENT-ON* */ diff -Nbaurpad pthreads-w32-2-8-0-release/sched.h pthreads-w64-2-8-0-release/sched.h --- pthreads-w32-2-8-0-release/sched.h 2005-04-01 02:55:21.000000000 +0200 +++ pthreads-w64-2-8-0-release/sched.h 2009-11-08 16:01:29.000000000 +0100 @@ -96,7 +96,7 @@ # define NEED_ERRNO # define NEED_SEM # endif -# if defined(_UWIN) || defined(__MINGW32__) +# if defined(_UWIN) || defined(__MINGW32__) || defined(__MINGW64__) # define HAVE_MODE_T # endif #endif @@ -113,7 +113,7 @@ #endif #endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ -#if defined(__MINGW32__) || defined(_UWIN) +#if defined(__MINGW32__) || defined(__MINGW64__) || defined(_UWIN) #if PTW32_LEVEL >= PTW32_LEVEL_MAX /* For pid_t */ # include diff -Nbaurpad pthreads-w32-2-8-0-release/tests/GNUmakefile pthreads-w64-2-8-0-release/tests/GNUmakefile --- pthreads-w32-2-8-0-release/tests/GNUmakefile 2006-12-22 03:36:41.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/GNUmakefile 2009-11-08 16:01:29.000000000 +0100 @@ -51,7 +51,7 @@ MAKE = make # XXCFLAGS = XXLIBS = -lws2_32 -#CFLAGS = -O3 -UNDEBUG -Wall $(XXCFLAGS) +#CFLAGS = -O3 -D_M_AMD64 -UNDEBUG -Wall $(XXCFLAGS) CFLAGS = -g -UNDEBUG -Wall $(XXCFLAGS) BUILD_DIR = .. INCLUDES = -I. @@ -69,7 +69,7 @@ LIB = libpthread$(GCX).a 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. @@ -327,13 +327,13 @@ sizes.pass: sizes.exe @ $(ECHO) Passed @ $(TOUCH) $@ -%.bench: $(LIB) $(DLL) $(HDR) $(QAPC) $(XXLIBS) %.exe +%.bench: $(LIB) $(DLL) $(HDR) $(XXLIBS) %.exe @ $(ECHO) Running $* $* @ $(ECHO) Done @ $(TOUCH) $@ -%.exe: %.c $(LIB) $(DLL) $(HDR) $(QAPC) +%.exe: %.c $(LIB) $(DLL) $(HDR) @ $(ECHO) Compiling $@ @ $(ECHO) $(CC) $(CFLAGS) -o $@ $< $(INCLUDES) -L. -lpthread$(GCX) -lsupc++ $(XXLIBS) @ $(CC) $(CFLAGS) -o $@ $< $(INCLUDES) -L. -lpthread$(GCX) -lsupc++ $(XXLIBS) diff -Nbaurpad pthreads-w32-2-8-0-release/tests/barrier3.c pthreads-w64-2-8-0-release/tests/barrier3.c --- pthreads-w32-2-8-0-release/tests/barrier3.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/barrier3.c 2009-11-08 16:01:29.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 -Nbaurpad pthreads-w32-2-8-0-release/tests/barrier5.c pthreads-w64-2-8-0-release/tests/barrier5.c --- pthreads-w32-2-8-0-release/tests/barrier5.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/barrier5.c 2009-11-08 16:01:29.000000000 +0100 @@ -90,7 +90,7 @@ int main() { int i, j; - int result; + DWORD_PTR result; int serialThreadsTotal; pthread_t t[NUMTHREADS + 1]; @@ -112,7 +112,7 @@ main() for (i = 1; i <= j; i++) { assert(pthread_join(t[i], (void **) &result) == 0); - serialThreadsTotal += result; + serialThreadsTotal += (int)result; } assert(serialThreadsTotal == BARRIERS - 1); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel2.c pthreads-w64-2-8-0-release/tests/cancel2.c --- pthreads-w32-2-8-0-release/tests/cancel2.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/cancel2.c 2009-11-08 16:01:29.000000000 +0100 @@ -217,7 +217,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel3.c pthreads-w64-2-8-0-release/tests/cancel3.c --- pthreads-w32-2-8-0-release/tests/cancel3.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/cancel3.c 2009-11-08 16:01:29.000000000 +0100 @@ -173,7 +173,7 @@ main () 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel4.c pthreads-w64-2-8-0-release/tests/cancel4.c --- pthreads-w32-2-8-0-release/tests/cancel4.c 2005-05-06 09:31:32.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/cancel4.c 2009-11-08 16:01:29.000000000 +0100 @@ -173,7 +173,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel5.c pthreads-w64-2-8-0-release/tests/cancel5.c --- pthreads-w32-2-8-0-release/tests/cancel5.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/cancel5.c 2009-11-08 16:01:29.000000000 +0100 @@ -171,7 +171,7 @@ main () 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel6a.c pthreads-w64-2-8-0-release/tests/cancel6a.c --- pthreads-w32-2-8-0-release/tests/cancel6a.c 2004-11-03 02:08:44.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/cancel6a.c 2009-11-08 16:01:29.000000000 +0100 @@ -161,7 +161,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cancel6d.c pthreads-w64-2-8-0-release/tests/cancel6d.c --- pthreads-w32-2-8-0-release/tests/cancel6d.c 2004-11-03 02:08:44.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/cancel6d.c 2009-11-08 16:01:29.000000000 +0100 @@ -165,7 +165,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cleanup0.c pthreads-w64-2-8-0-release/tests/cleanup0.c --- pthreads-w32-2-8-0-release/tests/cleanup0.c 2005-04-06 04:16:29.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/cleanup0.c 2009-11-08 16:01:29.000000000 +0100 @@ -189,7 +189,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cleanup1.c pthreads-w64-2-8-0-release/tests/cleanup1.c --- pthreads-w32-2-8-0-release/tests/cleanup1.c 2005-04-06 04:16:29.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/cleanup1.c 2009-11-08 16:01:29.000000000 +0100 @@ -203,7 +203,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cleanup2.c pthreads-w64-2-8-0-release/tests/cleanup2.c --- pthreads-w32-2-8-0-release/tests/cleanup2.c 2005-04-06 04:16:29.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/cleanup2.c 2009-11-08 16:01:29.000000000 +0100 @@ -178,7 +178,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/cleanup3.c pthreads-w64-2-8-0-release/tests/cleanup3.c --- pthreads-w32-2-8-0-release/tests/cleanup3.c 2005-04-06 04:16:29.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/cleanup3.c 2009-11-08 16:01:29.000000000 +0100 @@ -183,7 +183,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar1_2.c pthreads-w64-2-8-0-release/tests/condvar1_2.c --- pthreads-w32-2-8-0-release/tests/condvar1_2.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/condvar1_2.c 2009-11-08 16:01:29.000000000 +0100 @@ -89,7 +89,7 @@ int main() { int i, j, k; - int result = -1; + DWORD_PTR result = -1; pthread_t t; for (k = 0; k < NUM_LOOPS; k++) diff -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar2.c pthreads-w64-2-8-0-release/tests/condvar2.c --- pthreads-w32-2-8-0-release/tests/condvar2.c 2005-05-06 09:31:32.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar2.c 2009-11-08 16:01:29.000000000 +0100 @@ -99,7 +99,7 @@ main() /* 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; @@ -109,7 +109,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar2_1.c pthreads-w64-2-8-0-release/tests/condvar2_1.c --- pthreads-w32-2-8-0-release/tests/condvar2_1.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/condvar2_1.c 2009-11-08 16:01:29.000000000 +0100 @@ -105,7 +105,7 @@ main() { 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 @@ main() /* 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar3.c pthreads-w64-2-8-0-release/tests/condvar3.c --- pthreads-w32-2-8-0-release/tests/condvar3.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar3.c 2009-11-08 16:01:29.000000000 +0100 @@ -126,7 +126,7 @@ main() /* 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar3_1.c pthreads-w64-2-8-0-release/tests/condvar3_1.c --- pthreads-w32-2-8-0-release/tests/condvar3_1.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar3_1.c 2009-11-08 16:01:29.000000000 +0100 @@ -126,7 +126,7 @@ main() { int i; pthread_t t[NUMTHREADS + 1]; - int result = 0; + DWORD_PTR result = 0; struct _timeb currSysTime; const DWORD NANOSEC_PER_MILLISEC = 1000000; @@ -139,7 +139,7 @@ main() /* 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar3_2.c pthreads-w64-2-8-0-release/tests/condvar3_2.c --- pthreads-w32-2-8-0-release/tests/condvar3_2.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar3_2.c 2009-11-08 16:01:29.000000000 +0100 @@ -127,7 +127,7 @@ main() { 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 @@ main() /* 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar3_3.c pthreads-w64-2-8-0-release/tests/condvar3_3.c --- pthreads-w32-2-8-0-release/tests/condvar3_3.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar3_3.c 2009-11-08 16:01:29.000000000 +0100 @@ -96,7 +96,7 @@ int main() /* 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 @@ int main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar4.c pthreads-w64-2-8-0-release/tests/condvar4.c --- pthreads-w32-2-8-0-release/tests/condvar4.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar4.c 2009-11-08 16:01:29.000000000 +0100 @@ -130,7 +130,7 @@ main() /* 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; @@ -143,7 +143,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar5.c pthreads-w64-2-8-0-release/tests/condvar5.c --- pthreads-w32-2-8-0-release/tests/condvar5.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar5.c 2009-11-08 16:01:29.000000000 +0100 @@ -129,7 +129,7 @@ main() /* 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; @@ -142,7 +142,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar6.c pthreads-w64-2-8-0-release/tests/condvar6.c --- pthreads-w32-2-8-0-release/tests/condvar6.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar6.c 2009-11-08 16:01:29.000000000 +0100 @@ -159,7 +159,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar7.c pthreads-w64-2-8-0-release/tests/condvar7.c --- pthreads-w32-2-8-0-release/tests/condvar7.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar7.c 2009-11-08 16:01:29.000000000 +0100 @@ -169,7 +169,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar8.c pthreads-w64-2-8-0-release/tests/condvar8.c --- pthreads-w32-2-8-0-release/tests/condvar8.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar8.c 2009-11-08 16:01:29.000000000 +0100 @@ -166,7 +166,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/condvar9.c pthreads-w64-2-8-0-release/tests/condvar9.c --- pthreads-w32-2-8-0-release/tests/condvar9.c 2005-04-25 16:42:44.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/condvar9.c 2009-11-08 16:01:29.000000000 +0100 @@ -174,7 +174,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/context1.c pthreads-w64-2-8-0-release/tests/context1.c --- pthreads-w32-2-8-0-release/tests/context1.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/context1.c 2009-11-08 16:01:29.000000000 +0100 @@ -125,7 +125,11 @@ main() /* *_x86 only!!! */ +#if defined(_M_IX86) context.Eip = (DWORD) anotherEnding; +#else + context.Rip = (DWORD64) anotherEnding; +#endif SetThreadContext(hThread, &context); ResumeThread(hThread); } diff -Nbaurpad pthreads-w32-2-8-0-release/tests/delay2.c pthreads-w64-2-8-0-release/tests/delay2.c --- pthreads-w32-2-8-0-release/tests/delay2.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/delay2.c 2009-11-08 16:01:29.000000000 +0100 @@ -65,7 +65,7 @@ int main(int argc, char * argv[]) { pthread_t t; - int result = 0; + DWORD_PTR result = 0; assert(pthread_mutex_lock(&mx) == 0); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/exception1.c pthreads-w64-2-8-0-release/tests/exception1.c --- pthreads-w32-2-8-0-release/tests/exception1.c 2005-01-01 15:36:18.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/exception1.c 2009-11-08 16:01:29.000000000 +0100 @@ -226,7 +226,7 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/join0.c pthreads-w64-2-8-0-release/tests/join0.c --- pthreads-w32-2-8-0-release/tests/join0.c 2005-05-15 17:28:28.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/join0.c 2009-11-08 16:01:29.000000000 +0100 @@ -53,7 +53,7 @@ int 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/join1.c pthreads-w64-2-8-0-release/tests/join1.c --- pthreads-w32-2-8-0-release/tests/join1.c 2005-05-15 17:28:28.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/join1.c 2009-11-08 16:01:29.000000000 +0100 @@ -56,7 +56,7 @@ main(int argc, char * argv[]) { 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/join2.c pthreads-w64-2-8-0-release/tests/join2.c --- pthreads-w32-2-8-0-release/tests/join2.c 2005-05-15 17:28:28.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/join2.c 2009-11-08 16:01:29.000000000 +0100 @@ -50,7 +50,7 @@ main(int argc, char * argv[]) { 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/join3.c pthreads-w64-2-8-0-release/tests/join3.c --- pthreads-w32-2-8-0-release/tests/join3.c 2005-05-15 17:28:28.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/join3.c 2009-11-08 16:01:29.000000000 +0100 @@ -50,7 +50,7 @@ main(int argc, char * argv[]) { 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex6e.c pthreads-w64-2-8-0-release/tests/mutex6e.c --- pthreads-w32-2-8-0-release/tests/mutex6e.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex6e.c 2009-11-08 16:01:29.000000000 +0100 @@ -74,7 +74,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; int mxType = -1; assert(pthread_mutexattr_init(&mxAttr) == 0); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex6es.c pthreads-w64-2-8-0-release/tests/mutex6es.c --- pthreads-w32-2-8-0-release/tests/mutex6es.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex6es.c 2009-11-08 16:01:29.000000000 +0100 @@ -73,7 +73,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; assert(mutex == PTHREAD_ERRORCHECK_MUTEX_INITIALIZER); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex6r.c pthreads-w64-2-8-0-release/tests/mutex6r.c --- pthreads-w32-2-8-0-release/tests/mutex6r.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex6r.c 2009-11-08 16:01:29.000000000 +0100 @@ -73,7 +73,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; int mxType = -1; assert(pthread_mutexattr_init(&mxAttr) == 0); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex6rs.c pthreads-w64-2-8-0-release/tests/mutex6rs.c --- pthreads-w32-2-8-0-release/tests/mutex6rs.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex6rs.c 2009-11-08 16:01:29.000000000 +0100 @@ -72,7 +72,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; assert(mutex == PTHREAD_RECURSIVE_MUTEX_INITIALIZER); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex7e.c pthreads-w64-2-8-0-release/tests/mutex7e.c --- pthreads-w32-2-8-0-release/tests/mutex7e.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex7e.c 2009-11-08 16:01:29.000000000 +0100 @@ -74,7 +74,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; int mxType = -1; assert(pthread_mutexattr_init(&mxAttr) == 0); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex7r.c pthreads-w64-2-8-0-release/tests/mutex7r.c --- pthreads-w32-2-8-0-release/tests/mutex7r.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex7r.c 2009-11-08 16:01:29.000000000 +0100 @@ -73,7 +73,7 @@ int main() { pthread_t t; - int result = 0; + DWORD_PTR result = 0; int mxType = -1; assert(pthread_mutexattr_init(&mxAttr) == 0); diff -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex8.c pthreads-w64-2-8-0-release/tests/mutex8.c --- pthreads-w32-2-8-0-release/tests/mutex8.c 2002-02-20 05:39:56.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex8.c 2009-11-08 16:01:29.000000000 +0100 @@ -49,7 +49,7 @@ void * locker(void * arg) _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex8e.c pthreads-w64-2-8-0-release/tests/mutex8e.c --- pthreads-w32-2-8-0-release/tests/mutex8e.c 2002-02-20 05:39:56.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex8e.c 2009-11-08 16:01:30.000000000 +0100 @@ -57,7 +57,7 @@ void * locker(void * arg) _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex8n.c pthreads-w64-2-8-0-release/tests/mutex8n.c --- pthreads-w32-2-8-0-release/tests/mutex8n.c 2002-02-20 05:39:56.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex8n.c 2009-11-08 16:01:30.000000000 +0100 @@ -57,7 +57,7 @@ void * locker(void * arg) _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/mutex8r.c pthreads-w64-2-8-0-release/tests/mutex8r.c --- pthreads-w32-2-8-0-release/tests/mutex8r.c 2002-02-20 05:39:56.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/mutex8r.c 2009-11-08 16:01:30.000000000 +0100 @@ -57,7 +57,7 @@ void * locker(void * arg) _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock2_t.c pthreads-w64-2-8-0-release/tests/rwlock2_t.c --- pthreads-w32-2-8-0-release/tests/rwlock2_t.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock2_t.c 2009-11-08 16:01:30.000000000 +0100 @@ -55,7 +55,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock3_t.c pthreads-w64-2-8-0-release/tests/rwlock3_t.c --- pthreads-w32-2-8-0-release/tests/rwlock3_t.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock3_t.c 2009-11-08 16:01:30.000000000 +0100 @@ -68,7 +68,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock4_t.c pthreads-w64-2-8-0-release/tests/rwlock4_t.c --- pthreads-w32-2-8-0-release/tests/rwlock4_t.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock4_t.c 2009-11-08 16:01:30.000000000 +0100 @@ -68,7 +68,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock5_t.c pthreads-w64-2-8-0-release/tests/rwlock5_t.c --- pthreads-w32-2-8-0-release/tests/rwlock5_t.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock5_t.c 2009-11-08 16:01:30.000000000 +0100 @@ -70,7 +70,7 @@ main() _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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock6.c pthreads-w64-2-8-0-release/tests/rwlock6.c --- pthreads-w32-2-8-0-release/tests/rwlock6.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock6.c 2009-11-08 16:01:30.000000000 +0100 @@ -77,9 +77,9 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock6_t.c pthreads-w64-2-8-0-release/tests/rwlock6_t.c --- pthreads-w32-2-8-0-release/tests/rwlock6_t.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock6_t.c 2009-11-08 16:01:30.000000000 +0100 @@ -67,7 +67,7 @@ void * rdfunc(void * arg) _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 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/rwlock6_t2.c pthreads-w64-2-8-0-release/tests/rwlock6_t2.c --- pthreads-w32-2-8-0-release/tests/rwlock6_t2.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/rwlock6_t2.c 2009-11-08 16:01:30.000000000 +0100 @@ -86,15 +86,15 @@ main() 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/semaphore1.c pthreads-w64-2-8-0-release/tests/semaphore1.c --- pthreads-w32-2-8-0-release/tests/semaphore1.c 2005-05-08 18:52:52.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/semaphore1.c 2009-11-08 16:01:30.000000000 +0100 @@ -119,7 +119,7 @@ main() { 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 -Nbaurpad pthreads-w32-2-8-0-release/tests/semaphore4.c pthreads-w64-2-8-0-release/tests/semaphore4.c --- pthreads-w32-2-8-0-release/tests/semaphore4.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/semaphore4.c 2009-11-08 16:01:30.000000000 +0100 @@ -113,7 +113,7 @@ main() //printf("value = %d\n", -value); fflush(stdout); assert(pthread_cancel(t[50]) == 0); { - int result; + DWORD_PTR result; assert(pthread_join(t[50], (void **) &result) == 0); // printf("result = %d\n", result); fflush(stdout); } diff -Nbaurpad pthreads-w32-2-8-0-release/tests/spin4.c pthreads-w64-2-8-0-release/tests/spin4.c --- pthreads-w32-2-8-0-release/tests/spin4.c 2005-01-01 15:36:19.000000000 +0100 +++ pthreads-w64-2-8-0-release/tests/spin4.c 2009-11-08 16:01:30.000000000 +0100 @@ -63,7 +63,7 @@ void * func(void * arg) int main() { - long result = 0; + DWORD_PTR result = 0; pthread_t t; int CPUs; struct _timeb sysTime; diff -Nbaurpad pthreads-w32-2-8-0-release/tests/tsd1.c pthreads-w64-2-8-0-release/tests/tsd1.c --- pthreads-w32-2-8-0-release/tests/tsd1.c 2005-05-08 18:52:52.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/tsd1.c 2009-11-08 16:01:30.000000000 +0100 @@ -179,7 +179,7 @@ main() */ for (i = 1; i < NUM_THREADS; i++) { - int result = 0; + DWORD_PTR result = 0; assert(pthread_join(thread[i], (void **) &result) == 0); } diff -Nbaurpad pthreads-w32-2-8-0-release/tests/tsd2.c pthreads-w64-2-8-0-release/tests/tsd2.c --- pthreads-w32-2-8-0-release/tests/tsd2.c 2005-05-08 18:52:52.000000000 +0200 +++ pthreads-w64-2-8-0-release/tests/tsd2.c 2009-11-08 16:01:30.000000000 +0100 @@ -183,7 +183,7 @@ main() */ for (i = 1; i < NUM_THREADS; i++) { - int result = 0; + DWORD_PTR result = 0; assert(pthread_join(thread[i], (void **) &result) == 0); } diff -Nbaurpad pthreads-w32-2-8-0-release/version.rc pthreads-w64-2-8-0-release/version.rc --- pthreads-w32-2-8-0-release/version.rc 2005-05-19 06:19:35.000000000 +0200 +++ pthreads-w64-2-8-0-release/version.rc 2009-11-08 16:01:30.000000000 +0100 @@ -58,10 +58,10 @@ #elif defined(__GNUC__) # if defined(__CLEANUP_C) # define PTW32_VERSIONINFO_NAME "pthreadGC\0" -# define PTW32_VERSIONINFO_COMMENT "GNU C build -- longjmp thread exiting\0" +# define PTW32_VERSIONINFO_COMMENT "GNU C build 64 bit -- longjmp thread exiting\0" # elif defined(__CLEANUP_CXX) # define PTW32_VERSIONINFO_NAME "pthreadGCE\0" -# define PTW32_VERSIONINFO_COMMENT "GNU C++ build -- C++ exception thread exiting\0" +# define PTW32_VERSIONINFO_COMMENT "GNU C++ build 64 bit -- C++ exception thread exiting\0" # else # error Resource compiler doesn't know which cleanup style you're using - see version.rc # endif @@ -102,7 +102,7 @@ BEGIN BEGIN BLOCK "040904b0" BEGIN - VALUE "FileDescription", "POSIX Threads for Windows32 Library\0" + VALUE "FileDescription", " 64 bit POSIX Threads for Windows64 Library\0" VALUE "ProductVersion", PTW32_VERSION_STRING VALUE "FileVersion", PTW32_VERSION_STRING VALUE "InternalName", PTW32_VERSIONINFO_NAME