Skip to content

Commit c15a5e1

Browse files
authored
[Android] Use the Bionic module in more places (#842)
Also, use `canImport()` wherever importing APIs, reserving `os(Android)` for platform differences.
1 parent 52e28a3 commit c15a5e1

29 files changed

+52
-52
lines changed

Sources/FoundationEssentials/Calendar/Calendar.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
#if canImport(Darwin)
1414
internal import os
15-
#elseif os(Android)
16-
import Android
15+
#elseif canImport(Bionic)
16+
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc
1919
#elseif canImport(Musl)

Sources/FoundationEssentials/Calendar/Calendar_Gregorian.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
#if canImport(os)
1414
internal import os
15-
#elseif os(Android)
16-
import Android
15+
#elseif canImport(Bionic)
16+
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc
1919
#elseif canImport(Musl)

Sources/FoundationEssentials/CodableUtilities.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Bionic)
1616
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/Data/Data+Reading.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ internal import _FoundationCShims
1818

1919
#if canImport(Darwin)
2020
import Darwin
21-
#elseif os(Android)
21+
#elseif canImport(Android)
2222
import Android
2323
#elseif canImport(Glibc)
2424
import Glibc
@@ -377,7 +377,7 @@ internal func readBytesFromFile(path inPath: PathOrURL, reportProgress: Bool, ma
377377
localProgress?.completedUnitCount = 1
378378
} else if shouldMap {
379379
#if !NO_FILESYSTEM
380-
#if os(Android)
380+
#if canImport(Android)
381381
let bytes = mmap(nil, Int(fileSize), PROT_READ, MAP_PRIVATE, fd, 0)
382382
if bytes == UnsafeMutableRawPointer(bitPattern: -1) {
383383
throw CocoaError.errorWithFilePath(inPath, errno: errno, reading: true)

Sources/FoundationEssentials/Data/Data+Writing.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal import _FoundationCShims
1919

2020
#if canImport(Darwin)
2121
import Darwin
22-
#elseif os(Android)
22+
#elseif canImport(Android)
2323
import Android
2424
import unistd
2525
#elseif canImport(Glibc)

Sources/FoundationEssentials/Data/Data.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
@usableFromInline let memset = ucrt.memset
1818
@usableFromInline let memcpy = ucrt.memcpy
1919
@usableFromInline let memcmp = ucrt.memcmp
20-
#elseif os(Android)
20+
#elseif canImport(Bionic)
2121
import Bionic
2222
@usableFromInline let calloc = Bionic.calloc
2323
@usableFromInline let malloc = Bionic.malloc

Sources/FoundationEssentials/Date.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Bionic)
1616
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/Decimal/Decimal+Math.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
16-
import Android
15+
#elseif canImport(Bionic)
16+
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc
1919
#elseif canImport(Musl)

Sources/FoundationEssentials/Error/CocoaError+FilePath.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal import _ForSwiftFoundation
1515

1616
#if canImport(Darwin)
1717
import Darwin
18-
#elseif os(Android)
18+
#elseif canImport(Bionic)
1919
import Bionic
2020
#elseif canImport(Glibc)
2121
import Glibc

Sources/FoundationEssentials/Error/ErrorCodes+POSIX.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
//===----------------------------------------------------------------------===//
1111

1212
// Import for POSIXErrorCode
13-
#if os(Android)
13+
#if canImport(Android)
1414
@preconcurrency import Android
1515
#elseif canImport(Glibc)
1616
@preconcurrency import Glibc

Sources/FoundationEssentials/FileManager/FileManager+Basics.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Android)
1616
import Android
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/FileManager/FileManager+Directories.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ internal import os
1818

1919
#if canImport(Darwin)
2020
import Darwin
21-
#elseif os(Android)
21+
#elseif canImport(Android)
2222
import Android
2323
import unistd
2424
#elseif canImport(Glibc)

Sources/FoundationEssentials/FileManager/FileManager+Files.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ internal import DarwinPrivate.sys.content_protection
1717

1818
#if canImport(Darwin)
1919
import Darwin
20-
#elseif os(Android)
20+
#elseif canImport(Android)
2121
import Android
2222
import posix_filesystem
2323
#elseif canImport(Glibc)

Sources/FoundationEssentials/FileManager/FileManager+SymbolicLinks.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Android)
1616
import Android
1717
import unistd
1818
#elseif canImport(Glibc)

Sources/FoundationEssentials/FileManager/FileManager+Utilities.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ internal import QuarantinePrivate
2323

2424
#if canImport(Darwin)
2525
import Darwin
26-
#elseif os(Android)
26+
#elseif canImport(Android)
2727
import Android
2828
#elseif canImport(Glibc)
2929
import Glibc

