diff --git a/bin/linux/fsnotifier-arm b/bin/linux/fsnotifier-arm new file mode 100644 index 000000000000..a71b5823454e Binary files /dev/null and b/bin/linux/fsnotifier-arm differ diff --git a/lib/jna.jar b/lib/jna.jar index 3b8fb4f0e7cf..8321956fd1da 100644 Binary files a/lib/jna.jar and b/lib/jna.jar differ diff --git a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java index c5b459261fa8..047d0f92fac2 100644 --- a/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java +++ b/platform/platform-impl/src/com/intellij/openapi/vfs/impl/local/FileWatcher.java @@ -194,7 +194,9 @@ public class FileWatcher { private static String getExecutableName(final boolean withSubDir) { if (SystemInfo.isWindows) return (withSubDir ? "win" + File.separator : "") + "fsnotifier.exe"; else if (SystemInfo.isMac) return (withSubDir ? "mac" + File.separator : "") + "fsnotifier"; - else if (SystemInfo.isLinux) return (withSubDir ? "linux" + File.separator : "") + (SystemInfo.isAMD64 ? "fsnotifier64" : "fsnotifier"); + else if (SystemInfo.isLinux) return (withSubDir ? "linux" + File.separator : "") + + ("arm".equals(SystemInfo.OS_ARCH) ? "fsnotifier-arm" + : (SystemInfo.isAMD64 ? "fsnotifier64" : "fsnotifier")); return null; } diff --git a/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java b/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java index 615c0c65046c..2f67770568f9 100644 --- a/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java +++ b/platform/util/src/com/intellij/openapi/util/io/FileSystemUtil.java @@ -379,6 +379,7 @@ public class FileSystemUtil { private static final int[] LINUX_64 = {24, 48, 88, 28, 32}; private static final int[] LNX_PPC32 = {16, 48, 80, 24, 28}; private static final int[] LNX_PPC64 = LINUX_64; + private static final int[] LINUX_ARM = LNX_PPC32; private static final int[] BSD_32 = { 8, 48, 32, 12, 16}; private static final int[] BSD_64 = { 8, 72, 40, 12, 16}; private static final int[] SUN_OS_32 = {20, 48, 64, 28, 32}; @@ -399,7 +400,10 @@ public class FileSystemUtil { private JnaUnixMediatorImpl() throws Exception { if (SystemInfo.isLinux) { - if ("ppc".equals(SystemInfo.OS_ARCH)) { + if ("arm".equals(SystemInfo.OS_ARCH)) { + myOffsets = LINUX_ARM; + } + else if ("ppc".equals(SystemInfo.OS_ARCH)) { myOffsets = SystemInfo.is32Bit ? LNX_PPC32 : LNX_PPC64; } else {