From d103d7ae343cd005bf963662a6cbb3147223ad99 Mon Sep 17 00:00:00 2001 From: Butta Date: Sat, 3 Apr 2021 15:32:53 +0530 Subject: [PATCH 1/2] Fix compiling for 32-bit ARM platforms --- Sources/TSCUtility/FSWatch.swift | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/Sources/TSCUtility/FSWatch.swift b/Sources/TSCUtility/FSWatch.swift index 1b37e0f1..d40db584 100644 --- a/Sources/TSCUtility/FSWatch.swift +++ b/Sources/TSCUtility/FSWatch.swift @@ -428,11 +428,21 @@ public final class Inotify { // FIXME: Swift should provide shims for FD_ macros private func FD_ZERO(_ set: inout fd_set) { - #if os(Android) - set.fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - #else - set.__fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - #endif + #if os(Android) + #if arch(arm) + set.fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + #else + set.fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + #endif + #else + #if arch(arm) + set.__fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + #else + set.__fds_bits = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + #endif + #endif } private func FD_SET(_ fd: Int32, _ set: inout fd_set) { From 96b77020abd2fa0651e4f268ccc309352e29fa06 Mon Sep 17 00:00:00 2001 From: Umberto Raimondi Date: Mon, 5 Apr 2021 19:32:54 +0200 Subject: [PATCH 2/2] Fix FD_SET and FD_ISSET on arm32 --- Sources/TSCUtility/FSWatch.swift | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/Sources/TSCUtility/FSWatch.swift b/Sources/TSCUtility/FSWatch.swift index d40db584..bd5b2c79 100644 --- a/Sources/TSCUtility/FSWatch.swift +++ b/Sources/TSCUtility/FSWatch.swift @@ -472,6 +472,24 @@ private func FD_SET(_ fd: Int32, _ set: inout fd_set) { case 13: fd_bits.13 = fd_bits.13 | mask case 14: fd_bits.14 = fd_bits.14 | mask case 15: fd_bits.15 = fd_bits.15 | mask + #if arch(arm) + case 16: fd_bits.16 = fd_bits.16 | mask + case 17: fd_bits.17 = fd_bits.17 | mask + case 18: fd_bits.18 = fd_bits.18 | mask + case 19: fd_bits.19 = fd_bits.19 | mask + case 20: fd_bits.20 = fd_bits.20 | mask + case 21: fd_bits.21 = fd_bits.21 | mask + case 22: fd_bits.22 = fd_bits.22 | mask + case 23: fd_bits.23 = fd_bits.23 | mask + case 24: fd_bits.24 = fd_bits.24 | mask + case 25: fd_bits.25 = fd_bits.25 | mask + case 26: fd_bits.26 = fd_bits.26 | mask + case 27: fd_bits.27 = fd_bits.27 | mask + case 28: fd_bits.28 = fd_bits.28 | mask + case 29: fd_bits.29 = fd_bits.29 | mask + case 30: fd_bits.30 = fd_bits.30 | mask + case 31: fd_bits.31 = fd_bits.31 | mask + #endif default: break } #if os(Android) @@ -508,6 +526,24 @@ private func FD_ISSET(_ fd: Int32, _ set: inout fd_set) -> Bool { case 13: return fd_bits.13 & mask != 0 case 14: return fd_bits.14 & mask != 0 case 15: return fd_bits.15 & mask != 0 + #if arch(arm) + case 16: return fd_bits.16 & mask != 0 + case 17: return fd_bits.17 & mask != 0 + case 18: return fd_bits.18 & mask != 0 + case 19: return fd_bits.19 & mask != 0 + case 20: return fd_bits.20 & mask != 0 + case 21: return fd_bits.21 & mask != 0 + case 22: return fd_bits.22 & mask != 0 + case 23: return fd_bits.23 & mask != 0 + case 24: return fd_bits.24 & mask != 0 + case 25: return fd_bits.25 & mask != 0 + case 26: return fd_bits.26 & mask != 0 + case 27: return fd_bits.27 & mask != 0 + case 28: return fd_bits.28 & mask != 0 + case 29: return fd_bits.29 & mask != 0 + case 30: return fd_bits.30 & mask != 0 + case 31: return fd_bits.31 & mask != 0 + #endif default: return false } }