Ok, silly me was trying to compile with exception handling (EH) support for cancellations without first reading about pthread-win32 vs. what WinCE supports. So I'm now using nmake VC in stead of the VCE target, and noticed that some newer parts of pthread-win32 are again (contrary to what the WinCE port once changed, according to its README file) including errno.h Changing those to need_errno.h seems to fix that mostly. I attached that patch. I'm not sure if an errno.h should be included, but if not I'm guessing this is a little problem that can easily be fixed by replacing them with need_errno.h? (actually .. I have no idea, I should study the WinCE port first, I know) I only have one problem remaining: winver.h does not exist in the include dir of that PocketPC 2003 SDK. I'm not really a Windows developer when it comes to C/C++, that I keep for my Linux/Posix stuff, so If somebody here can enlighten me .. that would be great ;-) Thanks. C:\cygwin\home\Philip Van Hoof\pthreads>nmake clean VC Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. if exist *.obj del *.obj if exist *.ilk del *.ilk if exist *.pdb del *.pdb if exist *.exp del *.exp if exist *.map del *.map if exist *.o del *.o if exist *.i del *.i if exist *.res del *.res cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c attr.c attr.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c barrier.c barrier.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c cancel.c cancel.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c cleanup.c cleanup.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c condvar.c condvar.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c create.c create.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c dll.c dll.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c errno.c errno.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c exit.c exit.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c fork.c fork.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c global.c global.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c misc.c misc.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c mutex.c mutex.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c nonportabl e.c nonportable.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c private.c private.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c rwlock.c rwlock.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c sched.c sched.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c semaphore. c semaphore.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c signal.c signal.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c spin.c spin.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c sync.c sync.c cl /O2 /Ob2 /W0 /MD /nologo /Yd /I. /D_WIN32_WINNT=0x400 /DHAVE_CONFIG_H /DWINCE -IC:\Include\Emulator /Zi /D DEBUG /D _i386_ /D UNDER_CE= /D i_386_ /D UNICODE /D _UNICODE /D _X86_ /D x86 /c /D NEED_FTIME /D__CLEANUP_C -c tsd.c tsd.c rc /dPTW32_RC_MSC /d__CLEANUP_C version.rc version.rc(33) : fatal error RC1015: cannot open include file 'winver.h'. NMAKE : fatal error U1077: 'rc' : return code '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files\Microsoft eMbedded C++ 4.0\Common\ EVC\Bin\NMAKE.EXE"' : return code '0x2' Stop. C:\cygwin\home\Philip Van Hoof\pthreads> -- Philip Van Hoof, software developer home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org http://www.pvanhoof.be/blog