* configure.ac: Check for (struct stat)::st_mtim
* fileread.cc (File_read::get_mtime): Use st_mtim if available. * config.in: Regenerate. * configure: Regenerate.
This commit is contained in:
parent
dec397b2de
commit
5d329b7db9
5 changed files with 60 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2009-11-06 Mikolaj Zalewski <mikolaj@google.com>
|
||||||
|
|
||||||
|
* configure.ac: Check for (struct stat)::st_mtim
|
||||||
|
* fileread.cc (File_read::get_mtime): Use st_mtim if available.
|
||||||
|
* config.in: Regenerate.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2009-11-05 Ian Lance Taylor <iant@google.com>
|
2009-11-05 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
PR 10910
|
PR 10910
|
||||||
|
|
|
@ -102,6 +102,9 @@
|
||||||
/* Define to 1 if you have the `readv' function. */
|
/* Define to 1 if you have the `readv' function. */
|
||||||
#undef HAVE_READV
|
#undef HAVE_READV
|
||||||
|
|
||||||
|
/* Define if struct stat has a field st_mtim with timespec for mtime */
|
||||||
|
#undef HAVE_STAT_ST_MTIM
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#undef HAVE_STDINT_H
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
|
34
gold/configure
vendored
34
gold/configure
vendored
|
@ -6875,6 +6875,40 @@ $as_echo "#define HAVE_TEMPLATE_ATTRIBUTES 1" >>confdefs.h
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat::st_mtim." >&5
|
||||||
|
$as_echo_n "checking for struct stat::st_mtim.... " >&6; }
|
||||||
|
if test "${gold_cv_stat_st_mtim+set}" = set; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#include <sys/stat.h>
|
||||||
|
long bar() { struct stat s; return (long)(s.st_mtim.tv_sec + s.st_mtim.tv_sec);}
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
gold_cv_stat_st_mtim=yes
|
||||||
|
else
|
||||||
|
gold_cv_stat_st_mtim=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gold_cv_stat_st_mtim" >&5
|
||||||
|
$as_echo "$gold_cv_stat_st_mtim" >&6; }
|
||||||
|
if test "$gold_cv_stat_st_mtim" = "yes"; then
|
||||||
|
|
||||||
|
$as_echo "#define HAVE_STAT_ST_MTIM 1" >>confdefs.h
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
ac_ext=c
|
ac_ext=c
|
||||||
ac_cpp='$CPP $CPPFLAGS'
|
ac_cpp='$CPP $CPPFLAGS'
|
||||||
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
|
|
@ -370,6 +370,18 @@ if test "$gold_cv_template_attribute" = "yes"; then
|
||||||
[Define if attributes work on C++ templates])
|
[Define if attributes work on C++ templates])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Check if the system has struct stat::st_mtim.
|
||||||
|
AC_CACHE_CHECK([for struct stat::st_mtim.],
|
||||||
|
[gold_cv_stat_st_mtim],
|
||||||
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <sys/stat.h>
|
||||||
|
long bar() { struct stat s; return (long)(s.st_mtim.tv_sec + s.st_mtim.tv_sec);}
|
||||||
|
]])], [gold_cv_stat_st_mtim=yes], [gold_cv_stat_st_mtim=no])])
|
||||||
|
if test "$gold_cv_stat_st_mtim" = "yes"; then
|
||||||
|
AC_DEFINE(HAVE_STAT_ST_MTIM, 1,
|
||||||
|
[Define if struct stat has a field st_mtim with timespec for mtime])
|
||||||
|
fi
|
||||||
|
|
||||||
AC_LANG_POP(C++)
|
AC_LANG_POP(C++)
|
||||||
|
|
||||||
AM_MAINTAINER_MODE
|
AM_MAINTAINER_MODE
|
||||||
|
|
|
@ -823,9 +823,11 @@ File_read::get_mtime()
|
||||||
if (fstat(this->descriptor_, &file_stat) < 0)
|
if (fstat(this->descriptor_, &file_stat) < 0)
|
||||||
gold_fatal(_("%s: stat failed: %s"), this->name_.c_str(),
|
gold_fatal(_("%s: stat failed: %s"), this->name_.c_str(),
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
// TODO: do a configure check if st_mtim is present and get the
|
#ifdef HAVE_STAT_ST_MTIM
|
||||||
// nanoseconds part if it is.
|
return Timespec(file_stat.st_mtim.tv_sec, file_stat.st_mtim.tv_nsec);
|
||||||
|
#else
|
||||||
return Timespec(file_stat.st_mtime, 0);
|
return Timespec(file_stat.st_mtime, 0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open the file.
|
// Open the file.
|
||||||
|
|
Loading…
Reference in a new issue