<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div style="-webkit-text-size-adjust: auto;">Hi Neil</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">Would it be better to make your code execute on any unix platform where those functions aren't available?</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">That is, change</div><div style="-webkit-text-size-adjust: auto;"><br></div><div><blockquote type="cite" style="-webkit-text-size-adjust: auto;">+#ifdef __ANDROID__<br>+#include <sys/syscall.h><br>+#endif</blockquote><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">To</div><div style="-webkit-text-size-adjust: auto;"><br></div><div><div><span style="-webkit-text-size-adjust: auto;">+#if !</span><font color="#000000"><span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);">defined(HAVE_FUTIMES) && !</span></font><span style="-webkit-text-size-adjust: auto;">defined(HAVE_FUTIMENS)</span></div><div>+#include <sys/syscall.h><br>+#endif</div></div><div><br></div><div>And then instead of </div><div><br></div><div><blockquote type="cite" style="-webkit-text-size-adjust: auto;">+#elif defined(__ANDROID__)</blockquote><br></div><div>Put it inside the #else and remove the #error</div><div><br></div><div>Thanks,</div><div>Pete</div><br><span style="-webkit-text-size-adjust: auto;">Sent from my iPhone</span></div><div style="-webkit-text-size-adjust: auto;"><br>On Dec 6, 2013, at 4:11 PM, Neil Henning <<a href="mailto:llvm@neil-henning.co.uk">llvm@neil-henning.co.uk</a>> wrote:<br><br></div><blockquote type="cite" style="-webkit-text-size-adjust: auto;"><div><span>The latest NDK has no support for futimes nor funtimens. Following the ideas shown in this [[ <a href="http://stackoverflow.com/questions/19374749/how-to-work-around-absence-of-futimes-in-android-ndk">http://stackoverflow.com/questions/19374749/how-to-work-around-absence-of-futimes-in-android-ndk</a> | Stack Overflow post ]] I've created a simple patch which supports setLastModificationAndAccessTime using the NDK.</span><br><span></span><br><span>Comments and suggestions are welcome.</span><br><span></span><br><span><a href="http://llvm-reviews.chandlerc.com/D2357">http://llvm-reviews.chandlerc.com/D2357</a></span><br><span></span><br><span>Files:</span><br><span>  lib/Support/Unix/Path.inc</span><br><span></span><br><span>Index: lib/Support/Unix/Path.inc</span><br><span>===================================================================</span><br><span>--- lib/Support/Unix/Path.inc</span><br><span>+++ lib/Support/Unix/Path.inc</span><br><span>@@ -50,6 +50,10 @@</span><br><span> #include <mach-o/dyld.h></span><br><span> #endif</span><br><span></span><br><span>+#ifdef __ANDROID__</span><br><span>+#include <sys/syscall.h></span><br><span>+#endif</span><br><span>+</span><br><span> // Both stdio.h and cstdio are included via different pathes and</span><br><span> // stdcxx's cstdio doesn't include stdio.h, so it doesn't #undef the macros</span><br><span> // either.</span><br><span>@@ -536,6 +540,12 @@</span><br><span>   Times[0].tv_usec = 0;</span><br><span>   Times[1] = Times[0];</span><br><span>   if (::futimes(FD, Times))</span><br><span>+#elif defined(__ANDROID__)</span><br><span>+  timespec Times[2];</span><br><span>+  Times[0].tv_sec = Time.toPosixTime();</span><br><span>+  Times[0].tv_nsec = 0;</span><br><span>+  Times[1] = Times[0];</span><br><span>+  if (syscall(__NR_utimensat, FD, NULL, Times, 0))</span><br><span> #else</span><br><span> #error Missing futimes() and futimens()</span><br><span> #endif</span><br></div></blockquote><blockquote type="cite" style="-webkit-text-size-adjust: auto;"><div><D2357.1.patch></div></blockquote><blockquote type="cite" style="-webkit-text-size-adjust: auto;"><div><span>_______________________________________________</span><br><span>llvm-commits mailing list</span><br><span><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a></span><br><span><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a></span><br></div></blockquote></body></html>