Hi there, I'm trying to compile pthread-win32 with eMbedded Visual C++ 4.0's compiler (cl.exe) and nmake.exe with include files of the Pocket PC 2003 SDK. I tried various things and got stuck at this problem: (note that I am not compiling with cygwin, it's just the location where I checked the sources out) C:\cygwin\home\Philip Van Hoof\pthreads>PATH PATH=C:\Program Files\Microsoft eMbedded C++ 4.0\Common\EVC\Bin;C:\Program Files \Microsoft eMbedded C++ 4.0\EVC\wce400\bin;C:\cygwin\bin C:\cygwin\home\Philip Van Hoof\pthreads> 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 /GX /TP /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_CXX -c attr.c attr.c cl /O2 /Ob2 /GX /TP /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_CXX -c barrier.c barrier.c cl /O2 /Ob2 /GX /TP /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_CXX -c cancel.c cancel.c cl /O2 /Ob2 /GX /TP /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_CXX -c cleanup.c cleanup.c cl /O2 /Ob2 /GX /TP /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_CXX -c condvar.c condvar.c cl /O2 /Ob2 /GX /TP /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_CXX -c create.c create.c cl /O2 /Ob2 /GX /TP /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_CXX -c dll.c dll.c cl /O2 /Ob2 /GX /TP /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_CXX -c errno.c errno.c cl /O2 /Ob2 /GX /TP /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_CXX -c exit.c exit.c cl /O2 /Ob2 /GX /TP /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_CXX -c fork.c fork.c cl /O2 /Ob2 /GX /TP /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_CXX -c global.c global.c cl /O2 /Ob2 /GX /TP /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_CXX -c misc.c misc.c cl /O2 /Ob2 /GX /TP /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_CXX -c mutex.c mutex.c cl /O2 /Ob2 /GX /TP /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_CXX -c nonportable.c nonportable.c cl /O2 /Ob2 /GX /TP /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_CXX -c private.c private.c ptw32_threadStart.c(108) : error C2146: syntax error : missing ';' before identi fier 'terminate_function' ptw32_threadStart.c(108) : fatal error C1004: unexpected end of file found NMAKE : fatal error U1077: 'cl' : return code '0x2' 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> I also had to make various little fixes (like some casting and setting Makefile includes right) of which I for the ease of explaining what I did simply made a diff (which is attached). Note that I removed the eh.h include from the ptw32_threadStart.c file because it doesn't exist in the include directory. That's probably not the right way to fix it ;-) (I know). Does somebody have pointers? How did others get the WinCE port compiled? -- Philip Van Hoof, software developer home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org http://www.pvanhoof.be/blog