warning: "_POSIX_THREAD_CPUTIME" is not defined - Redmine #1980
Archive from user: Patrick Welche
/usr/src/local/gromacs/src/gromacs/timing/walltime\_accounting.cpp:232:27:
warning: “\_POSIX\_THREAD\_CPUTIME” is not defined \[-Wundef\]
\#if HAVE\_CLOCK\_GETTIME && \_POSIX\_THREAD\_CPUTIME >= 0
as this is sometimes defined in pthread.h. However, why is that test
there?
Is something like the attached what is intended?
Or up the stakes to -std=c++11 and assume std::chrono implemented
everywhere? (Not sure it does per-thread timing)
*(from redmine: issue id 1980, created on 2016-05-31 by gmxdefault, closed on 2016-07-07)*
* Changesets:
* Revision 6d850e72454a0ae16a5560c5b07f366f2af6fbd4 by Mark Abraham on 2016-07-01T18:57:33Z:
```
Fix use of _POSIX_THREAD*
This fixes a couple of aspects of behaviour. Formerly, if
_POSIX_THREADS was defined and equal to zero, we might have used
clock_gettime and got some kind of error (compiling/linking/runtime
behaviour). Similarly, if _POSIX_THREADS was undefined, C99 defines
such preprocessor symbols as zero, so we again used clock_gettime
inappropriately.
Now we avoid compiler warnings if the symbol is undefined, and when it
is defined we use clock_gettime only when _POSIX_THREADS_ has a value
such that it is supposed to work.
Adapted this an the BG/Q fix also for
gmx_gettime_per_thread(). Expanded the documentation of why the code
is the way it is. Noted future TODO to consider std::chrono.
Fixes #1980
Change-Id: Ib3e40903e2344354074c5328d40e8467f264b51f
```
* Uploads:
* [clock.diff](/uploads/5a8adf4e3a019b2d6d00aa83975ab1bf/clock.diff)
issue