Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <0D520CD6A16F6040938C64B43E99680663546B@ca-canpost1.legato.com> From: Jonathan Wackley To: "'cygwin AT cygwin DOT com'" Cc: "'jonw AT mountaincable DOT net'" Subject: Possible race condition bug in pthread_cond_broadcast/pthread_con d_wait? Date: Mon, 9 Jun 2003 13:11:43 -0400 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_000_01C32EA6.C7901BE8" Note-from-DJ: This may be spam ------_=_NextPart_000_01C32EA6.C7901BE8 Content-Type: text/plain; charset="iso-8859-1" Hi, Created small test program showing possible implementation options for barriers. This test program works on a number of platforms and machines. I found that it does not work as expected under cygwin, while it does work using mingw. This implementation is improved upon in later versions and is intended to show how development could progress through iterations. Please not that cygcheck.out is attached to this e-mail. Here is the source code; #include #include #include #include #include #include #include #define NUMBER_OF_THREADS (3) #define COUNTER_MAX (10) pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t barrier_condition = PTHREAD_COND_INITIALIZER; sem_t barrier_semaphore; void * pthread_func( void * startup_argument ) { static int thread_counter = 0; int counter = 0; long thread_id = ( long ) startup_argument; long dummy = 0; pthread_mutex_lock( &mutex ); printf( "Started (%d)\n", thread_id ); if ( ++thread_counter == NUMBER_OF_THREADS ) { printf( "rendezvous\n" ); sem_post( &barrier_semaphore ); } pthread_cond_wait( &barrier_condition, &mutex ); pthread_mutex_unlock( &mutex ); for ( counter = 0; counter < COUNTER_MAX; counter++ ) { dummy = counter * counter; pthread_mutex_lock( &mutex ); printf( "Got here (%ld): %d %ld\n", thread_id, counter, dummy ); pthread_mutex_unlock( &mutex ); } pthread_mutex_lock( &mutex ); if ( --thread_counter == 0 ) { printf( "Posting for last thread\n" ); sem_post( &barrier_semaphore ); } pthread_mutex_unlock( &mutex ); return 0; } int main( int argc, char * argv[ ] ) { int status = 0; long counter = 0; void * join_status = 0; pthread_attr_t thread_attributes; pthread_t thread_id[ NUMBER_OF_THREADS ]; status = sem_init( &barrier_semaphore, 0, 0 ); if ( status != 0 ) { printf( "Semaphore failed: %s\n", strerror( status ) ); exit( 0 ); } pthread_attr_init( &thread_attributes ); pthread_attr_setscope( &thread_attributes, PTHREAD_SCOPE_SYSTEM ); for ( counter = 0; counter < NUMBER_OF_THREADS; counter++ ) { status = pthread_create( thread_id + counter, &thread_attributes, pthread_func, ( void * ) counter ); if ( status != 0 ) { printf( "Thread create failed: %s\n", strerror( status ) ); exit( 0 ); } pthread_mutex_lock( &mutex ); printf( "Thread creation status(%d): %d\n", counter, status ); pthread_mutex_unlock( &mutex ); } sem_wait( &barrier_semaphore ); pthread_mutex_lock( &mutex ); printf( "About to broadcast to threads\n" ); pthread_cond_broadcast( &barrier_condition ); pthread_mutex_unlock( &mutex ); sem_wait( &barrier_semaphore ); for ( counter = 0; counter < NUMBER_OF_THREADS; counter++ ) { status = pthread_join( thread_id[ counter ], &join_status ); pthread_mutex_lock( &mutex ); printf( "Thread join status(%d): %d\n", counter, status ); pthread_mutex_unlock( &mutex ); } return 0; } cygwin compile command line: gcc -D_POSIX_C_SOURCE=199506L -o pthread_test pthread_test.c -lpthread mingw compile command line: $ gcc -mno-cygwin -D_POSIX_C_SOURCE=199506L -o pthread_test pthread_test.c -lpthreadGC mingw output; $ ./pthread_test Thread creation status(0): 0 Thread creation status(1): 0 Thread creation status(2): 0 Started (0) Started (1) Started (2) rendezvous About to broadcast to threads Got here (0): 0 0 Got here (1): 0 0 Got here (0): 1 1 Got here (1): 1 1 Got here (0): 2 4 Got here (1): 2 4 Got here (0): 3 9 Got here (1): 3 9 Got here (0): 4 16 Got here (1): 4 16 Got here (0): 5 25 Got here (1): 5 25 Got here (0): 6 36 Got here (1): 6 36 Got here (0): 7 49 Got here (1): 7 49 Got here (0): 8 64 Got here (1): 8 64 Got here (0): 9 81 Got here (1): 9 81 Got here (2): 0 0 Got here (2): 1 1 Got here (2): 2 4 Got here (2): 3 9 Got here (2): 4 16 Got here (2): 5 25 Got here (2): 6 36 Got here (2): 7 49 Got here (2): 8 64 Got here (2): 9 81 Posting for last thread Thread join status(0): 0 Thread join status(1): 0 Thread join status(2): 0 Output from cygwin; $ ./pthread_test Thread creation status(0): 0 Thread creation status(1): 0 Thread creation status(2): 0 Started (0) Started (1) Started (2) rendezvous About to broadcast to threads Got here (0): 0 0 Got here (0): 1 1 Got here (0): 2 4 Got here (0): 3 9 Got here (0): 4 16 Got here (0): 5 25 Got here (0): 6 36 Got here (0): 7 49 Got here (0): 8 64 Got here (0): 9 81 Got here (1): 0 0 Got here (1): 1 1 Got here (1): 2 4 Got here (1): 3 9 Got here (1): 4 16 Got here (1): 5 25 Got here (1): 6 36 Got here (1): 7 49 Got here (1): 8 64 Got here (1): 9 81 Where it hangs, last thread does not start. I modified the program to sleep for a second and re-broadcast on the condition variable where it then works. Here is the modification; sem_wait( &barrier_semaphore ); pthread_mutex_lock( &mutex ); printf( "About to broadcast to threads\n" ); pthread_cond_broadcast( &barrier_condition ); pthread_mutex_unlock( &mutex ); sleep( 1 ); pthread_mutex_lock( &mutex ); printf( "About to broadcast to threads (again)\n" ); pthread_cond_broadcast( &barrier_condition ); pthread_mutex_unlock( &mutex ); sem_wait( &barrier_semaphore ); And here is the output; $ ./pthread_test Thread creation status(0): 0 Thread creation status(1): 0 Thread creation status(2): 0 Started (0) Started (1) Started (2) rendezvous About to broadcast to threads Got here (0): 0 0 Got here (0): 1 1 Got here (0): 2 4 Got here (0): 3 9 Got here (0): 4 16 Got here (0): 5 25 Got here (0): 6 36 Got here (0): 7 49 Got here (0): 8 64 Got here (0): 9 81 Got here (1): 0 0 Got here (1): 1 1 Got here (1): 2 4 Got here (1): 3 9 Got here (1): 4 16 Got here (1): 5 25 Got here (1): 6 36 Got here (1): 7 49 Got here (1): 8 64 Got here (1): 9 81 About to broadcast to threads (again) Got here (2): 0 0 Got here (2): 1 1 Got here (2): 2 4 Got here (2): 3 9 Got here (2): 4 16 Got here (2): 5 25 Got here (2): 6 36 Got here (2): 7 49 Got here (2): 8 64 Got here (2): 9 81 Posting for last thread Thread join status(0): 0 Thread join status(1): 0 Thread join status(2): 0 As I mentioned earlier there are much better ways to implement a barrier. From what I can see this code should work, though it may not be elegant. As a demonstration it works on AIX, HP, Tru64, Win32 (pthread-win32), mingw (with pthread-win32) Linux and Mac OS/X. It is somewhat surprising that it does not work as expected on cygwin. It may be a silly oversight on my side, I just can't find what it may be. If it matters, I am not on the mailing list so please send comments/directions directly to me. Thanks, jonw <> ------_=_NextPart_000_01C32EA6.C7901BE8 Content-Type: application/octet-stream; name="cygcheck.out" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="cygcheck.out" Cygwin Win95/NT Configuration Diagnostics Current System Time: Mon Jun 09 12:49:04 2003 Windows NT Ver 4.0 Build 1381 Service Pack 6 Path: E:\cygwin\usr\local\bin E:\cygwin\bin E:\cygwin\bin s:\usr\src\nw_6_1\tools\nt86 c:\Program Files\Microsoft Visual Studio\VC98\Bin c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\IDE c:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin e:\SFU\common\ c:\SFU\Perl\bin\ e:\SFU\Perl\bin\ c:\WINNT\system32 c:\WINNT e:\Utilities\Mks c:\Program Files\nsr\bin e:\cvs c:\WINNT\System32\WBEM s:\ACE_TAO\ACE_wrappers\build-NT\ace c:\Program Files\Microsoft Visual Studio\VC98\Bin e:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT e:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin e:\Program Files\Microsoft Visual Studio\Common\Tools e:\Program Files\Microsoft Visual Studio\VC98\bin e:\Program Files\Platform SDK\BIN\WINNT e:\Program Files\Platform SDK\BIN E:\cygwin\bin\id.exe output (nontsec) UID: 1001(jwackley) GID: 513(None) 513(None) E:\cygwin\bin\id.exe output (ntsec) UID: 1001(jwackley) GID: 513(None) 544(Administrators) 545(Users) SysDir: C:\WINNT\System32 WinDir: C:\WINNT HOME =3D `f:\jwackley' LD_LIBRARY_PATH =3D `\usr\lib:\usr\X11R5\lib' MAKE_MODE =3D `unix' PWD =3D = `/cygdrive/s/pthreads-win32/pthreads-snap-2003-05-10/tests/home_test' USER =3D `jwackley' !EXITCODE =3D `00000000' ACE_ROOT =3D `s:\ACE_TAO\ACE_wrappers\build-NT' BASEMAKE =3D `E:\Program Files\Platform SDK\INCLUDE\BKOFFICE.MAK' BKOFFICE =3D `E:\Program Files\Platform SDK\' BUILD_NSR_CATALOG =3D `off' COMPUTERNAME =3D `NAGANO' COMSPEC =3D `C:\WINNT\system32\cmd.exe' CPU =3D `i386' CVSREAD =3D `1' CVSROOT =3D `:pserver:jwackley AT cvsserver DOT legato DOT com:/usr/src/cvs_root' DISPLAY =3D `NAGANO:0.0' DXSDKROOT =3D `E:\Program Files\Platform SDK' EDITOR =3D `vi' HOMEDRIVE =3D `C:' HOMEPATH =3D `\' INCLUDE =3D `E:\Program Files\Microsoft Visual = Studio\VC98\atl\include;E:\Program Files\Microsoft Visual = Studio\VC98\mfc\include;E:\Program Files\Microsoft Visual = Studio\VC98\include;E:\Program Files\Platform SDK\INCLUDE;D:\Program = Files\Microsoft Visual Studio\VC98\atl\include;D:\Program = Files\Microsoft Visual Studio\VC98\mfc\include;D:\Program = Files\Microsoft Visual Studio\VC98\include' INETSDK =3D `E:\Program Files\Platform SDK' INTERIX_COMPILERDIR =3D `/dev/fs/C/Program Files/Microsoft Visual = Studio' INTERIX_ROOT =3D `/dev/fs/E/SFU/' INTERIX_ROOT_WIN =3D `E:\SFU\' LIB =3D `E:\Program Files\Microsoft Visual = Studio\VC98\mfc\lib;E:\Program Files\Microsoft Visual = Studio\VC98\lib;E:\Program Files\Platform SDK\LIB;D:\Program = Files\Microsoft Visual Studio\VC98\mfc\lib;D:\Program Files\Microsoft = Visual Studio\VC98\lib' LOGONSERVER =3D `\\BURLOAK' MAKESTARTUP =3D `S:\usr\src\nw_6_1\startup.mk' MANPATH =3D `:/usr/ssl/man' MSDDK_ROOT =3D `E:\ntddk' MSDEVDIR =3D `C:\progra~1\micros~1\Common\MSDev98' MSSDK =3D `E:\Program Files\Platform SDK' MSSDK_ROOT =3D `E:\progra~1\platfo~1' MSTOOLS =3D `E:\Program Files\Platform SDK' MSVC_ROOT =3D `C:\progra~1\micros~1\vc98' NUMBER_OF_PROCESSORS =3D `1' NWARCH =3D `nt86' NWTOP =3D `S:\usr\src\nw_6_1' OLDPWD =3D `/cygdrive/s' OPENNT_ROOT =3D `/dev/fs/E/SFU/' OS2LIBPATH =3D `C:\WINNT\system32\os2\dll;' OS =3D `Windows_NT' PATHEXT =3D `.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH' PROCESSOR_ARCHITECTURE =3D `x86' PROCESSOR_IDENTIFIER =3D `x86 Family 6 Model 5 Stepping 1, = GenuineIntel' PROCESSOR_LEVEL =3D `6' PROCESSOR_REVISION =3D `0501' PROMPT =3D `$P$G' PS1 =3D `\[\033]0;\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $ ' SFUDIR =3D `E:\SFU\' SFUDIR_INTERIX =3D `/dev/fs/E/SFU/' SHLVL =3D `1' SYSTEMDRIVE =3D `C:' SYSTEMROOT =3D `C:\WINNT' TEMP =3D `c:\TEMP' TERM =3D `cygwin' TMP =3D `c:\TEMP' TPKGS =3D `O:\tpkgs' USERDOMAIN =3D `LEGATO-MV' USERNAME =3D `jwackley' USERPROFILE =3D `C:\WINNT\Profiles\jwackley.001' WINDIR =3D `C:\WINNT' XAPPLRESDIR =3D `/usr/X11R5/lib/X11/app-defaults' XCMSDB =3D `/usr/X11R5/lib/X11/Xcms.txt' XKEYSYMDB =3D `/usr/X11R5/lib/X11/XKeysymDB' XNLSPATH =3D `/usr/X11R5/lib/X11/nls' _ =3D `/usr/bin/cygcheck' HKEY_CURRENT_USER\Software\Cygnus Solutions HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2 (default) =3D `/cygdrive' cygdrive flags =3D 0x00000022 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\mounts v2\/d_dr (default) =3D `\cygdrive\d' flags =3D 0x00000000 HKEY_CURRENT_USER\Software\Cygnus Solutions\Cygwin\Program Options HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0 HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\00 (default) =3D `\\.\tape1:' unix =3D `/dev/st1' fbinary =3D 0x00000000 fsilent =3D 0x00000001 HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\01 (default) =3D `\\.\tape0:' unix =3D `/dev/st0' fbinary =3D 0x00000000 fsilent =3D 0x00000001 HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\02 (default) =3D `\\.\b:' unix =3D `/dev/fd1' fbinary =3D 0x00000000 fsilent =3D 0x00000001 HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\03 (default) =3D `\\.\a:' unix =3D `/dev/fd0' fbinary =3D 0x00000000 fsilent =3D 0x00000001 HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\04 (default) =3D `C:' unix =3D `/' fbinary =3D 0x00000000 fsilent =3D 0x00000000 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2 (default) =3D `/cygdrive' cygdrive flags =3D 0x00000022 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/ (default) =3D `E:/cygwin' flags =3D 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/bin (default) =3D `E:/cygwin/bin' flags =3D 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/usr/lib (default) =3D `E:/cygwin/lib' flags =3D 0x0000000a HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\Program Options HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\00 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\01 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\02 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\03 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\04 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\05 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\06 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\07 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\08 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\09 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0A HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0B HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0C HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0D HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0E HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\0F HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\10 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\11 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\12 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\13 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\14 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\15 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\16 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\17 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\18 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\19 HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\1A HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\1B HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\1C HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL = setup\b15.0\mounts\1D a: fd N/A N/A =20 c: hd NTFS 2047Mb 62% CP CS UN PA FC System d: hd NTFS 8056Mb 24% CP CS UN PA FC Space e: hd NTFS 2996Mb 63% CP CS UN PA FC Programs f: hd NTFS 4494Mb 1% CP CS UN PA FC Work g: cd N/A N/A =20 o: net NTFS 45361Mb 73% PA nt86_tools s: net NFS 16217Mb 83% CP =20 \cygdrive\d /d_dr user textmode . /cygdrive user binmode,cygdrive E:/cygwin / system binmode E:/cygwin/bin /usr/bin system binmode E:/cygwin/lib /usr/lib system binmode . /cygdrive system binmode,cygdrive Found: E:\cygwin\bin\awk.exe Found: E:\cygwin\bin\bash.exe Found: E:\cygwin\bin\cat.exe Found: e:\SFU\common\cat.exe Warning: E:\cygwin\bin\cat.exe hides e:\SFU\common\cat.exe Found: e:\Utilities\Mks\cat.exe Warning: E:\cygwin\bin\cat.exe hides e:\Utilities\Mks\cat.exe Found: E:\cygwin\bin\cp.exe Found: e:\SFU\common\cp.exe Warning: E:\cygwin\bin\cp.exe hides e:\SFU\common\cp.exe Found: e:\Utilities\Mks\cp.exe Warning: E:\cygwin\bin\cp.exe hides e:\Utilities\Mks\cp.exe Found: E:\cygwin\bin\cpp.exe Found: E:\cygwin\bin\find.exe Found: e:\SFU\common\find.exe Warning: E:\cygwin\bin\find.exe hides e:\SFU\common\find.exe Found: e:\Utilities\Mks\find.exe Warning: E:\cygwin\bin\find.exe hides e:\Utilities\Mks\find.exe Found: E:\cygwin\bin\gcc.exe Found: E:\cygwin\bin\gdb.exe Found: E:\cygwin\bin\grep.exe Found: e:\SFU\common\grep.exe Warning: E:\cygwin\bin\grep.exe hides e:\SFU\common\grep.exe Found: e:\Utilities\Mks\grep.exe Warning: E:\cygwin\bin\grep.exe hides e:\Utilities\Mks\grep.exe Found: E:\cygwin\bin\ld.exe Found: E:\cygwin\bin\ls.exe Found: e:\SFU\common\ls.exe Warning: E:\cygwin\bin\ls.exe hides e:\SFU\common\ls.exe Found: e:\Utilities\Mks\ls.exe Warning: E:\cygwin\bin\ls.exe hides e:\Utilities\Mks\ls.exe Found: E:\cygwin\bin\make.exe Found: E:\cygwin\bin\mv.exe Found: e:\SFU\common\mv.exe Warning: E:\cygwin\bin\mv.exe hides e:\SFU\common\mv.exe Found: e:\Utilities\Mks\mv.exe Warning: E:\cygwin\bin\mv.exe hides e:\Utilities\Mks\mv.exe Found: E:\cygwin\bin\rm.exe Found: e:\SFU\common\rm.exe Warning: E:\cygwin\bin\rm.exe hides e:\SFU\common\rm.exe Found: e:\Utilities\Mks\rm.exe Warning: E:\cygwin\bin\rm.exe hides e:\Utilities\Mks\rm.exe Found: e:\Program Files\Platform SDK\BIN\rm.exe Warning: E:\cygwin\bin\rm.exe hides e:\Program Files\Platform = SDK\BIN\rm.exe Found: E:\cygwin\bin\sed.exe Found: e:\SFU\common\sed.exe Warning: E:\cygwin\bin\sed.exe hides e:\SFU\common\sed.exe Found: e:\Utilities\Mks\sed.exe Warning: E:\cygwin\bin\sed.exe hides e:\Utilities\Mks\sed.exe Found: E:\cygwin\bin\sh.exe Found: e:\Utilities\Mks\sh.exe Warning: E:\cygwin\bin\sh.exe hides e:\Utilities\Mks\sh.exe Found: E:\cygwin\bin\tar.exe Found: e:\Utilities\Mks\tar.exe Warning: E:\cygwin\bin\tar.exe hides e:\Utilities\Mks\tar.exe 58k 2002/05/07 E:\cygwin\bin\cygbz2-1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygbz2-1.dll" v0.0 ts=3D2002/5/7 2:33 848k 2003/04/11 E:\cygwin\bin\cygcrypto-0.9.7.dll - os=3D4.0 = img=3D1.0 sys=3D4.0 "cygcrypto-0.9.7.dll" v0.0 ts=3D2003/4/11 6:33 645k 2003/04/11 E:\cygwin\bin\cygcrypto.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygcrypto.dll" v0.0 ts=3D2003/4/11 6:37 380k 2002/07/24 E:\cygwin\bin\cygdb-3.1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygdb-3.1.dll" v0.0 ts=3D2002/7/24 12:24 487k 2002/07/24 E:\cygwin\bin\cygdb_cxx-3.1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygdb_cxx-3.1.dll" v0.0 ts=3D2002/7/24 12:25 45k 2001/04/25 E:\cygwin\bin\cygform5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygform5.dll" v0.0 ts=3D2001/4/25 1:28 35k 2002/01/09 E:\cygwin\bin\cygform6.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygform6.dll" v0.0 ts=3D2002/1/9 1:03 76k 2003/03/09 E:\cygwin\bin\cygform7.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygform7.dll" v0.0 ts=3D2003/3/9 15:51 28k 2003/03/22 E:\cygwin\bin\cyggdbm-3.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cyggdbm-3.dll" v0.0 ts=3D2003/3/22 17:19 19k 2003/03/22 E:\cygwin\bin\cyggdbm.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cyggdbm.dll" v0.0 ts=3D2002/2/19 22:05 15k 2003/03/22 E:\cygwin\bin\cyggdbm_compat-3.dll - os=3D4.0 = img=3D1.0 sys=3D4.0 "cyggdbm_compat-3.dll" v0.0 ts=3D2003/3/22 17:22 17k 2001/06/28 E:\cygwin\bin\cyghistory4.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cyghistory4.dll" v0.0 ts=3D2001/1/6 23:34 20k 2002/10/10 E:\cygwin\bin\cyghistory5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cyghistory5.dll" v0.0 ts=3D2002/10/10 13:28 929k 2002/06/24 E:\cygwin\bin\cygiconv-2.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygiconv-2.dll" v0.0 ts=3D2002/6/24 14:24 22k 2001/12/13 E:\cygwin\bin\cygintl-1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygintl-1.dll" v0.0 ts=3D2001/12/13 4:28 28k 2002/09/20 E:\cygwin\bin\cygintl-2.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygintl-2.dll" v0.0 ts=3D2002/9/19 23:13 21k 2001/06/20 E:\cygwin\bin\cygintl.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygintl.dll" v0.0 ts=3D2001/6/20 13:09 47k 2003/03/09 E:\cygwin\bin\cygjbig1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygjbig1.dll" v0.0 ts=3D2003/3/9 16:30 119k 2002/02/09 E:\cygwin\bin\cygjpeg6b.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygjpeg6b.dll" v0.0 ts=3D2002/2/9 0:19 26k 2001/04/25 E:\cygwin\bin\cygmenu5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygmenu5.dll" v0.0 ts=3D2001/4/25 1:27 20k 2002/01/09 E:\cygwin\bin\cygmenu6.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygmenu6.dll" v0.0 ts=3D2002/1/9 1:03 48k 2003/03/09 E:\cygwin\bin\cygmenu7.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygmenu7.dll" v0.0 ts=3D2003/3/9 15:51 156k 2001/04/25 E:\cygwin\bin\cygncurses++5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygncurses++5.dll" v0.0 ts=3D2001/4/25 1:29 175k 2002/01/09 E:\cygwin\bin\cygncurses++6.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygncurses++6.dll" v0.0 ts=3D2002/1/9 1:03 226k 2001/04/25 E:\cygwin\bin\cygncurses5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygncurses5.dll" v0.0 ts=3D2001/4/25 1:17 202k 2002/01/09 E:\cygwin\bin\cygncurses6.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygncurses6.dll" v0.0 ts=3D2002/1/9 1:03 284k 2003/03/09 E:\cygwin\bin\cygncurses7.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygncurses7.dll" v0.0 ts=3D2003/3/9 15:50 15k 2001/04/25 E:\cygwin\bin\cygpanel5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpanel5.dll" v0.0 ts=3D2001/4/25 1:27 12k 2002/01/09 E:\cygwin\bin\cygpanel6.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpanel6.dll" v0.0 ts=3D2002/1/9 1:03 31k 2003/03/09 E:\cygwin\bin\cygpanel7.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpanel7.dll" v0.0 ts=3D2003/3/9 15:50 63k 2003/04/11 E:\cygwin\bin\cygpcre.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpcre.dll" v0.0 ts=3D2003/4/11 4:31 61k 2003/04/11 E:\cygwin\bin\cygpcreposix.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpcreposix.dll" v0.0 ts=3D2003/4/11 4:31 1069k 2003/06/02 E:\cygwin\bin\cygperl5_8_0.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygperl5_8_0.dll" v0.0 ts=3D2003/6/2 8:01 173k 2003/02/23 E:\cygwin\bin\cygpng12.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpng12.dll" v0.0 ts=3D2003/2/23 17:02 22k 2002/06/09 E:\cygwin\bin\cygpopt-0.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygpopt-0.dll" v0.0 ts=3D2002/6/9 1:45 108k 2001/06/28 E:\cygwin\bin\cygreadline4.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygreadline4.dll" v0.0 ts=3D2001/1/6 23:34 127k 2002/10/10 E:\cygwin\bin\cygreadline5.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygreadline5.dll" v0.0 ts=3D2002/10/10 13:28 176k 2003/04/11 E:\cygwin\bin\cygssl-0.9.7.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygssl-0.9.7.dll" v0.0 ts=3D2003/4/11 6:33 165k 2003/04/11 E:\cygwin\bin\cygssl.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygssl.dll" v0.0 ts=3D2003/4/11 6:37 281k 2003/02/24 E:\cygwin\bin\cygtiff3.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygtiff3.dll" v0.0 ts=3D2003/2/23 23:58 41k 2002/01/20 E:\cygwin\bin\cygXpm-noX4.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygXpm-noX4.dll" v0.0 ts=3D2002/1/20 13:49 46k 2002/01/20 E:\cygwin\bin\cygXpm-X4.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygXpm-X4.dll" v0.0 ts=3D2002/1/20 13:50 50k 2002/03/12 E:\cygwin\bin\cygz.dll - os=3D4.0 img=3D1.0 sys=3D4.0 "cygz.dll" v0.0 ts=3D2002/3/11 23:38 948k 2003/03/18 E:\cygwin\bin\cygwin1.dll - os=3D4.0 img=3D1.0 = sys=3D4.0 "cygwin1.dll" v0.0 ts=3D2003/3/18 9:20 Cygwin DLL version info: DLL version: 1.3.22 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 78 Shared data: 3 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:=20 Build date: Tue Mar 18 09:20:11 EST 2003 CVS tag: dontuse-21 Shared id: cygwin1S3 Cygwin Package Information Last downloaded files to: D:\cygwin_install Last downloaded files from: http://mirrors.xmission.com/cygwin Package Version _update-info-dir 00167-1 ash 20020731-1 autoconf 2.54-1 autoconf-devel 2.57-1 autoconf-stable 2.13-4 automake 1.7.1-1 automake-devel 1.7.3-1 automake-stable 1.4p5-5 base-files 1.3-1 base-passwd 1.1-1 bash 2.05b-9 binutils 20030307-1 bison 20030307-1 byacc 1.9-1 bzip2 1.0.2-2 clear 1.0-1 cpio 2.5-1 cron 3.0.1-9 crypt 1.0-1 ctags 5.5-3 cvs 1.11.5-1 cygrunsrv 0.96-1 cygutils 1.1.3-1 cygwin 1.3.22-1 cygwin-doc 1.3-4 dejagnu 20021217-2 diff 1.0-1 diffutils 2.8.1-1 expect 20030128-1 file 4.02-1 fileutils 4.1-1 findutils 4.1.7-4 flex 2.5.4-2 gawk 3.1.2-2 gcc 3.2-3 gcc-mingw 20020817-5 gdb 20030303-1 gdbm 1.8.3-1 gettext 0.11.5-1 ghostscript 7.05-2 ghostscript-base 7.05-2 gperf 2.7.2-1 grep 2.5-1 groff 1.18.1-2 gzip 1.3.3-4 inetutils 1.3.2-22 irc 20010101-1 jbigkit 1.4-1 jpeg 6b-7 less 378-1 libbz2_1 1.0.2-2 libdb3.1 3.1.17-2 libgdbm 1.8.0-5 libgdbm-devel 1.8.3-1 libgdbm3 1.8.3-1 libiconv2 1.8-2 libintl 0.10.38-3 libintl1 0.10.40-1 libintl2 0.11.5-1 libncurses-devel 5.3-1 libncurses5 5.2-1 libncurses6 5.2-8 libncurses7 5.3-1 libpng 1.2.5-1 libpng12 1.2.5-1 libpopt0 1.6.4-4 libreadline4 4.1-2 libreadline5 4.3-2 login 1.8-1 lynx 2.8.4-5 m4 1.4-1 make 3.79.1-7 man 1.5j-2 mingw 20010917-1 mingw-runtime 3.0-1 mktemp 1.4-1 mt 2.0.1-1 mutt 1.4-1 ncftp 3.1.4-1 ncurses 5.3-1 newlib-man 20020801 opengl 1.1.0-6 openssh 3.6.1p1-2 openssl 0.9.7b-1 openssl096 0.9.6j-1 patch 2.5.8-3 pcre 4.1-1 perl 5.8.0-3 popt 1.6.4-4 postgresql 7.3.2-2 python 2.2.2-7 readline 4.3-2 regex 4.4 rsync 2.5.6-1 rxvt 2.7.10-3 sed 4.0.7-1 sh-utils 2.0.15-3 squid 2.4.STABLE7-1 ssmtp 2.38.7-3 tar 1.13.25-1 tcltk 20030214-1 tcsh 6.12.00-5 termcap 20020930-1 terminfo 5.3-2 tetex-beta 20001218-1 texinfo 4.2-4 textutils 2.0.21-1 tiff 3.6.0-1 time 1.7-1 unzip 5.50-2 vim 6.2-1 w32api 2.3-1 wget 1.8.2-2 which 1.5-1 xpm-nox 4.2.0-1 zip 2.3-2 zlib 1.1.4-1 Use -h to see help about each section ------_=_NextPart_000_01C32EA6.C7901BE8 Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ ------_=_NextPart_000_01C32EA6.C7901BE8--