1# fseeko.m4 serial 17 2dnl Copyright (C) 2007-2016 Free Software Foundation, Inc. 3dnl This file is free software; the Free Software Foundation 4dnl gives unlimited permission to copy and/or distribute it, 5dnl with or without modifications, as long as this notice is preserved. 6 7AC_DEFUN([gl_FUNC_FSEEKO], 8[ 9 AC_REQUIRE([gl_STDIO_H_DEFAULTS]) 10 AC_REQUIRE([gl_STDIN_LARGE_OFFSET]) 11 AC_REQUIRE([gl_SYS_TYPES_H]) 12 AC_REQUIRE([AC_PROG_CC]) 13 14 dnl Persuade glibc <stdio.h> to declare fseeko(). 15 AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) 16 17 AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko], 18 [ 19 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h> 20]], [fseeko (stdin, 0, 0);])], 21 [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no]) 22 ]) 23 24 AC_CHECK_DECLS_ONCE([fseeko]) 25 if test $ac_cv_have_decl_fseeko = no; then 26 HAVE_DECL_FSEEKO=0 27 fi 28 29 if test $gl_cv_func_fseeko = no; then 30 HAVE_FSEEKO=0 31 else 32 if test $WINDOWS_64_BIT_OFF_T = 1; then 33 REPLACE_FSEEKO=1 34 fi 35 if test $gl_cv_var_stdin_large_offset = no; then 36 REPLACE_FSEEKO=1 37 fi 38 m4_ifdef([gl_FUNC_FFLUSH_STDIN], [ 39 gl_FUNC_FFLUSH_STDIN 40 if test $gl_cv_func_fflush_stdin != yes; then 41 REPLACE_FSEEKO=1 42 fi 43 ]) 44 fi 45]) 46 47dnl Code shared by fseeko and ftello. Determine if large files are supported, 48dnl but stdin does not start as a large file by default. 49AC_DEFUN([gl_STDIN_LARGE_OFFSET], 50 [ 51 AC_CACHE_CHECK([whether stdin defaults to large file offsets], 52 [gl_cv_var_stdin_large_offset], 53 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]], 54[[#if defined __SL64 && defined __SCLE /* cygwin */ 55 /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making 56 fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and 57 it is easier to do a version check than building a runtime test. */ 58# include <cygwin/version.h> 59# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25) 60 choke me 61# endif 62#endif]])], 63 [gl_cv_var_stdin_large_offset=yes], 64 [gl_cv_var_stdin_large_offset=no])]) 65]) 66 67# Prerequisites of lib/fseeko.c. 68AC_DEFUN([gl_PREREQ_FSEEKO], 69[ 70 dnl Native Windows has the function _fseeki64. mingw hides it, but mingw64 71 dnl makes it usable again. 72 AC_CHECK_FUNCS([_fseeki64]) 73]) 74