@@ -6,6 +6,9 @@ import Glibc
6
6
#elseif canImport(Musl)
7
7
import CSystem
8
8
import Musl
9
+ #elseif canImport(Android)
10
+ import CSystem
11
+ import Android
9
12
#elseif os(Windows)
10
13
import CSystem
11
14
import ucrt
@@ -34,7 +37,7 @@ internal var _AT_FDONLY: CInt { AT_FDONLY }
34
37
internal var _AT_SYMLINK_NOFOLLOW_ANY : CInt { AT_SYMLINK_NOFOLLOW_ANY }
35
38
#endif
36
39
/* FIXME: Disabled until CSystem will include "linux/fcntl.h"
37
- #if os(Linux)
40
+ #if os(Linux) || os(Android)
38
41
@_alwaysEmitIntoClient
39
42
internal var _AT_NO_AUTOMOUNT: CInt { AT_NO_AUTOMOUNT }
40
43
#endif
@@ -45,9 +48,14 @@ internal var _AT_NO_AUTOMOUNT: CInt { AT_NO_AUTOMOUNT }
45
48
internal var _F_GETFL : CInt { F_GETFL }
46
49
@_alwaysEmitIntoClient
47
50
internal var _O_DSYNC : CInt { O_DSYNC }
51
+ #if os(Android)
52
+ @_alwaysEmitIntoClient
53
+ internal var _O_SYNC : CInt { __O_SYNC | O_DSYNC }
54
+ #else
48
55
@_alwaysEmitIntoClient
49
56
internal var _O_SYNC : CInt { O_SYNC }
50
57
#endif
58
+ #endif
51
59
#if os(Linux)
52
60
@_alwaysEmitIntoClient
53
61
internal var _O_RSYNC : CInt { O_RSYNC }
@@ -56,7 +64,7 @@ internal var _O_RSYNC: CInt { O_RSYNC }
56
64
#if !os(Windows)
57
65
@_alwaysEmitIntoClient
58
66
internal var _UTIME_NOW : CInt {
59
- #if os(Linux)
67
+ #if os(Linux) || os(Android)
60
68
// Hard-code constants because it's defined in glibc in a form that
61
69
// ClangImporter cannot interpret as constants.
62
70
// https://github.com/torvalds/linux/blob/92901222f83d988617aee37680cb29e1a743b5e4/include/linux/stat.h#L15
@@ -67,7 +75,7 @@ internal var _UTIME_NOW: CInt {
67
75
}
68
76
@_alwaysEmitIntoClient
69
77
internal var _UTIME_OMIT : CInt {
70
- #if os(Linux)
78
+ #if os(Linux) || os(Android)
71
79
// Hard-code constants because it's defined in glibc in a form that
72
80
// ClangImporter cannot interpret as constants.
73
81
// https://github.com/torvalds/linux/blob/92901222f83d988617aee37680cb29e1a743b5e4/include/linux/stat.h#L16
@@ -116,15 +124,15 @@ internal var _S_IFLNK: CInterop.Mode { S_IFLNK }
116
124
internal var _S_IFSOCK : CInterop . Mode { S_IFSOCK }
117
125
#endif
118
126
119
- #if os(Linux)
127
+ #if os(Linux) || os(Android)
120
128
@_alwaysEmitIntoClient
121
129
internal var _CLOCK_BOOTTIME : CInterop . ClockId { CLOCK_BOOTTIME }
122
130
#endif
123
131
#if SYSTEM_PACKAGE_DARWIN
124
132
@_alwaysEmitIntoClient
125
133
internal var _CLOCK_MONOTONIC_RAW : CInterop . ClockId { CLOCK_MONOTONIC_RAW }
126
134
#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)
128
136
@_alwaysEmitIntoClient
129
137
internal var _CLOCK_MONOTONIC : CInterop . ClockId { CLOCK_MONOTONIC }
130
138
#endif
0 commit comments