[llvm] r197045 - Build fix for Android NDK which has neither futimes nor futimens
Alp Toker
alp at nuanti.com
Wed Dec 11 07:42:33 PST 2013
Author: alp
Date: Wed Dec 11 09:42:33 2013
New Revision: 197045
URL: http://llvm.org/viewvc/llvm-project?rev=197045&view=rev
Log:
Build fix for Android NDK which has neither futimes nor futimens
Based on a patch by Neil Henning!
Modified:
llvm/trunk/include/llvm/Support/FileSystem.h
llvm/trunk/lib/Support/Unix/Path.inc
Modified: llvm/trunk/include/llvm/Support/FileSystem.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/FileSystem.h?rev=197045&r1=197044&r2=197045&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/FileSystem.h (original)
+++ llvm/trunk/include/llvm/Support/FileSystem.h Wed Dec 11 09:42:33 2013
@@ -545,6 +545,11 @@ inline error_code file_size(const Twine
return error_code::success();
}
+/// @brief Set the file modification and access time.
+///
+/// @returns errc::success if the file times were successfully set, otherwise a
+/// platform specific error_code or errc::not_supported on platforms
+/// where the functionality isn't available.
error_code setLastModificationAndAccessTime(int FD, TimeValue Time);
/// @brief Is status available?
Modified: llvm/trunk/lib/Support/Unix/Path.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Unix/Path.inc?rev=197045&r1=197044&r2=197045&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Unix/Path.inc (original)
+++ llvm/trunk/lib/Support/Unix/Path.inc Wed Dec 11 09:42:33 2013
@@ -531,17 +531,20 @@ error_code setLastModificationAndAccessT
Times[0].tv_nsec = 0;
Times[1] = Times[0];
if (::futimens(FD, Times))
+ return error_code(errno, system_category());
+ return error_code::success();
#elif defined(HAVE_FUTIMES)
timeval Times[2];
Times[0].tv_sec = Time.toPosixTime();
Times[0].tv_usec = 0;
Times[1] = Times[0];
if (::futimes(FD, Times))
-#else
-#error Missing futimes() and futimens()
-#endif
return error_code(errno, system_category());
return error_code::success();
+#else
+#warning Missing futimes() and futimens()
+ return make_error_code(errc::not_supported);
+#endif
}
error_code mapped_file_region::init(int FD, bool CloseFD, uint64_t Offset) {
More information about the llvm-commits
mailing list