Greetings everyone, while porting a project from Linux to Cygwin I noticed that pthread_cancel was having trouble cancelling threads blocked on semaphores and reads from stdin.
Another user had a similar problem a while ago: http://sourceware.org/ml/cygwin/2011-01/msg00374.html According to the follow-up this was fixed for network sockets, but Windows seems to tread networks socket different from everything else and the problem might not apply in my case. The user also mentioned trying pthread_kill to "wake" blocked threads so I tried that as well, but that resulted in completely different threads in my program waking up. My question is now whether I'm using pthread_cancel and pthread_kill incorrectly or if there's some functionality missing in the certainly not trivial Cygwin implementation of those functions. A program to demonstrate the problems is attached. It contains six different tests that behave slightly different depending on which function the "simplethread" function blocks on. You can find the expected and actual results that I got for the six tests at the bottom of this mail. The expected results correspond to what the readily available man-pages for pthread_cancel and pthread_kill state and I verified the tests on a Linux system. tl;dr version of the results: - Using pthread_cancel on a blocked thread with deferred cancel blocks the calling thread. - Threads blocked on semaphores, reads from stdin or pause() aren't cancelled. - Signals seem to wake the wrong threads in some cases. I have no explanation for this, so any ideas and suggestions are welcome. Cheers, Otto Test 1: Leave threads at deferred cancel and cancel each thread. Expected result: All threads are cancelled. Actual result: Blocking on semapthore: Main thread hangs on first call to pthread_cancel(). Blocking on pause(): Same as semaphore. Blocking on read(): Not deterministic: Main thread hangs on random call to pthread_cancel(). Test 2: Set cancel type to asynchronous and cancel each thread. Expected result: All threads are cancelled. Actual result: Independent of what the threads are blocked on, nothing is cancelled. Test 3: Send SIGUSR1 once to each thread. Expected result: Each thread executes the signal handler once. Actual result: Blocking on semaphore: Poking thread 2 (0x80020410) Thread 0 encountered an error: Interrupted system call (0x80010298) Poking thread 1 (0x80020370) Thread 1 executes signal handler (0x80020370) Thread 1 encountered an error: Interrupted system call (0x80020370) Poking thread 0 (0x80010298) Thread 2 executes signal handler (0x80020410) Thread 2 encountered an error: Interrupted system call (0x80020410) Woken threads don't correspond to signalled threads, not all of them execute the signal handler. Blocking on pause(): Same as semaphore. Blocking on read(): One thread executes the signal handler, the other two don't. Thread chosen seemingly at random. This could be a side-effect of all threads reading from stdin, but I still seems broken. Test 4: Send SIGUSR1 to one thread repeatedly (doesn't exit by design). Expected result: The target thread executes the signal handler each time. Actual result: Blocking on semaphore: Independent of the targeted thread, thread 0 wakes up once and executes the signal handler if thread 0 was signalled. No thread cares about further signals. Blocking on pause(): Same as semaphore. Blocking on read(): Not deterministic: Targeted thread either executes the signal handler every time or not at all. Test 5: Cancel each thread asynchronously and poke them with SIGUSR1 afterwards. Expected result: If a targeted thread isn't cancelled by pthread_cancel(), the signal should wake it up so that the cancel event can be handled. Actual result: Blocking on semaphore: Killing thread 2 (0x80020410) Poking thread 2 (0x80020410) Thread 0 encountered an error: Interrupted system call (0x80010298) Killing thread 1 (0x80020370) Poking thread 1 (0x80020370) Thread 2 exiting (0x80020410) Killing thread 0 (0x80010298) Poking thread 0 (0x80010298) Thread 1 exiting (0x80020370) Responding threads don't correspond to signalled threads, wrong threads exit if they have been cancelled already. Blocking on pause(): Same as semaphore. Blocking on read(): Not deterministic: One thread exits when poked, the other two stay. Test 6: Cancel each thread asynchronously and poke them with SIGUSR1 until they die. Expected result: If a targeted thread isn't cancelled by pthread_cancel(), the signal should wake it up so that the cancel event can be handled. If the first signal "misses", one of the following should hit. Actual result: Blocking on semaphore: Killing and poking thread 2 will result in one response to the signal from thread 0, then nothing. Killing and poking thread 1 will result in one resposne to the signal from thread 0, then nothing. Killing and poking thread 0 will result in one response to the signal from thread 1, then nothing. Blocking on pause(): Same as semaphore. Blocking on read(): Not deterministic: Either the first cancelled and poked thread exits fine and the other two don't care or all three don't care.
#include <errno.h> #include <pthread.h> #include <semaphore.h> #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <unistd.h> #define TEST 1 // Test 1: Deferred cancel: Main thread hangs on call to pthread_cancel() // Test 2: Async cancel sent to each thread // Test 3: Signal sent to each thread once // Test 4: Signal sent to one thread repeatedly (doesn't exit by design). // Test 5: Async cancel and signal sent to each thread once // Test 6: Async cancel sent once and signal sent repeatedly to each thread until they die pthread_t tids[3]; sem_t semaphore; static void cleanup_handler(void *arg) { int *intptr = (int*)arg; pthread_t self = pthread_self(); fprintf(stderr, "Thread %i exiting (%p)\n", *intptr, self); } static void* simplethread(void *arg) { int *intptr = (int*)arg; pthread_t self = pthread_self(); fprintf(stderr, "Thread %i starting (%p)\n", *intptr, self); char buffer[1] __attribute((unused)); pthread_cleanup_push(&cleanup_handler, intptr); int oldtype; #if TEST != 1 pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldtype); fprintf(stderr, "Changing canceltype from %i to %i\n", oldtype, PTHREAD_CANCEL_ASYNCHRONOUS); #endif pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &oldtype); fprintf(stderr, "Changing cancelstate from %i to %i\n", oldtype, PTHREAD_CANCEL_ENABLE); while (1) { if (sem_wait(&semaphore) != 0) { //if (pause() == -1) { //if (read(STDIN_FILENO, buffer, 1) <= 0) { fprintf(stderr, "Thread %i encountered an error: %s (%p)\n", *intptr, strerror(errno), self); } else { fprintf(stderr, "Thread %i woke up just fine\n", *intptr); } } pthread_cleanup_pop(1); return NULL; } static void sigusr1_handler(int signal __attribute((unused))) { pthread_t self = pthread_self(); int tnum = 0; while (tnum < 3) { if (tids[tnum] == self) { break; } tnum++; } fprintf(stderr, "Thread %i executes signal handler (%p)\n", tnum, self); } static void install_handler(void) { struct sigaction act; act.sa_handler = &sigusr1_handler; sigemptyset(&(act.sa_mask)); act.sa_flags = 0; if (sigaction(SIGUSR1, &act, NULL) != 0) { fprintf(stderr, "Can't set signal handler: %s\n", strerror(errno)); exit(1); } sigset_t sset; sigemptyset(&sset); sigaddset(&sset, SIGUSR1); if (sigprocmask(SIG_UNBLOCK, &sset, NULL) != 0) { fprintf(stderr, "Can't unblock SIGUSR1: %s\n", strerror(errno)); } } int main() { int i; int result; sem_init(&semaphore, 0, 0); install_handler(); for (i=0; i<3; i++) { int *intptr = (int*)malloc(sizeof(int)); *intptr = i; result = pthread_create(tids+i, NULL, &simplethread, intptr); if (result != 0) { fprintf(stderr, "Can't create thread: %s\n", strerror(result)); return 1; } } sleep(1); install_handler(); fprintf(stderr, "\n"); int mainint = 42; pthread_cleanup_push(&cleanup_handler, &mainint); for (i=2; i>=0; i--) { #if TEST == 1 || TEST == 2 || TEST == 5 || TEST == 6 fprintf(stderr, "Killing thread %i (%p)\n", i, tids[i]); result = pthread_cancel(tids[i]); if (result != 0) { fprintf(stderr, "Error during pthread_cancel: %s\n", strerror(result)); } sleep(1); #endif #if TEST == 3 || TEST == 4 | TEST == 5 || TEST == 6 do { fprintf(stderr, "Poking thread %i (%p)\n", i, tids[i]); result = pthread_kill(tids[i], SIGUSR1); if (result != 0) { fprintf(stderr, "Error during pthread_kill: %s\n", strerror(result)); } sleep(1); result = pthread_kill(tids[i], 0); if (result == 0) { fprintf(stderr, "Thread %i is still there (%p)\n", i, tids[i]); sleep(1); } else { fprintf(stderr, "Thread %i is gone (%p)\n", i, tids[i]); break; } #endif #if TEST == 3 || TEST == 5 } while(0); #elif TEST == 4 || TEST == 6 } while(1); #endif } sleep(1); fprintf(stderr, "\n"); for (i=0; i<3; i++) { result = pthread_kill(tids[i], 0); if (result == 0) { fprintf(stderr, "Thread %i is still there (%p)\n", i, tids[i]); } else { fprintf(stderr, "Thread %i is gone (%p)\n", i, tids[i]); } } pthread_cleanup_pop(0); return 0; }
Cygwin Configuration Diagnostics Current System Time: Wed May 09 18:05:21 2012 Windows 7 Enterprise Ver 6.1 Build 7601 Service Pack 1 Running under WOW64 on AMD64 Path: D:\Software\cygwin\usr\local\bin D:\Software\cygwin\bin C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain\bin C:\WinAVR-20100110\bin C:\WinAVR-20100110\utils\bin C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Windows\System32\WindowsPowerShell\v1.0 C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared C:\Program Files (x86)\Common Files\Roxio Shared\9.0\DLLShared C:\Program Files\MATLAB\R2008a\bin C:\Program Files\MATLAB\R2008a\bin\win64 C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn C:\Program Files (x86)\IVI Foundation\IVI\bin C:\Program Files\IVI Foundation\IVI\bin C:\Program Files (x86)\IVI Foundation\VISA\winnt\agvisa C:\Program Files (x86)\IVI Foundation\VISA\winnt\bin C:\Program Files (x86)\NASM C:\Program Files (x86)\Atmel\Flip 3.4.1\bin D:\Software\Python3.2 Output from D:\Software\cygwin\bin\id.exe UID: 1000(MBA) GID: 513(None) =513(None) 545(Benutzer) 1005(Debuggerbenutzer) SysDir: C:\Windows\system32 WinDir: C:\Windows USER = 'MBA' PWD = '/cygdrive/d' HOME = '/home/MBA' HOMEPATH = '\Users\MBA' MANPATH = '/usr/local/man:/usr/share/man:/usr/man:' APPDATA = 'C:\Users\MBA\AppData\Roaming' ProgramW6432 = 'C:\Program Files' HOSTNAME = 'TempleOfTheDog' SHELL = '/bin/bash' TERM = 'cygwin' RoxioCentral = 'C:\Program Files (x86)\Common Files\Roxio Shared\9.0\Roxio Central33\' PROCESSOR_IDENTIFIER = 'Intel64 Family 6 Model 23 Stepping 10, GenuineIntel' WINDIR = 'C:\Windows' VXIPNPPATH64 = 'C:\Program Files\IVI Foundation\VISA\' PUBLIC = 'C:\Users\Public' OLDPWD = '/cygdrive/c' USERDOMAIN = 'TEMPLEOFTHEDOG' CommonProgramFiles(x86) = 'C:\Program Files (x86)\Common Files' OS = 'Windows_NT' ALLUSERSPROFILE = 'C:\ProgramData' !:: = '::\' temp = 'C:\Users\MBA\AppData\Local\Temp' VS90COMNTOOLS = 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\' COMMONPROGRAMFILES = 'C:\Program Files (x86)\Common Files' tmp = 'C:\Users\MBA\AppData\Local\Temp' VXIPNPPATH = 'C:\Program Files (x86)\IVI Foundation\VISA\' USERNAME = 'MBA' PROCESSOR_LEVEL = '6' ProgramFiles(x86) = 'C:\Program Files (x86)' PSModulePath = 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\' IVIROOTDIR32 = 'C:\Program Files (x86)\IVI Foundation\IVI\' FP_NO_HOST_CHECK = 'NO' CARBON_MEM_DISABLE = '1' SYSTEMDRIVE = 'C:' PROCESSOR_ARCHITEW6432 = 'AMD64' LANG = 'de_DE.UTF-8' USERPROFILE = 'C:\Users\MBA' TZ = 'Europe/Berlin' PS1 = '\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ ' LOGONSERVER = '\\TEMPLEOFTHEDOG' CommonProgramW6432 = 'C:\Program Files\Common Files' PROCESSOR_ARCHITECTURE = 'x86' LOCALAPPDATA = 'C:\Users\MBA\AppData\Local' HISTCONTROL = 'ignoredups' ProgramData = 'C:\ProgramData' SHLVL = '1' IVIROOTDIR64 = 'C:\Program Files\IVI Foundation\IVI\' PATHEXT = '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' HOMEDRIVE = 'C:' !D: = 'D:\Software\cygwin\bin' PROMPT = '$P$G' COMSPEC = 'C:\Windows\system32\cmd.exe' SYSTEMROOT = 'C:\Windows' PRINTER = 'KONICA MINOLTA Universal PS' PROCESSOR_REVISION = '170a' UGII_3DCONNEXION_LIBRARY = '%UGII_BASE_DIR%\ugalliance\vendor\startup\3DxNX.dll' INFOPATH = '/usr/local/info:/usr/share/info:/usr/info:' PROGRAMFILES = 'C:\Program Files (x86)' NUMBER_OF_PROCESSORS = '2' AVR32_HOME = 'C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain' SESSIONNAME = 'Console' COMPUTERNAME = 'TEMPLEOFTHEDOG' _ = '/usr/bin/cygcheck' HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options HKEY_CURRENT_USER\Software\Cygwin HKEY_CURRENT_USER\Software\Cygwin\Installations (default) = '\??\D:\Software\cygwin' HKEY_CURRENT_USER\Software\Cygwin\Program Options HKEY_CURRENT_USER\Software\Cygwin\setup HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Installations (default) = '\??\D:\Software\cygwin' HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Program Options HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup (default) = 'D:\Software\cygwin' obcaseinsensitive set to 1 Cygwin installations found in the registry: System: Key: d1d85fb7bc451065 Path: D:\Software\cygwin User: Key: d1d85fb7bc451065 Path: D:\Software\cygwin c: hd NTFS 76837Mb 63% CP CS UN PA FC Windows-System d: hd NTFS 399999Mb 17% CP CS UN PA FC Daten e: cd N/A N/A D:\Software\cygwin / system binary,auto D:\Software\cygwin\bin /usr/bin system binary,auto D:\Software\cygwin\lib /usr/lib system binary,auto cygdrive prefix /cygdrive user binary,auto Found: D:\Software\cygwin\bin\awk -> D:\Software\cygwin\bin\gawk.exe Found: D:\Software\cygwin\bin\bash.exe Found: D:\Software\cygwin\bin\cat.exe Found: C:\WinAVR-20100110\utils\bin\cat.exe Warning: D:\Software\cygwin\bin\cat.exe hides C:\WinAVR-20100110\utils\bin\cat.exe Found: D:\Software\cygwin\bin\cp.exe Found: C:\WinAVR-20100110\utils\bin\cp.exe Warning: D:\Software\cygwin\bin\cp.exe hides C:\WinAVR-20100110\utils\bin\cp.exe Found: D:\Software\cygwin\bin\cpp.exe -> D:\Software\cygwin\etc\alternatives\cpp -> D:\Software\cygwin\bin\cpp-4.exe Not Found: crontab Found: D:\Software\cygwin\bin\find.exe Found: C:\WinAVR-20100110\utils\bin\find.exe Warning: D:\Software\cygwin\bin\find.exe hides C:\WinAVR-20100110\utils\bin\find.exe Found: C:\Windows\system32\find.exe Warning: D:\Software\cygwin\bin\find.exe hides C:\Windows\system32\find.exe Found: D:\Software\cygwin\bin\gcc.exe -> D:\Software\cygwin\etc\alternatives\gcc -> D:\Software\cygwin\bin\gcc-4.exe Not Found: gdb Found: D:\Software\cygwin\bin\grep.exe Found: C:\WinAVR-20100110\utils\bin\grep.exe Warning: D:\Software\cygwin\bin\grep.exe hides C:\WinAVR-20100110\utils\bin\grep.exe Found: D:\Software\cygwin\bin\kill.exe Found: D:\Software\cygwin\bin\ld.exe Found: D:\Software\cygwin\bin\ls.exe Found: C:\WinAVR-20100110\utils\bin\ls.exe Warning: D:\Software\cygwin\bin\ls.exe hides C:\WinAVR-20100110\utils\bin\ls.exe Found: D:\Software\cygwin\bin\make.exe Found: C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain\bin\make.exe Warning: D:\Software\cygwin\bin\make.exe hides C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain\bin\make.exe Found: C:\WinAVR-20100110\utils\bin\make.exe Warning: D:\Software\cygwin\bin\make.exe hides C:\WinAVR-20100110\utils\bin\make.exe Found: D:\Software\cygwin\bin\mv.exe Found: C:\WinAVR-20100110\utils\bin\mv.exe Warning: D:\Software\cygwin\bin\mv.exe hides C:\WinAVR-20100110\utils\bin\mv.exe Found: C:\WinAVR-20100110\utils\bin\patch.exe Found: D:\Software\cygwin\bin\perl.exe Found: D:\Software\cygwin\bin\rm.exe Found: C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain\bin\rm.exe Warning: D:\Software\cygwin\bin\rm.exe hides C:\Program Files (x86)\Atmel\AVR Tools\AVR32 Toolchain\bin\rm.exe Found: C:\WinAVR-20100110\utils\bin\rm.exe Warning: D:\Software\cygwin\bin\rm.exe hides C:\WinAVR-20100110\utils\bin\rm.exe Found: D:\Software\cygwin\bin\sed.exe Found: C:\WinAVR-20100110\utils\bin\sed.exe Warning: D:\Software\cygwin\bin\sed.exe hides C:\WinAVR-20100110\utils\bin\sed.exe Not Found: ssh Found: D:\Software\cygwin\bin\sh.exe Found: C:\WinAVR-20100110\utils\bin\sh.exe Warning: D:\Software\cygwin\bin\sh.exe hides C:\WinAVR-20100110\utils\bin\sh.exe Found: D:\Software\cygwin\bin\tar.exe Found: C:\WinAVR-20100110\utils\bin\tar.exe Warning: D:\Software\cygwin\bin\tar.exe hides C:\WinAVR-20100110\utils\bin\tar.exe Found: D:\Software\cygwin\bin\test.exe Found: C:\WinAVR-20100110\utils\bin\test.exe Warning: D:\Software\cygwin\bin\test.exe hides C:\WinAVR-20100110\utils\bin\test.exe Not Found: vi Not Found: vim 14k 2012/05/04 D:\Software\cygwin\bin\cygattr-1.dll - os=4.0 img=1.0 sys=4.0 "cygattr-1.dll" v0.0 ts=2012/5/4 12:35 118k 2012/02/29 D:\Software\cygwin\bin\cygblkid-1.dll - os=4.0 img=1.0 sys=4.0 "cygblkid-1.dll" v0.0 ts=2012/2/29 3:57 62k 2011/05/21 D:\Software\cygwin\bin\cygbz2-1.dll - os=4.0 img=1.0 sys=4.0 "cygbz2-1.dll" v0.0 ts=2011/5/21 20:16 108k 2010/01/05 D:\Software\cygwin\bin\cygcloog-0.dll - os=4.0 img=1.0 sys=4.0 "cygcloog-0.dll" v0.0 ts=2010/1/5 0:45 7k 2012/05/07 D:\Software\cygwin\bin\cygcrypt-0.dll - os=4.0 img=1.0 sys=4.0 "cygcrypt-0.dll" v0.0 ts=2012/5/7 12:18 1246k 2012/04/24 D:\Software\cygwin\bin\cygcrypto-0.9.8.dll - os=4.0 img=1.0 sys=4.0 "cygcrypto-0.9.8.dll" v0.0 ts=2012/4/24 10:06 929k 2011/11/10 D:\Software\cygwin\bin\cygdb-4.5.dll - os=4.0 img=1.0 sys=4.0 "cygdb-4.5.dll" v0.0 ts=2011/11/10 19:52 93k 2011/11/10 D:\Software\cygwin\bin\cygdb_cxx-4.5.dll - os=4.0 img=1.0 sys=4.0 "cygdb_cxx-4.5.dll" v0.0 ts=2011/11/10 19:53 66k 2010/06/02 D:\Software\cygwin\bin\cygelf-0.dll - os=4.0 img=1.0 sys=4.0 "cygelf-0.dll" v0.8 ts=2010/6/2 14:08 118k 2008/05/09 D:\Software\cygwin\bin\cygexpat-1.dll - os=4.0 img=1.0 sys=4.0 "cygexpat-1.dll" v0.0 ts=2008/5/9 5:03 21k 2011/10/26 D:\Software\cygwin\bin\cygffi-4.dll - os=4.0 img=1.0 sys=4.0 "cygffi-4.dll" v0.0 ts=2011/10/23 14:33 175k 2012/02/03 D:\Software\cygwin\bin\cygfontconfig-1.dll - os=4.0 img=1.0 sys=4.0 "cygfontconfig-1.dll" v0.0 ts=2012/2/3 8:53 20k 2010/10/31 D:\Software\cygwin\bin\cygfontenc-1.dll - os=4.0 img=1.0 sys=4.0 "cygfontenc-1.dll" v0.0 ts=2010/10/31 20:19 43k 2010/01/02 D:\Software\cygwin\bin\cygform-10.dll - os=4.0 img=1.0 sys=4.0 "cygform-10.dll" v0.0 ts=2010/1/2 14:49 40k 2009/03/01 D:\Software\cygwin\bin\cygform-8.dll - os=4.0 img=1.0 sys=4.0 "cygform-8.dll" v0.0 ts=2009/3/1 6:32 43k 2009/11/20 D:\Software\cygwin\bin\cygform-9.dll - os=4.0 img=1.0 sys=4.0 "cygform-9.dll" v0.0 ts=2009/11/20 19:14 47k 2010/01/02 D:\Software\cygwin\bin\cygformw-10.dll - os=4.0 img=1.0 sys=4.0 "cygformw-10.dll" v0.0 ts=2010/1/2 17:31 505k 2012/03/27 D:\Software\cygwin\bin\cygfreetype-6.dll - os=4.0 img=1.0 sys=4.0 "cygfreetype-6.dll" v0.0 ts=2012/3/27 5:27 79k 2011/10/26 D:\Software\cygwin\bin\cyggcc_s-1.dll - os=4.0 img=1.0 sys=4.0 "cyggcc_s-1.dll" v0.0 ts=2011/10/23 14:15 449k 2011/05/20 D:\Software\cygwin\bin\cyggcrypt-11.dll - os=4.0 img=1.0 sys=4.0 "cyggcrypt-11.dll" v0.0 ts=2011/5/20 3:29 19k 2009/02/26 D:\Software\cygwin\bin\cyggdbm-4.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm-4.dll" v0.0 ts=2009/2/26 7:58 8k 2009/02/26 D:\Software\cygwin\bin\cyggdbm_compat-4.dll - os=4.0 img=1.0 sys=4.0 "cyggdbm_compat-4.dll" v0.0 ts=2009/2/26 7:58 325k 2012/02/05 D:\Software\cygwin\bin\cygGL-1.dll - os=4.0 img=1.0 sys=4.0 "cygGL-1.dll" v0.0 ts=2012/2/5 7:13 159k 2012/02/05 D:\Software\cygwin\bin\cygglapi-0.dll - os=4.0 img=1.0 sys=4.0 "cygglapi-0.dll" v0.0 ts=2012/2/5 6:58 317k 2011/07/31 D:\Software\cygwin\bin\cyggmp-3.dll - os=4.0 img=1.0 sys=4.0 "cyggmp-3.dll" v0.0 ts=2011/7/31 6:14 14k 2011/07/31 D:\Software\cygwin\bin\cyggmpxx-4.dll - os=4.0 img=1.0 sys=4.0 "cyggmpxx-4.dll" v0.0 ts=2011/7/31 11:31 42k 2011/10/26 D:\Software\cygwin\bin\cyggomp-1.dll - os=4.0 img=1.0 sys=4.0 "cyggomp-1.dll" v0.0 ts=2011/10/23 14:21 14k 2011/05/20 D:\Software\cygwin\bin\cyggpg-error-0.dll - os=4.0 img=1.0 sys=4.0 "cyggpg-error-0.dll" v0.0 ts=2011/5/20 3:04 25k 2012/05/04 D:\Software\cygwin\bin\cyghistory7.dll - os=4.0 img=1.0 sys=4.0 "cyghistory7.dll" v0.0 ts=2012/5/4 22:07 74k 2010/10/31 D:\Software\cygwin\bin\cygICE-6.dll - os=4.0 img=1.0 sys=4.0 "cygICE-6.dll" v0.0 ts=2010/10/31 20:18 358k 2012/04/14 D:\Software\cygwin\bin\cygicons-0.dll - os=4.0 img=1.4 sys=4.0 "cygicons-0.dll" v0.0 ts=2012/4/14 2:48 985k 2011/10/16 D:\Software\cygwin\bin\cygiconv-2.dll - os=4.0 img=1.0 sys=4.0 "cygiconv-2.dll" v0.0 ts=2011/10/16 18:01 31k 2005/11/20 D:\Software\cygwin\bin\cygintl-3.dll - os=4.0 img=1.0 sys=4.0 "cygintl-3.dll" v0.0 ts=2005/11/20 2:04 35k 2011/10/16 D:\Software\cygwin\bin\cygintl-8.dll - os=4.0 img=1.0 sys=4.0 "cygintl-8.dll" v0.0 ts=2011/10/16 6:38 12928k 2012/01/24 D:\Software\cygwin\bin\cygLLVM-3.0.dll - os=4.0 img=1.0 sys=4.0 "cygLLVM-3.0.dll" v0.0 ts=2012/1/24 12:03 5k 2012/04/25 D:\Software\cygwin\bin\cyglsa.dll - os=4.0 img=1.0 sys=4.0 "cyglsa.dll" v0.0 ts=2012/4/25 8:41 9k 2012/04/25 D:\Software\cygwin\bin\cyglsa64.dll - os=5.2 img=0.0 sys=5.2 125k 2010/04/09 D:\Software\cygwin\bin\cyglzma-1.dll - os=4.0 img=1.0 sys=4.0 "cyglzma-1.dll" v0.0 ts=2010/4/9 16:54 123k 2011/05/19 D:\Software\cygwin\bin\cyglzma-5.dll - os=4.0 img=1.0 sys=4.0 "cyglzma-5.dll" v0.0 ts=2011/5/19 3:41 94k 2012/04/22 D:\Software\cygwin\bin\cygmagic-1.dll - os=4.0 img=1.0 sys=4.0 "cygmagic-1.dll" v0.0 ts=2012/4/22 19:09 25k 2010/01/02 D:\Software\cygwin\bin\cygmenu-10.dll - os=4.0 img=1.0 sys=4.0 "cygmenu-10.dll" v0.0 ts=2010/1/2 14:48 21k 2009/03/01 D:\Software\cygwin\bin\cygmenu-8.dll - os=4.0 img=1.0 sys=4.0 "cygmenu-8.dll" v0.0 ts=2009/3/1 6:31 25k 2009/11/20 D:\Software\cygwin\bin\cygmenu-9.dll - os=4.0 img=1.0 sys=4.0 "cygmenu-9.dll" v0.0 ts=2009/11/20 19:13 25k 2010/01/02 D:\Software\cygwin\bin\cygmenuw-10.dll - os=4.0 img=1.0 sys=4.0 "cygmenuw-10.dll" v0.0 ts=2010/1/2 17:30 213k 2011/07/31 D:\Software\cygwin\bin\cygmp-3.dll - os=4.0 img=1.0 sys=4.0 "cygmp-3.dll" v0.0 ts=2011/7/31 6:12 64k 2009/11/09 D:\Software\cygwin\bin\cygmpc-1.dll - os=4.0 img=1.0 sys=4.0 "cygmpc-1.dll" v0.0 ts=2009/11/9 1:21 269k 2009/06/07 D:\Software\cygwin\bin\cygmpfr-1.dll - os=4.0 img=1.0 sys=4.0 "cygmpfr-1.dll" v0.0 ts=2009/6/7 22:10 1102k 2011/08/07 D:\Software\cygwin\bin\cygmpfr-4.dll - os=4.0 img=1.0 sys=4.0 "cygmpfr-4.dll" v0.0 ts=2011/8/7 2:47 63k 2010/01/02 D:\Software\cygwin\bin\cygncurses++-10.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++-10.dll" v0.0 ts=2010/1/2 15:00 66k 2009/03/01 D:\Software\cygwin\bin\cygncurses++-8.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++-8.dll" v0.0 ts=2009/3/1 6:39 63k 2009/11/20 D:\Software\cygwin\bin\cygncurses++-9.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++-9.dll" v0.0 ts=2009/11/20 19:25 63k 2010/01/02 D:\Software\cygwin\bin\cygncurses++w-10.dll - os=4.0 img=1.0 sys=4.0 "cygncurses++w-10.dll" v0.0 ts=2010/1/2 17:41 195k 2010/01/02 D:\Software\cygwin\bin\cygncurses-10.dll - os=4.0 img=1.0 sys=4.0 "cygncurses-10.dll" v0.0 ts=2010/1/2 14:45 237k 2009/03/01 D:\Software\cygwin\bin\cygncurses-8.dll - os=4.0 img=1.0 sys=4.0 "cygncurses-8.dll" v0.0 ts=2009/3/1 6:28 198k 2009/11/20 D:\Software\cygwin\bin\cygncurses-9.dll - os=4.0 img=1.0 sys=4.0 "cygncurses-9.dll" v0.0 ts=2009/11/20 19:10 244k 2010/01/02 D:\Software\cygwin\bin\cygncursesw-10.dll - os=4.0 img=1.0 sys=4.0 "cygncursesw-10.dll" v0.0 ts=2010/1/2 17:28 13k 2010/01/02 D:\Software\cygwin\bin\cygpanel-10.dll - os=4.0 img=1.0 sys=4.0 "cygpanel-10.dll" v0.0 ts=2010/1/2 14:47 11k 2009/03/01 D:\Software\cygwin\bin\cygpanel-8.dll - os=4.0 img=1.0 sys=4.0 "cygpanel-8.dll" v0.0 ts=2009/3/1 6:30 13k 2009/11/20 D:\Software\cygwin\bin\cygpanel-9.dll - os=4.0 img=1.0 sys=4.0 "cygpanel-9.dll" v0.0 ts=2009/11/20 19:12 13k 2010/01/02 D:\Software\cygwin\bin\cygpanelw-10.dll - os=4.0 img=1.0 sys=4.0 "cygpanelw-10.dll" v0.0 ts=2010/1/2 16:30 255k 2012/02/10 D:\Software\cygwin\bin\cygpcre-0.dll - os=4.0 img=1.0 sys=4.0 "cygpcre-0.dll" v0.0 ts=2012/2/10 10:24 1627k 2010/08/29 D:\Software\cygwin\bin\cygperl5_10.dll - os=4.0 img=1.0 sys=4.0 "cygperl5_10.dll" v0.0 ts=2010/8/28 19:17 509k 2012/03/12 D:\Software\cygwin\bin\cygpixman-1-0.dll - os=4.0 img=1.0 sys=4.0 "cygpixman-1-0.dll" v0.0 ts=2012/3/12 11:06 22k 2002/06/09 D:\Software\cygwin\bin\cygpopt-0.dll - os=4.0 img=1.0 sys=4.0 "cygpopt-0.dll" v0.0 ts=2002/6/9 6:45 695k 2009/04/18 D:\Software\cygwin\bin\cygppl-7.dll - os=4.0 img=1.0 sys=4.0 "cygppl-7.dll" v0.0 ts=2009/4/18 13:44 2481k 2009/04/18 D:\Software\cygwin\bin\cygppl_c-2.dll - os=4.0 img=1.0 sys=4.0 "cygppl_c-2.dll" v0.0 ts=2009/4/18 13:47 18k 2009/04/18 D:\Software\cygwin\bin\cygpwl-4.dll - os=4.0 img=1.0 sys=4.0 "cygpwl-4.dll" v0.0 ts=2009/4/18 13:44 162k 2012/05/04 D:\Software\cygwin\bin\cygreadline7.dll - os=4.0 img=1.0 sys=4.0 "cygreadline7.dll" v0.0 ts=2012/5/4 22:07 8k 2011/05/05 D:\Software\cygwin\bin\cygsigsegv-2.dll - os=4.0 img=1.0 sys=4.0 "cygsigsegv-2.dll" v0.0 ts=2011/5/5 8:33 25k 2010/10/31 D:\Software\cygwin\bin\cygSM-6.dll - os=4.0 img=1.0 sys=4.0 "cygSM-6.dll" v0.0 ts=2010/10/31 20:24 1613k 2010/12/01 D:\Software\cygwin\bin\cygsqlite3-0.dll - os=4.0 img=1.0 sys=4.0 "cygsqlite3-0.dll" v0.0 ts=2010/12/1 12:20 282k 2012/04/24 D:\Software\cygwin\bin\cygssl-0.9.8.dll - os=4.0 img=1.0 sys=4.0 "cygssl-0.9.8.dll" v0.0 ts=2012/4/24 10:06 8k 2011/10/26 D:\Software\cygwin\bin\cygssp-0.dll - os=4.0 img=1.0 sys=4.0 "cygssp-0.dll" v0.0 ts=2011/10/23 14:33 780k 2011/10/26 D:\Software\cygwin\bin\cygstdc++-6.dll - os=4.0 img=1.0 sys=4.0 "cygstdc++-6.dll" v0.0 ts=2011/10/23 14:58 48k 2010/01/02 D:\Software\cygwin\bin\cygtic-10.dll - os=4.0 img=1.0 sys=4.0 "cygtic-10.dll" v0.0 ts=2010/1/2 14:45 48k 2009/11/20 D:\Software\cygwin\bin\cygtic-9.dll - os=4.0 img=1.0 sys=4.0 "cygtic-9.dll" v0.0 ts=2009/11/20 19:10 48k 2010/01/02 D:\Software\cygwin\bin\cygticw-10.dll - os=4.0 img=1.0 sys=4.0 "cygticw-10.dll" v0.0 ts=2010/1/2 17:28 13k 2012/02/29 D:\Software\cygwin\bin\cyguuid-1.dll - os=4.0 img=1.0 sys=4.0 "cyguuid-1.dll" v0.0 ts=2012/2/29 3:56 1045k 2011/08/22 D:\Software\cygwin\bin\cygX11-6.dll - os=4.0 img=1.0 sys=4.0 "cygX11-6.dll" v0.0 ts=2011/8/22 9:25 6k 2011/08/22 D:\Software\cygwin\bin\cygX11-xcb-1.dll - os=4.0 img=1.0 sys=4.0 "cygX11-xcb-1.dll" v0.0 ts=2011/8/22 9:26 11k 2010/08/03 D:\Software\cygwin\bin\cygXau-6.dll - os=4.0 img=1.0 sys=4.0 "cygXau-6.dll" v0.0 ts=2010/8/3 1:32 337k 2011/02/04 D:\Software\cygwin\bin\cygXaw-7.dll - os=4.0 img=1.0 sys=4.0 "cygXaw-7.dll" v0.0 ts=2011/2/4 7:02 75k 2010/12/21 D:\Software\cygwin\bin\cygxcb-1.dll - os=4.0 img=1.0 sys=4.0 "cygxcb-1.dll" v0.0 ts=2010/12/21 1:36 51k 2010/12/21 D:\Software\cygwin\bin\cygxcb-glx-0.dll - os=4.0 img=1.0 sys=4.0 "cygxcb-glx-0.dll" v0.0 ts=2010/12/21 1:36 17k 2010/10/31 D:\Software\cygwin\bin\cygXdmcp-6.dll - os=4.0 img=1.0 sys=4.0 "cygXdmcp-6.dll" v0.0 ts=2010/10/31 20:29 52k 2011/05/23 D:\Software\cygwin\bin\cygXext-6.dll - os=4.0 img=1.0 sys=4.0 "cygXext-6.dll" v0.0 ts=2011/5/23 9:32 66k 2010/11/01 D:\Software\cygwin\bin\cygXft-2.dll - os=4.0 img=1.0 sys=4.0 "cygXft-2.dll" v0.0 ts=2010/11/1 2:10 119k 2010/11/01 D:\Software\cygwin\bin\cygxkbfile-1.dll - os=4.0 img=1.0 sys=4.0 "cygxkbfile-1.dll" v0.0 ts=2010/11/1 2:33 75k 2010/11/01 D:\Software\cygwin\bin\cygXmu-6.dll - os=4.0 img=1.0 sys=4.0 "cygXmu-6.dll" v0.0 ts=2010/11/1 2:19 11k 2010/11/01 D:\Software\cygwin\bin\cygXmuu-1.dll - os=4.0 img=1.0 sys=4.0 "cygXmuu-1.dll" v0.0 ts=2010/11/1 2:19 53k 2010/11/01 D:\Software\cygwin\bin\cygXpm-4.dll - os=4.0 img=1.0 sys=4.0 "cygXpm-4.dll" v0.0 ts=2010/11/1 2:19 32k 2010/08/03 D:\Software\cygwin\bin\cygXrender-1.dll - os=4.0 img=1.0 sys=4.0 "cygXrender-1.dll" v0.0 ts=2010/8/3 5:48 278k 2011/06/07 D:\Software\cygwin\bin\cygXt-6.dll - os=4.0 img=1.0 sys=4.0 "cygXt-6.dll" v0.0 ts=2011/6/7 4:40 76k 2010/08/01 D:\Software\cygwin\bin\cygz.dll - os=4.0 img=1.0 sys=4.0 "cygz.dll" v0.0 ts=2010/8/1 22:04 2779k 2012/04/25 D:\Software\cygwin\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2012/4/25 8:41 Cygwin DLL version info: DLL version: 1.7.14 DLL epoch: 19 DLL old termios: 5 DLL malloc env: 28 Cygwin conv: 181 API major: 0 API minor: 260 Shared data: 5 DLL identifier: cygwin1 Mount registry: 3 Cygwin registry name: Cygwin Program options name: Program Options Installations name: Installations Cygdrive default prefix: Build date: Shared id: cygwin1S5 1829k 2010/01/19 C:\WinAVR-20100110\bin\cygwin1.dll - os=4.0 img=1.0 sys=4.0 "cygwin1.dll" v0.0 ts=2008/6/12 18:35 Cygwin DLL version info: DLL version: 1.5.25 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 156 Shared data: 4 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Thu Jun 12 19:34:46 CEST 2008 CVS tag: cr-0x5f1 Shared id: cygwin1S4 Warning: There are multiple cygwin1.dlls on your path Can't find the cygrunsrv utility, skipping services check. Cygwin Package Information Last downloaded files to: D:\Software\cygwin-install Last downloaded files from: http://linux.rz.ruhr-uni-bochum.de/download/cygwin/ Package Version Status _autorebase 000059-1 OK _update-info-dir 01049-1 OK alternatives 1.3.30c-10 OK base-cygwin 3.1-1 OK base-files 4.1-1 OK Empty package base-passwd base-passwd 3.1-2 OK bash 4.1.10-4 OK binutils 2.22.51-2 OK bzip2 1.0.6-2 OK coreutils 8.15-1 OK crypt 1.2-1 OK cygutils 1.4.10-2 OK cygwin 1.7.14-2 OK cygwin-doc 1.7-1 OK dash 0.5.7-1 OK diffutils 3.2-1 OK dos2unix 6.0-1 OK dri-drivers 7.11.2-1 OK editrights 1.01-2 OK file 5.11-1 OK findutils 4.5.9-2 OK flawfinder 1.27-2 OK font-adobe-dpi75 1.0.2-1 OK font-alias 1.0.3-1 OK font-encodings 1.0.4-1 OK font-misc-misc 1.1.1-1 OK fontconfig 2.8.0-2 OK gawk 4.0.1-1 OK Empty package gcc gcc 3.4.4-999 OK gcc-core 3.4.4-999 OK gcc-g++ 3.4.4-999 OK gcc-mingw-core 20050522-3 OK gcc-mingw-g++ 20050522-3 OK Empty package gcc4 gcc4 4.5.3-3 OK gcc4-core 4.5.3-3 OK gcc4-g++ 4.5.3-3 OK gettext 0.18.1.1-2 OK grep 2.6.3-1 OK groff 1.21-2 OK gzip 1.4-1 OK ipc-utils 1.0-1 OK less 444-1 OK libattr1 2.4.46-1 OK libblkid1 2.21-1 OK libbz2_1 1.0.6-2 OK libcloog0 0.15.7-1 OK libdb4.5 4.5.20.2-3 OK libelf0 0.8.13-2 OK libelf0-devel 0.8.13-2 OK libexpat1 2.0.1-1 OK libffi4 4.5.3-3 OK libfontconfig1 2.8.0-2 OK libfontenc1 1.1.0-1 OK libfreetype6 2.4.9-2 OK libgcc1 4.5.3-3 OK libgcrypt11 1.4.6-1 OK libgdbm4 1.8.3-20 OK libGL1 7.11.2-1 OK libglapi0 7.11.2-1 OK libgmp3 4.3.2-1 OK libgmpxx4 4.3.2-1 OK libgomp1 4.5.3-3 OK libgpg-error0 1.10-1 OK libICE6 1.0.7-1 OK libiconv2 1.14-2 OK libintl3 0.14.5-1 OK libintl8 0.18.1.1-2 OK libllvm3.0 3.0-1 OK liblzma1 4.999.9beta-11 OK liblzma5 5.0.2_20110517-1 OK libmpc1 0.8-1 OK libmpfr1 2.4.1-4 OK libmpfr4 3.0.1-1 OK libncurses10 5.7-18 OK libncurses8 5.5-10 OK libncurses9 5.7-16 OK libncursesw10 5.7-18 OK libopenssl098 0.9.8w-1 OK libpcre0 8.21-2 OK libpixman1_0 0.24.4-1 OK libpopt0 1.6.4-4 OK libppl 0.10.2-1 OK libreadline7 6.1.2-3 OK libsigsegv2 2.10-1 OK libSM6 1.2.0-1 OK libsqlite3_0 3.7.3-1 OK libssp0 4.5.3-3 OK libstdc++6 4.5.3-3 OK libstdc++6-devel 4.5.3-3 OK libuuid1 2.21-1 OK libX11-xcb1 1.4.4-1 OK libX11_6 1.4.4-1 OK libXau6 1.0.6-1 OK libXaw7 1.0.9-1 OK libxcb-glx0 1.7-2 OK libxcb1 1.7-2 OK libXdmcp6 1.1.0-1 OK libXext6 1.3.0-1 OK libXft2 2.2.0-1 OK libxkbfile1 1.0.7-1 OK libXmu6 1.1.0-1 OK libXmuu1 1.1.0-1 OK libXpm4 3.5.9-1 OK libXrender1 0.9.6-1 OK libXt6 1.1.1-1 OK login 1.10-10 OK luit 1.1.0-1 OK make 3.82.90-1 OK man 1.6g-1 OK mingw-runtime 3.20-1 OK mingw-w32api 3.17-2 OK mingw64-i686-binutils 2.22.51-3 OK mingw64-i686-gcc-core 4.5.3-5 OK mingw64-i686-headers 3.0b_svn4913-1 OK mingw64-i686-pthreads 20100619-4 OK mingw64-i686-runtime 3.0b_svn4913-1 OK mintty 1.0.3-1 OK mkfontdir 1.0.6-1 OK mkfontscale 1.0.9-1 OK nano 2.2.5-1 OK perl 5.10.1-5 OK python 2.6.7-1 OK rebase 4.1.0-1 OK rsync 3.0.9-1 OK run 1.1.13-1 OK sed 4.2.1-2 OK setxkbmap 1.2.0-1 OK tar 1.25-1 OK terminfo 5.7_20091114-14 OK terminfo0 5.5_20061104-12 OK texinfo 4.13-4 OK tzcode 2012b-1 OK util-linux 2.21-1 OK w32api 3.17-2 OK which 2.20-2 OK xauth 1.0.6-1 OK xcursor-themes 1.0.3-1 OK xf86-video-dummy 0.3.5-1 OK xf86-video-nested 0.1.0-1 OK xhost 1.0.4-1 OK xkbcomp 1.2.3-1 OK xkeyboard-config 2.5.1-1 OK xmodmap 1.0.5-1 OK xorg-server 1.12.1-1 OK xorg-server-common 1.12.1-1 OK xrdb 1.0.9-1 OK xterm 278-1 OK xz 5.0.2_20110517-1 OK zlib 1.2.5-1 OK zlib-devel 1.2.5-1 OK zlib0 1.2.5-1 OK Use -h to see help about each section
-- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple