*** empty log message ***
[gnulib.git] / m4 / largefile.m4
index b24c064..515625d 100644 (file)
@@ -1,4 +1,4 @@
-#serial 7
+#serial 10
 
 dnl By default, many hosts won't let programs access large files;
 dnl one must use special compiler options to get large-file access to work.
@@ -20,19 +20,19 @@ AC_DEFUN(AC_SYS_LARGEFILE_FLAGS,
        ifelse($1, CFLAGS,
          [case "$host_os" in
           # HP-UX 10.20 requires -D__STDC_EXT__ with gcc 2.95.1.
-changequote(, )dnl
-          hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
-changequote([, ])dnl
+[         hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)]
             if test "$GCC" = yes; then
               ac_cv_sys_largefile_CFLAGS=-D__STDC_EXT__
             fi
             ;;
-          # IRIX 6.2 and later require cc -n32.
-changequote(, )dnl
-          irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)
-changequote([, ])dnl
+          # IRIX 6.2 and later do not support large files by default,
+          # so use the -n32 ABI unless the installer said otherwise.
+[         irix6.[2-9]* | irix6.1[0-9]* | irix[7-9].* | irix[1-9][0-9]*)]
             if test "$GCC" != yes; then
-              ac_cv_sys_largefile_CFLAGS=-n32
+              case "$CC $CFLAGS " in
+              *' -o32 '*|*' -n32 '*|*' -64 '*) ;;
+              *) ac_cv_sys_largefile_CFLAGS=-n32 ;;
+              esac
             fi
           esac
           if test "$ac_cv_sys_largefile_CFLAGS" != no; then
@@ -61,17 +61,15 @@ dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, CACHE-VAR, COMMENT, CODE-TO-SET-DEFAUL
 AC_DEFUN(AC_SYS_LARGEFILE_MACRO_VALUE,
   [AC_CACHE_CHECK([for $1], $2,
      [$2=no
-changequote(, )dnl
       $4
       for ac_flag in $ac_cv_sys_largefile_CFLAGS no; do
        case "$ac_flag" in
        -D$1)
          $2=1 ;;
        -D$1=*)
-         $2=`expr " $ac_flag" : '[^=]*=\(.*\)'` ;;
+         $2=`expr " $ac_flag" : '[[^=]]*=\(.*\)'` ;;
        esac
       done
-changequote([, ])dnl
       ])
    if test "[$]$2" != no; then
      AC_DEFINE_UNQUOTED([$1], [$]$2, [$3])
@@ -106,23 +104,30 @@ AC_DEFUN(AC_SYS_LARGEFILE,
        [Number of bits in a file offset, on hosts where this is settable.],
        [case "$host_os" in
        # HP-UX 10.20 and later
-       hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
+[      hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)]
          ac_cv_sys_file_offset_bits=64 ;;
        esac])
+     AC_SYS_LARGEFILE_MACRO_VALUE(_GNU_SOURCE,
+       ac_cv_sys_gnu_source,
+       [Define to make ftello visible on some hosts (e.g. glibc 2.1.3).],
+       [AC_TRY_COMPILE([#include <stdio.h>], [return !ftello;], ,
+         [AC_TRY_COMPILE([#define _GNU_SOURCE 1
+#include <stdio.h>],
+            [return !ftello;],
+            ac_cv_sys_gnu_source=1)])])
      AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE,
        ac_cv_sys_largefile_source,
-       [Define to make fseeko etc. visible, on some hosts.],
-       [case "$host_os" in
-       # HP-UX 10.20 and later
-       hpux10.[2-9][0-9]* | hpux1[1-9]* | hpux[2-9][0-9]*)
-         ac_cv_sys_largefile_source=1 ;;
-       esac])
+       [Define to make ftello visible on some hosts (e.g. HP-UX 10.20).],
+       [AC_TRY_COMPILE([#include <stdio.h>], [return !ftello;], ,
+         [AC_TRY_COMPILE([#define _LARGEFILE_SOURCE 1
+#include <stdio.h>], [return !ftello;],
+            ac_cv_sys_largefile_source=1)])])
      AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES,
        ac_cv_sys_large_files,
        [Define for large files, on AIX-style hosts.],
        [case "$host_os" in
        # AIX 4.2 and later
-       aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)
+[      aix4.[2-9]* | aix4.1[0-9]* | aix[5-9].* | aix[1-9][0-9]*)]
          ac_cv_sys_large_files=1 ;;
        esac])
    fi