2018-06-18 Jonathan Wakely <jwakely@redhat.com>
+ * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
+ enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
+ symlink.
+ * config.h.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
+
LWG 3035. std::allocator's constructors should be constexpr
* include/bits/allocator.h (allocator): Add constexpr to constructors
for C++2a. Replace dynamic exception specifications with NOTHROW
])
dnl
-dnl Check whether the library calls required by the Filesystem TS are present
-dnl and define _GLIBCXX_USE_REALPATH and _GLIBCXX_USE_UTIMENSAT.
+dnl Check whether the library calls required by the Filesystem TS are present.
+dnl Defines:
+dnl HAVE_STRUCT_DIRENT_D_TYPE
+dnl _GLIBCXX_USE_REALPATH
+dnl _GLIBCXX_USE_UTIMENSAT
+dnl _GLIBCXX_USE_ST_MTIM
+dnl _GLIBCXX_USE_FCHMOD
+dnl _GLIBCXX_USE_FCHMODAT
+dnl _GLIBCXX_USE_SENDFILE
+dnl HAVE_LINK
+dnl HAVE_READLINK
+dnl HAVE_SYMLINK
dnl
AC_DEFUN([GLIBCXX_CHECK_FILESYSTEM_DEPS], [dnl
dnl
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
+ if test $enable_libstdcxx_filesystem_ts = yes; then
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -fno-exceptions"
dnl
- AC_MSG_CHECKING([for struct dirent.d_type])
- AC_CACHE_VAL(glibcxx_cv_dirent_d_type, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [#include <dirent.h>],
- [
- struct dirent d;
- if (sizeof d.d_type) return 0;
- ],
- [glibcxx_cv_dirent_d_type=yes],
- [glibcxx_cv_dirent_d_type=no])
- ])
- if test $glibcxx_cv_dirent_d_type = yes; then
- AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1, [Define to 1 if `d_type' is a member of `struct dirent'.])
- fi
- AC_MSG_RESULT($glibcxx_cv_dirent_d_type)
+ AC_MSG_CHECKING([for struct dirent.d_type])
+ AC_CACHE_VAL(glibcxx_cv_dirent_d_type, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <dirent.h>],
+ [
+ struct dirent d;
+ if (sizeof d.d_type) return 0;
+ ],
+ [glibcxx_cv_dirent_d_type=yes],
+ [glibcxx_cv_dirent_d_type=no])
+ ])
+ if test $glibcxx_cv_dirent_d_type = yes; then
+ AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE, 1, [Define to 1 if `d_type' is a member of `struct dirent'.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_dirent_d_type)
dnl
- AC_MSG_CHECKING([for realpath])
- AC_CACHE_VAL(glibcxx_cv_realpath, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [
- #include <limits.h>
- #include <stdlib.h>
- #include <unistd.h>
- ],
- [
- #if _XOPEN_VERSION < 500
- #error
- #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
- char *tmp = realpath((const char*)NULL, (char*)NULL);
- #else
- #error
- #endif
- ],
- [glibcxx_cv_realpath=yes],
- [glibcxx_cv_realpath=no])
- ])
- if test $glibcxx_cv_realpath = yes; then
- AC_DEFINE(_GLIBCXX_USE_REALPATH, 1, [Define if usable realpath is available in <stdlib.h>.])
- fi
- AC_MSG_RESULT($glibcxx_cv_realpath)
+ AC_MSG_CHECKING([for realpath])
+ AC_CACHE_VAL(glibcxx_cv_realpath, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ ],
+ [
+ #if _XOPEN_VERSION < 500
+ #error
+ #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
+ char *tmp = realpath((const char*)NULL, (char*)NULL);
+ #else
+ #error
+ #endif
+ ],
+ [glibcxx_cv_realpath=yes],
+ [glibcxx_cv_realpath=no])
+ ])
+ if test $glibcxx_cv_realpath = yes; then
+ AC_DEFINE(_GLIBCXX_USE_REALPATH, 1, [Define if usable realpath is available in <stdlib.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_realpath)
dnl
- AC_MSG_CHECKING([for utimensat])
- AC_CACHE_VAL(glibcxx_cv_utimensat, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [
- #include <fcntl.h>
- #include <sys/stat.h>
- ],
- [
- struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
- int i = utimensat(AT_FDCWD, "path", ts, 0);
- ],
- [glibcxx_cv_utimensat=yes],
- [glibcxx_cv_utimensat=no])
- ])
- if test $glibcxx_cv_utimensat = yes; then
- AC_DEFINE(_GLIBCXX_USE_UTIMENSAT, 1, [Define if utimensat and UTIME_OMIT are available in <sys/stat.h> and AT_FDCWD in <fcntl.h>.])
- fi
- AC_MSG_RESULT($glibcxx_cv_utimensat)
+ AC_MSG_CHECKING([for utimensat])
+ AC_CACHE_VAL(glibcxx_cv_utimensat, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ ],
+ [
+ struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
+ int i = utimensat(AT_FDCWD, "path", ts, 0);
+ ],
+ [glibcxx_cv_utimensat=yes],
+ [glibcxx_cv_utimensat=no])
+ ])
+ if test $glibcxx_cv_utimensat = yes; then
+ AC_DEFINE(_GLIBCXX_USE_UTIMENSAT, 1, [Define if utimensat and UTIME_OMIT are available in <sys/stat.h> and AT_FDCWD in <fcntl.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_utimensat)
dnl
- AC_MSG_CHECKING([for struct stat.st_mtim.tv_nsec])
- AC_CACHE_VAL(glibcxx_cv_st_mtim, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [ #include <sys/stat.h> ],
- [
- struct stat st;
- return st.st_mtim.tv_nsec;
- ],
- [glibcxx_cv_st_mtim=yes],
- [glibcxx_cv_st_mtim=no])
- ])
- if test $glibcxx_cv_st_mtim = yes; then
- AC_DEFINE(_GLIBCXX_USE_ST_MTIM, 1, [Define if struct stat has timespec members.])
- fi
- AC_MSG_RESULT($glibcxx_cv_st_mtim)
+ AC_MSG_CHECKING([for struct stat.st_mtim.tv_nsec])
+ AC_CACHE_VAL(glibcxx_cv_st_mtim, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [ #include <sys/stat.h> ],
+ [
+ struct stat st;
+ return st.st_mtim.tv_nsec;
+ ],
+ [glibcxx_cv_st_mtim=yes],
+ [glibcxx_cv_st_mtim=no])
+ ])
+ if test $glibcxx_cv_st_mtim = yes; then
+ AC_DEFINE(_GLIBCXX_USE_ST_MTIM, 1, [Define if struct stat has timespec members.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_st_mtim)
dnl
- AC_MSG_CHECKING([for fchmod])
- AC_CACHE_VAL(glibcxx_cv_fchmod, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [#include <sys/stat.h>],
- [fchmod(1, S_IWUSR);],
- [glibcxx_cv_fchmod=yes],
- [glibcxx_cv_fchmod=no])
- ])
- if test $glibcxx_cv_fchmod = yes; then
- AC_DEFINE(_GLIBCXX_USE_FCHMOD, 1, [Define if fchmod is available in <sys/stat.h>.])
- fi
- AC_MSG_RESULT($glibcxx_cv_fchmod)
+ AC_MSG_CHECKING([for fchmod])
+ AC_CACHE_VAL(glibcxx_cv_fchmod, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <sys/stat.h>],
+ [fchmod(1, S_IWUSR);],
+ [glibcxx_cv_fchmod=yes],
+ [glibcxx_cv_fchmod=no])
+ ])
+ if test $glibcxx_cv_fchmod = yes; then
+ AC_DEFINE(_GLIBCXX_USE_FCHMOD, 1, [Define if fchmod is available in <sys/stat.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_fchmod)
dnl
- AC_MSG_CHECKING([for fchmodat])
- AC_CACHE_VAL(glibcxx_cv_fchmodat, [dnl
- GCC_TRY_COMPILE_OR_LINK(
- [
- #include <fcntl.h>
- #include <sys/stat.h>
- ],
- [fchmodat(AT_FDCWD, "", 0, AT_SYMLINK_NOFOLLOW);],
- [glibcxx_cv_fchmodat=yes],
- [glibcxx_cv_fchmodat=no])
- ])
- if test $glibcxx_cv_fchmodat = yes; then
- AC_DEFINE(_GLIBCXX_USE_FCHMODAT, 1, [Define if fchmodat is available in <sys/stat.h>.])
- fi
- AC_MSG_RESULT($glibcxx_cv_fchmodat)
+ AC_MSG_CHECKING([for fchmodat])
+ AC_CACHE_VAL(glibcxx_cv_fchmodat, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ ],
+ [fchmodat(AT_FDCWD, "", 0, AT_SYMLINK_NOFOLLOW);],
+ [glibcxx_cv_fchmodat=yes],
+ [glibcxx_cv_fchmodat=no])
+ ])
+ if test $glibcxx_cv_fchmodat = yes; then
+ AC_DEFINE(_GLIBCXX_USE_FCHMODAT, 1, [Define if fchmodat is available in <sys/stat.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_fchmodat)
+dnl
+ AC_MSG_CHECKING([for sendfile that can copy files])
+ AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl
+ case "${target_os}" in
+ gnu* | linux* | solaris*)
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <sys/sendfile.h>],
+ [sendfile(1, 2, (off_t*)0, sizeof 1);],
+ [glibcxx_cv_sendfile=yes],
+ [glibcxx_cv_sendfile=no])
+ ;;
+ *)
+ glibcxx_cv_sendfile=no
+ ;;
+ esac
+ ])
+ if test $glibcxx_cv_sendfile = yes; then
+ AC_DEFINE(_GLIBCXX_USE_SENDFILE, 1, [Define if sendfile is available in <sys/sendfile.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_sendfile)
dnl
- AC_MSG_CHECKING([for sendfile that can copy files])
- AC_CACHE_VAL(glibcxx_cv_sendfile, [dnl
- case "${target_os}" in
- gnu* | linux* | solaris*)
- GCC_TRY_COMPILE_OR_LINK(
- [#include <sys/sendfile.h>],
- [sendfile(1, 2, (off_t*)0, sizeof 1);],
- [glibcxx_cv_sendfile=yes],
- [glibcxx_cv_sendfile=no])
- ;;
- *)
- glibcxx_cv_sendfile=no
- ;;
- esac
- ])
- if test $glibcxx_cv_sendfile = yes; then
- AC_DEFINE(_GLIBCXX_USE_SENDFILE, 1, [Define if sendfile is available in <sys/sendfile.h>.])
- fi
- AC_MSG_RESULT($glibcxx_cv_sendfile)
+ AC_MSG_CHECKING([for link])
+ AC_CACHE_VAL(glibcxx_cv_link, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <unistd.h>],
+ [link("", "");],
+ [glibcxx_cv_link=yes],
+ [glibcxx_cv_link=no])
+ ])
+ if test $glibcxx_cv_link = yes; then
+ AC_DEFINE(HAVE_LINK, 1, [Define if link is available in <unistd.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_link)
dnl
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
+ AC_MSG_CHECKING([for readlink])
+ AC_CACHE_VAL(glibcxx_cv_readlink, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <unistd.h>],
+ [char buf[32]; readlink("", buf, sizeof(buf));],
+ [glibcxx_cv_readlink=yes],
+ [glibcxx_cv_readlink=no])
+ ])
+ if test $glibcxx_cv_readlink = yes; then
+ AC_DEFINE(HAVE_READLINK, 1, [Define if readlink is available in <unistd.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_readlink)
+dnl
+ AC_MSG_CHECKING([for symlink])
+ AC_CACHE_VAL(glibcxx_cv_symlink, [dnl
+ GCC_TRY_COMPILE_OR_LINK(
+ [#include <unistd.h>],
+ [symlink("", "");],
+ [glibcxx_cv_symlink=yes],
+ [glibcxx_cv_symlink=no])
+ ])
+ if test $glibcxx_cv_symlink = yes; then
+ AC_DEFINE(HAVE_SYMLINK, 1, [Define if symlink is available in <unistd.h>.])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_symlink)
+dnl
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ AC_LANG_RESTORE
+ fi
])
dnl
/* Only used in build directory testsuite_hooks.h. */
#undef HAVE_LIMIT_VMEM
-/* Define to 1 if you have the `link' function. */
+/* Define if link is available in <unistd.h>. */
#undef HAVE_LINK
/* Define if futex syscall is available. */
/* Define to 1 if you have the `quick_exit' function. */
#undef HAVE_QUICK_EXIT
-/* Define to 1 if you have the `readlink' function. */
+/* Define if readlink is available in <unistd.h>. */
#undef HAVE_READLINK
/* Define to 1 if you have the `setenv' function. */
/* Define if strxfrm_l is available in <string.h>. */
#undef HAVE_STRXFRM_L
-/* Define to 1 if you have the `symlink' function. */
+/* Define if symlink is available in <unistd.h>. */
#undef HAVE_SYMLINK
/* Define to 1 if the target runtime linker supports binding the same symbol
fi
-done
-
-for ac_func in link readlink symlink
-do :
- as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-eval as_val=\$$as_ac_var
- if test "x$as_val" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
done
$as_echo "$enable_libstdcxx_filesystem_ts" >&6; }
+ if test $enable_libstdcxx_filesystem_ts = yes; then
- ac_ext=cpp
+ ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_type" >&5
+ ac_save_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -fno-exceptions"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct dirent.d_type" >&5
$as_echo_n "checking for struct dirent.d_type... " >&6; }
- if test "${glibcxx_cv_dirent_d_type+set}" = set; then :
+ if test "${glibcxx_cv_dirent_d_type+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <dirent.h>
main ()
{
- struct dirent d;
- if (sizeof d.d_type) return 0;
+ struct dirent d;
+ if (sizeof d.d_type) return 0;
;
return 0;
main ()
{
- struct dirent d;
- if (sizeof d.d_type) return 0;
+ struct dirent d;
+ if (sizeof d.d_type) return 0;
;
return 0;
fi
- if test $glibcxx_cv_dirent_d_type = yes; then
+ if test $glibcxx_cv_dirent_d_type = yes; then
$as_echo "#define HAVE_STRUCT_DIRENT_D_TYPE 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_dirent_d_type" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_dirent_d_type" >&5
$as_echo "$glibcxx_cv_dirent_d_type" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for realpath" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for realpath" >&5
$as_echo_n "checking for realpath... " >&6; }
- if test "${glibcxx_cv_realpath+set}" = set; then :
+ if test "${glibcxx_cv_realpath+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <limits.h>
- #include <stdlib.h>
- #include <unistd.h>
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <unistd.h>
int
main ()
{
- #if _XOPEN_VERSION < 500
- #error
- #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
- char *tmp = realpath((const char*)NULL, (char*)NULL);
- #else
- #error
- #endif
+ #if _XOPEN_VERSION < 500
+ #error
+ #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
+ char *tmp = realpath((const char*)NULL, (char*)NULL);
+ #else
+ #error
+ #endif
;
return 0;
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <limits.h>
- #include <stdlib.h>
- #include <unistd.h>
+ #include <limits.h>
+ #include <stdlib.h>
+ #include <unistd.h>
int
main ()
{
- #if _XOPEN_VERSION < 500
- #error
- #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
- char *tmp = realpath((const char*)NULL, (char*)NULL);
- #else
- #error
- #endif
+ #if _XOPEN_VERSION < 500
+ #error
+ #elif _XOPEN_VERSION >= 700 || defined(PATH_MAX)
+ char *tmp = realpath((const char*)NULL, (char*)NULL);
+ #else
+ #error
+ #endif
;
return 0;
fi
- if test $glibcxx_cv_realpath = yes; then
+ if test $glibcxx_cv_realpath = yes; then
$as_echo "#define _GLIBCXX_USE_REALPATH 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_realpath" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_realpath" >&5
$as_echo "$glibcxx_cv_realpath" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for utimensat" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for utimensat" >&5
$as_echo_n "checking for utimensat... " >&6; }
- if test "${glibcxx_cv_utimensat+set}" = set; then :
+ if test "${glibcxx_cv_utimensat+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <fcntl.h>
- #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/stat.h>
int
main ()
{
- struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
- int i = utimensat(AT_FDCWD, "path", ts, 0);
+ struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
+ int i = utimensat(AT_FDCWD, "path", ts, 0);
;
return 0;
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <fcntl.h>
- #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/stat.h>
int
main ()
{
- struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
- int i = utimensat(AT_FDCWD, "path", ts, 0);
+ struct timespec ts[2] = { { 0, UTIME_OMIT }, { 1, 1 } };
+ int i = utimensat(AT_FDCWD, "path", ts, 0);
;
return 0;
fi
- if test $glibcxx_cv_utimensat = yes; then
+ if test $glibcxx_cv_utimensat = yes; then
$as_echo "#define _GLIBCXX_USE_UTIMENSAT 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_utimensat" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_utimensat" >&5
$as_echo "$glibcxx_cv_utimensat" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat.st_mtim.tv_nsec" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct stat.st_mtim.tv_nsec" >&5
$as_echo_n "checking for struct stat.st_mtim.tv_nsec... " >&6; }
- if test "${glibcxx_cv_st_mtim+set}" = set; then :
+ if test "${glibcxx_cv_st_mtim+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/stat.h>
main ()
{
- struct stat st;
- return st.st_mtim.tv_nsec;
+ struct stat st;
+ return st.st_mtim.tv_nsec;
;
return 0;
main ()
{
- struct stat st;
- return st.st_mtim.tv_nsec;
+ struct stat st;
+ return st.st_mtim.tv_nsec;
;
return 0;
fi
- if test $glibcxx_cv_st_mtim = yes; then
+ if test $glibcxx_cv_st_mtim = yes; then
$as_echo "#define _GLIBCXX_USE_ST_MTIM 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_st_mtim" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_st_mtim" >&5
$as_echo "$glibcxx_cv_st_mtim" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchmod" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchmod" >&5
$as_echo_n "checking for fchmod... " >&6; }
- if test "${glibcxx_cv_fchmod+set}" = set; then :
+ if test "${glibcxx_cv_fchmod+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/stat.h>
fi
- if test $glibcxx_cv_fchmod = yes; then
+ if test $glibcxx_cv_fchmod = yes; then
$as_echo "#define _GLIBCXX_USE_FCHMOD 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_fchmod" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_fchmod" >&5
$as_echo "$glibcxx_cv_fchmod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchmodat" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchmodat" >&5
$as_echo_n "checking for fchmodat... " >&6; }
- if test "${glibcxx_cv_fchmodat+set}" = set; then :
+ if test "${glibcxx_cv_fchmodat+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- if test x$gcc_no_link = xyes; then
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <fcntl.h>
- #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/stat.h>
int
main ()
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
- #include <fcntl.h>
- #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <sys/stat.h>
int
main ()
fi
- if test $glibcxx_cv_fchmodat = yes; then
+ if test $glibcxx_cv_fchmodat = yes; then
$as_echo "#define _GLIBCXX_USE_FCHMODAT 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_fchmodat" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_fchmodat" >&5
$as_echo "$glibcxx_cv_fchmodat" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendfile that can copy files" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendfile that can copy files" >&5
$as_echo_n "checking for sendfile that can copy files... " >&6; }
- if test "${glibcxx_cv_sendfile+set}" = set; then :
+ if test "${glibcxx_cv_sendfile+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- case "${target_os}" in
- gnu* | linux* | solaris*)
- if test x$gcc_no_link = xyes; then
+ case "${target_os}" in
+ gnu* | linux* | solaris*)
+ if test x$gcc_no_link = xyes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/sendfile.h>
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
- ;;
- *)
- glibcxx_cv_sendfile=no
- ;;
- esac
+ ;;
+ *)
+ glibcxx_cv_sendfile=no
+ ;;
+ esac
fi
- if test $glibcxx_cv_sendfile = yes; then
+ if test $glibcxx_cv_sendfile = yes; then
$as_echo "#define _GLIBCXX_USE_SENDFILE 1" >>confdefs.h
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sendfile" >&5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_sendfile" >&5
$as_echo "$glibcxx_cv_sendfile" >&6; }
- CXXFLAGS="$ac_save_CXXFLAGS"
- ac_ext=c
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5
+$as_echo_n "checking for link... " >&6; }
+ if test "${glibcxx_cv_link+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test x$gcc_no_link = xyes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+link("", "");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_link=yes
+else
+ glibcxx_cv_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ if test x$gcc_no_link = xyes; then
+ as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+link("", "");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ glibcxx_cv_link=yes
+else
+ glibcxx_cv_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+fi
+
+ if test $glibcxx_cv_link = yes; then
+
+$as_echo "#define HAVE_LINK 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_link" >&5
+$as_echo "$glibcxx_cv_link" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readlink" >&5
+$as_echo_n "checking for readlink... " >&6; }
+ if test "${glibcxx_cv_readlink+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test x$gcc_no_link = xyes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+char buf[32]; readlink("", buf, sizeof(buf));
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_readlink=yes
+else
+ glibcxx_cv_readlink=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ if test x$gcc_no_link = xyes; then
+ as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+char buf[32]; readlink("", buf, sizeof(buf));
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ glibcxx_cv_readlink=yes
+else
+ glibcxx_cv_readlink=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+fi
+
+ if test $glibcxx_cv_readlink = yes; then
+
+$as_echo "#define HAVE_READLINK 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_readlink" >&5
+$as_echo "$glibcxx_cv_readlink" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5
+$as_echo_n "checking for symlink... " >&6; }
+ if test "${glibcxx_cv_symlink+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test x$gcc_no_link = xyes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+symlink("", "");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ glibcxx_cv_symlink=yes
+else
+ glibcxx_cv_symlink=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ if test x$gcc_no_link = xyes; then
+ as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
+fi
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+symlink("", "");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ glibcxx_cv_symlink=yes
+else
+ glibcxx_cv_symlink=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+
+fi
+
+ if test $glibcxx_cv_symlink = yes; then
+
+$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_symlink" >&5
+$as_echo "$glibcxx_cv_symlink" >&6; }
+ CXXFLAGS="$ac_save_CXXFLAGS"
+ ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ fi
# For Transactional Memory TS
# For Filesystem TS.
AC_CHECK_HEADERS([fcntl.h dirent.h sys/statvfs.h utime.h])
-AC_CHECK_FUNCS(link readlink symlink)
GLIBCXX_ENABLE_FILESYSTEM_TS
GLIBCXX_CHECK_FILESYSTEM_DEPS