Sources/FoundationEssentials/FileManager/FileOperations+Enumeration.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ struct _Win32DirectoryContentsSequence: Sequence {
109109

110110
#if canImport(Darwin)
111111
import Darwin
112-
#elseif os(Android)
112+
#elseif canImport(Android)
113113
import Android
114114
import posix_filesystem.dirent
115115
#elseif canImport(Glibc)
@@ -328,7 +328,7 @@ extension Sequence<_FTSSequence.Element> {
328328
struct _POSIXDirectoryContentsSequence: Sequence {
329329
#if canImport(Darwin)
330330
typealias DirectoryEntryPtr = UnsafeMutablePointer<DIR>
331-
#elseif os(Android) || canImport(Glibc) || canImport(Musl) || os(WASI)
331+
#elseif canImport(Android) || canImport(Glibc) || canImport(Musl) || os(WASI)
332332
typealias DirectoryEntryPtr = OpaquePointer
333333
#endif
334334

Sources/FoundationEssentials/FileManager/FileOperations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Android)
1616
import Android
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/Formatting/BinaryInteger+NumericStringRepresentation.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
16-
import Android
15+
#elseif canImport(Bionic)
16+
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc
1919
#elseif canImport(Musl)

Sources/FoundationEssentials/LockedState.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal import os
1515
#if FOUNDATION_FRAMEWORK && canImport(C.os.lock)
1616
internal import C.os.lock
1717
#endif
18-
#elseif os(Android)
18+
#elseif canImport(Bionic)
1919
import Bionic
2020
#elseif canImport(Glibc)
2121
import Glibc
@@ -31,7 +31,7 @@ package struct LockedState<State> {
3131
private struct _Lock {
3232
#if canImport(os)
3333
typealias Primitive = os_unfair_lock
34-
#elseif os(Android) || canImport(Glibc) || canImport(Musl)
34+
#elseif canImport(Bionic) || canImport(Glibc) || canImport(Musl)
3535
typealias Primitive = pthread_mutex_t
3636
#elseif canImport(WinSDK)
3737
typealias Primitive = SRWLOCK
@@ -46,7 +46,7 @@ package struct LockedState<State> {
4646
fileprivate static func initialize(_ platformLock: PlatformLock) {
4747
#if canImport(os)
4848
platformLock.initialize(to: os_unfair_lock())
49-
#elseif os(Android) || canImport(Glibc)
49+
#elseif canImport(Bionic) || canImport(Glibc)
5050
pthread_mutex_init(platformLock, nil)
5151
#elseif canImport(WinSDK)
5252
InitializeSRWLock(platformLock)
@@ -56,7 +56,7 @@ package struct LockedState<State> {
5656
}
5757

5858
fileprivate static func deinitialize(_ platformLock: PlatformLock) {
59-
#if os(Android) || canImport(Glibc)
59+
#if canImport(Bionic) || canImport(Glibc)
6060
pthread_mutex_destroy(platformLock)
6161
#endif
6262
platformLock.deinitialize(count: 1)
@@ -65,7 +65,7 @@ package struct LockedState<State> {
6565
static fileprivate func lock(_ platformLock: PlatformLock) {
6666
#if canImport(os)
6767
os_unfair_lock_lock(platformLock)
68-
#elseif os(Android) || canImport(Glibc)
68+
#elseif canImport(Bionic) || canImport(Glibc)
6969
pthread_mutex_lock(platformLock)
7070
#elseif canImport(WinSDK)
7171
AcquireSRWLockExclusive(platformLock)
@@ -77,7 +77,7 @@ package struct LockedState<State> {
7777
static fileprivate func unlock(_ platformLock: PlatformLock) {
7878
#if canImport(os)
7979
os_unfair_lock_unlock(platformLock)
80-
#elseif os(Android) || canImport(Glibc)
80+
#elseif canImport(Bionic) || canImport(Glibc)
8181
pthread_mutex_unlock(platformLock)
8282
#elseif canImport(WinSDK)
8383
ReleaseSRWLockExclusive(platformLock)

Sources/FoundationEssentials/Platform.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ fileprivate let _pageSize: Int = {
2828
#elseif os(WASI)
2929
// WebAssembly defines a fixed page size
3030
fileprivate let _pageSize: Int = 65_536
31-
#elseif os(Android)
31+
#elseif canImport(Android)
3232
import Bionic
3333
import unistd
3434
fileprivate let _pageSize: Int = Int(getpagesize())
@@ -175,7 +175,7 @@ extension Platform {
175175
// FIXME: bionic implements this as `return 0;` and does not expose the
176176
// function via headers. We should be able to shim this and use the call
177177
// if it is available.
178-
#if !os(Android) && !os(WASI)
178+
#if !canImport(Android) && !os(WASI)
179179
guard issetugid() == 0 else { return nil }
180180
#endif
181181
if let value = getenv(name) {

Sources/FoundationEssentials/ProcessInfo/ProcessInfo.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ internal import _FoundationCShims
1414

1515
#if canImport(Darwin)
1616
import Darwin
17-
#elseif os(Android)
17+
#elseif canImport(Android)
1818
import Bionic
1919
import unistd
2020
#elseif canImport(Glibc)
@@ -175,7 +175,7 @@ final class _ProcessInfo: Sendable {
175175
}
176176

177177
var userName: String {
178-
#if canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
178+
#if canImport(Darwin) || canImport(Android) || canImport(Glibc) || canImport(Musl)
179179
// Darwin and Linux
180180
let (euid, _) = Platform.getUGIDs()
181181
if let upwd = getpwuid(euid),
@@ -210,10 +210,10 @@ final class _ProcessInfo: Sendable {
210210
}
211211

212212
var fullUserName: String {
213-
#if os(Android) && (arch(i386) || arch(arm))
213+
#if canImport(Android) && (arch(i386) || arch(arm))
214214
// On LP32 Android, pw_gecos doesn't exist and is presumed to be NULL.
215215
return ""
216-
#elseif canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
216+
#elseif canImport(Darwin) || canImport(Android) || canImport(Glibc) || canImport(Musl)
217217
let (euid, _) = Platform.getUGIDs()
218218
if let upwd = getpwuid(euid),
219219
let fullname = upwd.pointee.pw_gecos {
@@ -378,7 +378,7 @@ extension _ProcessInfo {
378378
}
379379

380380
var operatingSystemVersion: (major: Int, minor: Int, patch: Int) {
381-
#if canImport(Darwin) || os(Linux) || os(FreeBSD) || os(OpenBSD) || os(Android)
381+
#if canImport(Darwin) || os(Linux) || os(FreeBSD) || os(OpenBSD) || canImport(Android)
382382
var uts: utsname = utsname()
383383
guard uname(&uts) == 0 else {
384384
return (major: -1, minor: 0, patch: 0)

Sources/FoundationEssentials/PropertyList/OpenStepPlist.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Bionic)
1616
import Bionic
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/String/String+Path.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
internal import os
15-
#elseif os(Android)
15+
#elseif canImport(Android)
1616
import Android
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/TimeZone/TimeZone_Cache.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#if canImport(Darwin)
1414
import Darwin
15-
#elseif os(Android)
15+
#elseif canImport(Android)
1616
import unistd
1717
#elseif canImport(Glibc)
1818
import Glibc

Sources/FoundationEssentials/_ThreadLocal.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
#if canImport(Darwin)
1313
import Darwin
14-
#elseif os(Android)
14+
#elseif canImport(Bionic)
1515
import Bionic
1616
#elseif canImport(Glibc)
1717
import Glibc
@@ -26,7 +26,7 @@ internal import threads
2626
#endif
2727

2828
struct _ThreadLocal {
29-
#if canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
29+
#if canImport(Darwin) || canImport(Bionic) || canImport(Glibc) || canImport(Musl)
3030
fileprivate typealias PlatformKey = pthread_key_t
3131
#elseif USE_TSS
3232
fileprivate typealias PlatformKey = tss_t
@@ -40,7 +40,7 @@ struct _ThreadLocal {
4040
fileprivate let key: PlatformKey
4141

4242
init() {
43-
#if canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
43+
#if canImport(Darwin) || canImport(Bionic) || canImport(Glibc) || canImport(Musl)
4444
var key = PlatformKey()
4545
pthread_key_create(&key, nil)
4646
self.key = key
@@ -58,7 +58,7 @@ struct _ThreadLocal {
5858

5959
private static subscript(_ key: PlatformKey) -> UnsafeMutableRawPointer? {
6060
get {
61-
#if canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
61+
#if canImport(Darwin) || canImport(Bionic) || canImport(Glibc) || canImport(Musl)
6262
pthread_getspecific(key)
6363
#elseif USE_TSS
6464
tss_get(key)
@@ -70,7 +70,7 @@ struct _ThreadLocal {
7070
}
7171

7272
set {
73-
#if canImport(Darwin) || os(Android) || canImport(Glibc) || canImport(Musl)
73+
#if canImport(Darwin) || canImport(Bionic) || canImport(Glibc) || canImport(Musl)
7474
pthread_setspecific(key, newValue)
7575
#elseif USE_TSS
7676
tss_set(key, newValue)

Sources/FoundationInternationalization/Calendar/Calendar_ICU.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import FoundationEssentials
1515
#endif
1616

17-
#if os(Android)
17+
#if canImport(Android)
1818
import Android
1919
#elseif canImport(Glibc)
2020
import Glibc

Sources/FoundationInternationalization/Date+ICU.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import FoundationEssentials
1515

1616
internal import _FoundationICU
1717

18-
#if os(Android)
19-
import Android
18+
#if canImport(Bionic)
19+
import Bionic
2020
#elseif canImport(Glibc)
2121
import Glibc
2222
#elseif canImport(Musl)

0 commit comments

Comments
 (0)