@@ -6,6 +6,9 @@ import Glibc
66#elseif canImport(Musl)
77import CSystem
88import Musl
9+ #elseif canImport(Android)
10+ import CSystem
11+ import Android
912#elseif os(Windows)
1013import CSystem
1114import ucrt
@@ -34,7 +37,7 @@ internal var _AT_FDONLY: CInt { AT_FDONLY }
3437internal var _AT_SYMLINK_NOFOLLOW_ANY : CInt { AT_SYMLINK_NOFOLLOW_ANY }
3538#endif
3639/* FIXME: Disabled until CSystem will include "linux/fcntl.h"
37- #if os(Linux)
40+ #if os(Linux) || os(Android)
3841@_alwaysEmitIntoClient
3942internal var _AT_NO_AUTOMOUNT: CInt { AT_NO_AUTOMOUNT }
4043#endif
@@ -45,9 +48,14 @@ internal var _AT_NO_AUTOMOUNT: CInt { AT_NO_AUTOMOUNT }
4548internal var _F_GETFL : CInt { F_GETFL }
4649@_alwaysEmitIntoClient
4750internal var _O_DSYNC : CInt { O_DSYNC }
51+ #if os(Android)
52+ @_alwaysEmitIntoClient
53+ internal var _O_SYNC : CInt { __O_SYNC | O_DSYNC }
54+ #else
4855@_alwaysEmitIntoClient
4956internal var _O_SYNC : CInt { O_SYNC }
5057#endif
58+ #endif
5159#if os(Linux)
5260@_alwaysEmitIntoClient
5361internal var _O_RSYNC : CInt { O_RSYNC }
@@ -56,7 +64,7 @@ internal var _O_RSYNC: CInt { O_RSYNC }
5664#if !os(Windows)
5765@_alwaysEmitIntoClient
5866internal var _UTIME_NOW : CInt {
59- #if os(Linux)
67+ #if os(Linux) || os(Android)
6068 // Hard-code constants because it's defined in glibc in a form that
6169 // ClangImporter cannot interpret as constants.
6270 // https://github.com/torvalds/linux/blob/92901222f83d988617aee37680cb29e1a743b5e4/include/linux/stat.h#L15
@@ -67,7 +75,7 @@ internal var _UTIME_NOW: CInt {
6775}
6876@_alwaysEmitIntoClient
6977internal var _UTIME_OMIT : CInt {
70- #if os(Linux)
78+ #if os(Linux) || os(Android)
7179 // Hard-code constants because it's defined in glibc in a form that
7280 // ClangImporter cannot interpret as constants.
7381 // https://github.com/torvalds/linux/blob/92901222f83d988617aee37680cb29e1a743b5e4/include/linux/stat.h#L16
@@ -116,15 +124,15 @@ internal var _S_IFLNK: CInterop.Mode { S_IFLNK }
116124internal var _S_IFSOCK : CInterop . Mode { S_IFSOCK }
117125#endif
118126
119- #if os(Linux)
127+ #if os(Linux) || os(Android)
120128@_alwaysEmitIntoClient
121129internal var _CLOCK_BOOTTIME : CInterop . ClockId { CLOCK_BOOTTIME }
122130#endif
123131#if SYSTEM_PACKAGE_DARWIN
124132@_alwaysEmitIntoClient
125133internal var _CLOCK_MONOTONIC_RAW : CInterop . ClockId { CLOCK_MONOTONIC_RAW }
126134#endif
127- #if SYSTEM_PACKAGE_DARWIN || os(Linux) || os(OpenBSD) || os(FreeBSD) || os(WASI)
135+ #if SYSTEM_PACKAGE_DARWIN || os(Linux) || os(Android) || os( OpenBSD) || os(FreeBSD) || os(WASI)
128136@_alwaysEmitIntoClient
129137internal var _CLOCK_MONOTONIC : CInterop . ClockId { CLOCK_MONOTONIC }
130138#endif
0 commit comments