X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=m4%2Fopenat.m4;h=5683650d0f9fc57c5849c5392e367f1edd277ef2;hb=17f0ec6;hp=aa6838dcf96074088de8da9527157175ed5b535e;hpb=0e37faa962c9da84e85e24f409c2ff3836ba28d6;p=gnulib.git diff --git a/m4/openat.m4 b/m4/openat.m4 index aa6838dcf..5683650d0 100644 --- a/m4/openat.m4 +++ b/m4/openat.m4 @@ -1,4 +1,4 @@ -# serial 34 +# serial 35 # See if we need to use our replacement for Solaris' openat et al functions. dnl Copyright (C) 2004-2011 Free Software Foundation, Inc. @@ -160,55 +160,12 @@ AC_DEFUN([gl_FUNC_FSTATAT], AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) - AC_CHECK_FUNCS_ONCE([fstatat openat]) + AC_CHECK_FUNCS_ONCE([fstatat]) if test $ac_cv_func_fstatat = no; then HAVE_FSTATAT=0 - else - AC_CACHE_CHECK([whether fstatat fills in st_size etc.], - [gl_cv_func_fstatat_st_size_etc], - [gl_cv_func_fstatat_st_size_etc=no - echo xxx >conftest.file - AC_RUN_IFELSE( - [AC_LANG_SOURCE( - [[ - #include - #include - - int - main (void) - { - struct stat a; - struct stat b; - if (fstatat (AT_FDCWD, "conftest.file", &a, - AT_SYMLINK_NOFOLLOW) - != 0) - return 1; - if (lstat ("conftest.file", &b) != 0) - return 2; - if (a.st_size != b.st_size) return 3; - if (a.st_dev != b.st_dev) return 4; - if (a.st_ino != b.st_ino) return 5; - if (a.st_mode != b.st_mode) return 6; - if (a.st_nlink != b.st_nlink) return 7; - if (a.st_uid != b.st_uid) return 8; - if (a.st_gid != b.st_gid) return 9; - /* Don't check time members, to avoid caching issues. */ - return 0; - } - ]])], - [gl_cv_func_fstatat_st_size_etc=yes])]) - - case $gl_cv_func_fstatat_st_size_etc+$gl_cv_func_lstat_dereferences_slashed_symlink in - yes+yes) ;; - *) REPLACE_FSTATAT=1 - if test $gl_cv_func_fstatat_st_size_etc != yes; then - AC_DEFINE([FSTATAT_ST_SIZE_ETC_BROKEN], [1], - [Define to 1 if fstatat does not fill in st_size etc., - as in AIX 7.1.]) - fi - ;; - esac + elif test $gl_cv_func_lstat_dereferences_slashed_symlink != yes; then + REPLACE_FSTATAT=1 fi ])