Macro: ac_sys_largefile_sensitive

Back to the Main Page. | # ac_sys_largefile_sensitive | Download the M4 Source.

Synopsis

  `AC_SYS_LARGEFILE_SENSITIVE`

Version

  guidod @ ac-archive-0.5.39

Author

  Guido Draheim

Description

  checker whether the current system is sensitive to -Ddefines making off_t having different types/sizes. Automatically define a config.h symbol LARGEFILE_SENSITIVE if that is the case, otherwise leave everything as is.

  This macro builds on top of AC_SYS_LARGEFILE to detect whether special options are neede to make the code use 64bit off_t - in many setups this will also make the code use 64bit off_t immediatly.

  The common use of a LARGEFILE_SENSITIVE config.h-define is to rename exported functions, usually adding a 64 to the original function name. Such renamings are only needed on systems being both (a) 32bit off_t by default and (b) implementing large.file extensions (as for unix98).

  a renaming section could look like this:
  `#if defined _LARGEFILE_SOURCE && defined LARGEFILE_SENSITIVE`
  `#define zzip_open zzip_open64`
  `#define zzip_seek zzip_seek64`
  `#endif`

  for libraries, it is best to take advantage of the prefix-config.h macro, otherwise you want to export a renamed LARGEFILE_SENSITIVE in an installed header file. -> see AX_PREFIX_CONFIG_H

M4 Source Code

      AC_DEFUN([AC_SYS_LARGEFILE_SENSITIVE],[dnl
      AC_REQUIRE([AC_SYS_LARGEFILE])dnl
      # we know about some internals of ac_sys_largefile here...
      AC_MSG_CHECKING(whether system differentiates 64bit off_t by defines)
      ac_cv_sys_largefile_sensitive="no"
      if test ".$ac_cv_sys_file_offset_bits$ac_cv_sys_large_files" != ".nono"
      then ac_cv_sys_largefile_sensitive="yes"
        AC_DEFINE(LARGEFILE_SENSITIVE, 1,
        [whether the local system is sensitive to _LARGEFILE_SOURCE defines])
      fi
      AC_MSG_RESULT([$ac_cv_sys_largefile_sensitive])
      ])