]> granicus.if.org Git - clang/commitdiff
[DirectoryWatcher][linux] Fix for older kernels
authorJan Korous <jkorous@apple.com>
Mon, 15 Jul 2019 23:14:00 +0000 (23:14 +0000)
committerJan Korous <jkorous@apple.com>
Mon, 15 Jul 2019 23:14:00 +0000 (23:14 +0000)
IN_EXCL_UNLINK exists since Linux 2.6.36

Differential Revision: https://reviews.llvm.org/D64764

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@366152 91177308-0d34-0410-b5e6-96231b3b80d8

lib/DirectoryWatcher/linux/DirectoryWatcher-linux.cpp

index 0c9f799b638d64290d1bec4d16d3f79a25258f3c..6d7d69da4db5a945a24619f36948b1273b49154c 100644 (file)
@@ -24,6 +24,7 @@
 #include <vector>
 
 #include <fcntl.h>
+#include <linux/version.h>
 #include <sys/epoll.h>
 #include <sys/inotify.h>
 #include <unistd.h>
@@ -332,8 +333,12 @@ std::unique_ptr<DirectoryWatcher> clang::DirectoryWatcher::create(
 
   const int InotifyWD = inotify_add_watch(
       InotifyFD, Path.str().c_str(),
-      IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_EXCL_UNLINK | IN_MODIFY |
-          IN_MOVED_FROM | IN_MOVE_SELF | IN_MOVED_TO | IN_ONLYDIR | IN_IGNORED);
+      IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MODIFY |
+      IN_MOVED_FROM | IN_MOVE_SELF | IN_MOVED_TO | IN_ONLYDIR | IN_IGNORED
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
+      | IN_EXCL_UNLINK
+#endif
+      );
   if (InotifyWD == -1)
     return nullptr;