X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=m4%2Fd-ino.m4;h=aa9b24373f5b9d5e70b560412cf65fecb6b6772e;hb=HEAD;hp=baf0dcc916b8ba4b05d167e65e33de73569daf0b;hpb=f3797c1231154dc0bbade50aceaa8639ffd9e3cf;p=debian%2Ftar diff --git a/m4/d-ino.m4 b/m4/d-ino.m4 index baf0dcc9..aa9b2437 100644 --- a/m4/d-ino.m4 +++ b/m4/d-ino.m4 @@ -1,11 +1,11 @@ -# serial 12 +# serial 14 dnl From Jim Meyering. dnl dnl Check whether struct dirent has a member named d_ino. dnl -# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2011 Free Software +# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2015 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation @@ -13,7 +13,8 @@ dnl # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], - [AC_CACHE_CHECK([for d_ino member in directory struct], + [AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_CACHE_CHECK([for d_ino member in directory struct], gl_cv_struct_dirent_d_ino, [AC_RUN_IFELSE( [AC_LANG_PROGRAM( @@ -29,7 +30,7 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], e = readdir (dp); if (! e) return 2; - if (stat (e->d_name, &st) != 0) + if (lstat (e->d_name, &st) != 0) return 3; if (e->d_ino != st.st_ino) return 4; @@ -37,10 +38,18 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO], ]])], [gl_cv_struct_dirent_d_ino=yes], [gl_cv_struct_dirent_d_ino=no], - [gl_cv_struct_dirent_d_ino=no])]) - if test $gl_cv_struct_dirent_d_ino = yes; then - AC_DEFINE([D_INO_IN_DIRENT], [1], - [Define if struct dirent has a member d_ino that actually works.]) - fi + [case "$host_os" in + # Guess yes on glibc systems with Linux kernel. + linux*-gnu*) gl_cv_struct_dirent_d_ino="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_struct_dirent_d_ino="guessing no" ;; + esac + ])]) + case "$gl_cv_struct_dirent_d_ino" in + *yes) + AC_DEFINE([D_INO_IN_DIRENT], [1], + [Define if struct dirent has a member d_ino that actually works.]) + ;; + esac ] )