On Apr 11 22:35, Tobias Burnus wrote: > Corinna Vinschen wrote: > >On Apr 11 21:13, Tobias Burnus wrote: > >>Where is actually the source code of the clock_gettime, which Cygwin > >>uses? I thought that it was newlib. But looking at > >>http://sourceware.org/cgi-bin/cvsweb.cgi/src/newlib/libc/sys/linux/clock_gettime.c?cvsroot=src > >>the code should return -1 for "clock_gettime (CLOCK_MONOTONIC" as > >>CLOCK_MONOTONIC (= 4) is not handled, only CLOCK_REALTIME (= 1, > >>according to src/newlib/libc/include/time.h). > >> > >>However, as both you and Angelo get a zero return value, I must look > >>at the wrong file. > >Yes, for Cygwin it's > >http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/timer.cc?cvsroot=src > > Well, it's "times.cc" not "timer.cc". I think the problem with > Cygwin was a red herring. But there are a bunch of problems: > > > a) Angelo's code to initialize the random seed assumes that > Fortran's "system_clock" and the "clock_gettime(CLOCK_MONOTONIC" it > calls give a result where 0 is the beginning of the epoch (like on > Linux/glibc) or the system start up (as Windows' > GetTickCount/GetTickCount64). However, QueryPerformanceCounter > (probably intrinsically, but at least as used by Cygwin) returns > some time based on the startup time
http://cygwin.com/ml/cygwin/2013-04/msg00191.html > - and as the frequency seems to > be slow such that the result is 0 or (nearly) the same number for > the startup. Thus, the random_seed initialization doesn't work as > expected on Cygwin/Windows. > > b) Newlib is broken. For clock_gettime, CLOCK_MONOTONIC is not > implemented. But both CLOCK_MONOTONIC and even > _POSIX_MONOTONIC_CLOCK (with value 200112L) are defined. No, newlib is right. Look again. In libc/include/time.h CLOCK_MONOTONIC is only defined if _POSIX_MONOTONIC_CLOCK is defined. In libc/include/sys/features.h, _POSIX_MONOTONIC_CLOCK is only defined for RTEMS and Cygwin. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat -- 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