From 7840a8ca84a44db41386e4c6341b8589b1f55236 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Sat, 18 Jun 2016 17:37:04 +0000 Subject: [PATCH] Use utimes instead of utimensat when !defined(UTIME_OMIT). Fixes build for older GLIBC versions git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273088 91177308-0d34-0410-b5e6-96231b3b80d8 --- src/experimental/filesystem/operations.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/experimental/filesystem/operations.cpp b/src/experimental/filesystem/operations.cpp index f92b0f7ba..ebaadf404 100644 --- a/src/experimental/filesystem/operations.cpp +++ b/src/experimental/filesystem/operations.cpp @@ -507,8 +507,10 @@ void __last_write_time(const path& p, file_time_type new_time, using namespace std::chrono; std::error_code m_ec; -#if defined(__APPLE__) + // We can use the presence of UTIME_OMIT to detect GLIBC versions that + // do not provide utimensat. // FIXME: Use utimensat when it becomes available on OS X. +#if defined(__APPLE__) || !defined(UTIME_OMIT) // This implementation has a race condition between determining the // last access time and attempting to set it to the same value using // ::utimes