Annotation of embedaddon/libiconv/srcm4/stat-time.m4, revision 1.1
1.1 ! misho 1: # Checks for stat-related time functions.
! 2:
! 3: # Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2019 Free Software
! 4: # Foundation, Inc.
! 5:
! 6: # This file is free software; the Free Software Foundation
! 7: # gives unlimited permission to copy and/or distribute it,
! 8: # with or without modifications, as long as this notice is preserved.
! 9:
! 10: dnl From Paul Eggert.
! 11:
! 12: # st_atim.tv_nsec - Linux, Solaris, Cygwin
! 13: # st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE
! 14: # st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE
! 15: # st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
! 16:
! 17: # st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway)
! 18: # st_birthtim - Cygwin 1.7.0+
! 19:
! 20: AC_DEFUN([gl_STAT_TIME],
! 21: [
! 22: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
! 23: AC_CHECK_HEADERS_ONCE([sys/time.h])
! 24:
! 25: AC_CHECK_MEMBERS([struct stat.st_atim.tv_nsec],
! 26: [AC_CACHE_CHECK([whether struct stat.st_atim is of type struct timespec],
! 27: [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec],
! 28: [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
! 29: [[
! 30: #include <sys/types.h>
! 31: #include <sys/stat.h>
! 32: #if HAVE_SYS_TIME_H
! 33: # include <sys/time.h>
! 34: #endif
! 35: #include <time.h>
! 36: struct timespec ts;
! 37: struct stat st;
! 38: ]],
! 39: [[
! 40: st.st_atim = ts;
! 41: ]])],
! 42: [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes],
! 43: [ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no])])
! 44: if test $ac_cv_typeof_struct_stat_st_atim_is_struct_timespec = yes; then
! 45: AC_DEFINE([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [1],
! 46: [Define to 1 if the type of the st_atim member of a struct stat is
! 47: struct timespec.])
! 48: fi],
! 49: [AC_CHECK_MEMBERS([struct stat.st_atimespec.tv_nsec], [],
! 50: [AC_CHECK_MEMBERS([struct stat.st_atimensec], [],
! 51: [AC_CHECK_MEMBERS([struct stat.st_atim.st__tim.tv_nsec], [], [],
! 52: [#include <sys/types.h>
! 53: #include <sys/stat.h>])],
! 54: [#include <sys/types.h>
! 55: #include <sys/stat.h>])],
! 56: [#include <sys/types.h>
! 57: #include <sys/stat.h>])],
! 58: [#include <sys/types.h>
! 59: #include <sys/stat.h>])
! 60: ])
! 61:
! 62: # Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.)
! 63: # and NTFS (Cygwin).
! 64: # There was a time when this field was named st_createtime (21 June
! 65: # 2002 to 16 July 2002) But that window is very small and applied only
! 66: # to development code, so systems still using that configuration are
! 67: # not supported. See revisions 1.10 and 1.11 of FreeBSD's
! 68: # src/sys/ufs/ufs/dinode.h.
! 69: #
! 70: AC_DEFUN([gl_STAT_BIRTHTIME],
! 71: [
! 72: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
! 73: AC_CHECK_HEADERS_ONCE([sys/time.h])
! 74: AC_CHECK_MEMBERS([struct stat.st_birthtimespec.tv_nsec], [],
! 75: [AC_CHECK_MEMBERS([struct stat.st_birthtimensec], [],
! 76: [AC_CHECK_MEMBERS([struct stat.st_birthtim.tv_nsec], [], [],
! 77: [#include <sys/types.h>
! 78: #include <sys/stat.h>])],
! 79: [#include <sys/types.h>
! 80: #include <sys/stat.h>])],
! 81: [#include <sys/types.h>
! 82: #include <sys/stat.h>])
! 83: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>