Next: , Up: Structures


5.8.1 Particular Structure Checks

The following macros check for certain structures or structure members.

— Macro: AC_STRUCT_DIRENT_D_INO

Perform all the actions of AC_HEADER_DIRENT (see Particular Headers). Then, if struct dirent contains a d_ino member, define HAVE_STRUCT_DIRENT_D_INO.

HAVE_STRUCT_DIRENT_D_INO indicates only the presence of d_ino, not whether its contents are always reliable. Traditionally, a zero d_ino indicated a deleted directory entry, though current systems hide this detail from the user and never return zero d_ino values. Many current systems report an incorrect d_ino for a directory entry that is a mount point.

— Macro: AC_STRUCT_DIRENT_D_TYPE

Perform all the actions of AC_HEADER_DIRENT (see Particular Headers). Then, if struct dirent contains a d_type member, define HAVE_STRUCT_DIRENT_D_TYPE.

— Macro: AC_STRUCT_ST_BLKSIZE

If struct stat contains an st_blksize member, define HAVE_STRUCT_STAT_ST_BLKSIZE. The former name, HAVE_ST_BLKSIZE is to be avoided, as its support will cease in the future. This macro is obsoleted, and should be replaced by

          AC_CHECK_MEMBERS([struct stat.st_blksize])
     
— Macro: AC_STRUCT_ST_BLOCKS

If struct stat contains an st_blocks member, define HAVE_STRUCT_STAT_ST_BLOCKS. Otherwise, require an AC_LIBOBJ replacement of ‘fileblocks’. The former name, HAVE_ST_BLOCKS is to be avoided, as its support will cease in the future.

— Macro: AC_STRUCT_ST_RDEV

If struct stat contains an st_rdev member, define HAVE_STRUCT_STAT_ST_RDEV. The former name for this macro, HAVE_ST_RDEV, is to be avoided as it will cease to be supported in the future. Actually, even the new macro is obsolete and should be replaced by:

          AC_CHECK_MEMBERS([struct stat.st_rdev])
     
— Macro: AC_STRUCT_TM

If time.h does not define struct tm, define TM_IN_SYS_TIME, which means that including sys/time.h had better define struct tm.

This macro is obsolescent, as time.h defines struct tm in current systems. New programs need not use this macro.

— Macro: AC_STRUCT_TIMEZONE

Figure out how to get the current timezone. If struct tm has a tm_zone member, define HAVE_STRUCT_TM_TM_ZONE (and the obsoleted HAVE_TM_ZONE). Otherwise, if the external array tzname is found, define HAVE_TZNAME; if it is declared, define HAVE_DECL_TZNAME.