After much trial and tribulation, Harald came up with a fix for the bug
which has been plaguing Cygwin for a couple of weeks now.
It's only a couple of lines. I've tested it exhaustively, and it seems to
cure the problem of Cygwin failing to start.
// increment the time stamp by the number of microseconds (usec)
SGTimeStamp operator + (const SGTimeStamp& t, const long& m) {
-#if defined( WIN32 )
+#if defined( WIN32 ) && !defined(__CYGWIN__)
return SGTimeStamp( 0, t.usec + m );
#else
return SGTimeStamp( t.seconds + ( t.usec + m ) / 1000000,
// difference between time stamps in microseconds (usec)
long operator - (const SGTimeStamp& a, const SGTimeStamp& b)
{
-#if defined( WIN32 )
+#if defined( WIN32 ) && !defined(__CYGWIN__)
return a.usec - b.usec;
#else
return 1000000 * (a.seconds - b.seconds) + (a.usec - b.usec);