# has it as an inline for chsize)
# ioctl - not in mingw.
# gmtime_r - recent posix, not on old systems
-# pipe - not in mingw
-# _pipe - specific to mingw, taking 3 args
# readdir_r - recent posix, not on old systems
# readdir64_r - not available on HP-UX 11.11
# stat64 - SuS largefile stuff, not on old systems
#
AC_CHECK_FUNCS([DINFINITY DQNAN cexp chsize clog clog10 ctermid \
fesetround ftime ftruncate fchown fchmod getcwd geteuid getsid \
- gettimeofday gmtime_r ioctl lstat mkdir mknod nice pipe _pipe \
- readdir_r readdir64_r readlink rename rmdir select setegid seteuid \
- setlocale setpgid setsid sigaction siginterrupt stat64 strftime \
- strptime symlink sync sysconf tcgetpgrp tcsetpgrp times uname waitpid \
+ gettimeofday gmtime_r ioctl lstat mkdir mknod nice \
+ readdir_r readdir64_r readlink rename rmdir setegid seteuid \
+ setlocale setpgid setsid sigaction siginterrupt stat64 \
+ strptime symlink sync sysconf tcgetpgrp tcsetpgrp uname waitpid \
strdup system usleep atexit on_exit chown link fcntl ttyname getpwent \
getgrent kill getppid getpgrp fork setitimer getitimer strchr strcmp \
index bcopy memcpy rindex truncate unsetenv isblank _NSGetEnviron \
getsockopt and setsockopt system calls.])
fi
+
+dnl Check for `struct timespec', for the sake of `gen-scmconfig'. When
+dnl building Guile, we always have it, thanks to Gnulib; but scmconfig.h
+dnl must tell whether the system has it.
+dnl
+dnl On MinGW, struct timespec is in <pthread.h>.
+AC_MSG_CHECKING(for struct timespec)
+AC_CACHE_VAL(scm_cv_struct_timespec,
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <time.h>
+#if HAVE_PTHREAD_H
+#include <pthread.h>
+#endif]], [[struct timespec t; t.tv_nsec = 100]])],
+ [scm_cv_struct_timespec="yes"],
+ [scm_cv_struct_timespec="no"]))
+AC_MSG_RESULT($scm_cv_struct_timespec)
+if test $scm_cv_struct_timespec = yes; then
+ dnl Don't call it `HAVE_STRUCT_TIMESPEC' because pthread-win32's
+ dnl <pthread.h> checks whether that macro is defined.
+ AC_DEFINE([HAVE_SYSTEM_STRUCT_TIMESPEC], 1,
+ [Define this if your system defines struct timespec via either <time.h> or <pthread.h>.])
+fi
+
#--------------------------------------------------------------------
#
# Flags for thread support