* modules/gethrxtime: New file. * modules/xnanosleep (Files): Add m4/xnanosleep.m4. (Depends-on): Add gethrxtime. (configure.ac): Add gl_XNANOSLEEP. (Makefile.am): Remove lib_SOURCES line. * lib/gethrxtime.h, lib/gethrxtime.c, lib/xtime.h: New files. * lib/timespec.h (gettime): Return void, since it always succeeds now. All uses changed. * lib/gettime.c (gettime) Likewise. [HAVE_NANOTIME]: Prefer nanotime. Assume gettimeofday succeeds, as POSIX requires. Assime time () succeeds, since other code already does. * lib/xnanosleep.c: Include xtime.h and gethrxtime.h, not xalloc.h. (timespec_subtract): Remove. (NANOSLEEP_BUG_WORKAROUND): New constant. (xnanosleep): Use gethrxtime rather than gettime; this simplifies things considerably. Use it only on GNU/Linux hosts, since the workaround shouldn't be needed elsewhere. * m4/gethrxtime.m4, m4/xnanosleep.m4: New files. * m4/gettime.m4 (gl_GETTIME): Check for nanotime.