Darwin does not have the data element we manipulate with futimens()
#define HAVE_SRANDOMDEV
#define HAVE_ARC4RANDOM
#define EXIM_HAVE_OPENAT
#define HAVE_SRANDOMDEV
#define HAVE_ARC4RANDOM
#define EXIM_HAVE_OPENAT
+#define EXIM_HAVE_FUTIMENS
/* Applications should not call arc4random_stir() explicitly after
* FreeBSD r227520 (approximately 1000002).
/* Applications should not call arc4random_stir() explicitly after
* FreeBSD r227520 (approximately 1000002).
#if _POSIX_C_SOURCE >= 200809L || _ATFILE_SOURCE
# define EXIM_HAVE_OPENAT
#if _POSIX_C_SOURCE >= 200809L || _ATFILE_SOURCE
# define EXIM_HAVE_OPENAT
+# define EXIM_HAVE_FUTIMENS
#endif
/* TCP Fast Open support */
#endif
/* TCP Fast Open support */
#define HAVE_SYS_MOUNT_H
#define SIOCGIFCONF_GIVES_ADDR
#define EXIM_HAVE_OPENAT
#define HAVE_SYS_MOUNT_H
#define SIOCGIFCONF_GIVES_ADDR
#define EXIM_HAVE_OPENAT
+#define EXIM_HAVE_FUTIMENS
#define HAVE_ARC4RANDOM
/* In May 2014, OpenBSD 5.5 was released which cleaned up the arc4random_* API
which removed the arc4random_stir() function. Set NOT_HAVE_ARC4RANDOM_STIR
#define HAVE_ARC4RANDOM
/* In May 2014, OpenBSD 5.5 was released which cleaned up the arc4random_* API
which removed the arc4random_stir() function. Set NOT_HAVE_ARC4RANDOM_STIR
#define HAVE_GETIPNODEBYNAME 1
#define HAVE_GETIPNODEBYADDR 1
#define EXIM_HAVE_OPENAT
#define HAVE_GETIPNODEBYNAME 1
#define HAVE_GETIPNODEBYADDR 1
#define EXIM_HAVE_OPENAT
+#define EXIM_HAVE_FUTIMENS
#define HAVE_KSTAT
#define LOAD_AVG_KSTAT "system_misc"
#define HAVE_KSTAT
#define LOAD_AVG_KSTAT "system_misc"
if (restore_times)
{
struct stat strestore;
if (restore_times)
{
struct stat strestore;
+#ifdef EXIM_HAVE_FUTIMENS
int fd = open(filename, O_RDWR); /* use fd for both get & restore */
struct timespec tt[2];
int fd = open(filename, O_RDWR); /* use fd for both get & restore */
struct timespec tt[2];