Skip to content

Commit 73fd7d6

Browse files
committed
[android] Add missing POSIX/Linux headers to Android build.
Reviewed the cases of Glibc where branching occurred and checked the skipped headers against the Android NDK sysroot, and added the Android check in the right places. This will give access to a lot more functions from libc.
1 parent 9850150 commit 73fd7d6

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

stdlib/public/Platform/glibc.modulemap.gyb

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ module SwiftGlibc [system] {
4747
export *
4848
}
4949
% end
50-
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN", "HAIKU"]:
50+
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN", "HAIKU", "ANDROID"]:
5151
module complex {
5252
header "${GLIBC_INCLUDE_PATH}/complex.h"
5353
export *
5454
}
5555
% end
56-
% if CMAKE_SDK in ["LINUX", "CYGWIN"]:
56+
% if CMAKE_SDK in ["LINUX", "CYGWIN", "ANDROID"]:
5757
module pty {
5858
header "${GLIBC_INCLUDE_PATH}/pty.h"
5959
export *
@@ -181,7 +181,7 @@ module SwiftGlibc [system] {
181181

182182
// POSIX
183183
module POSIX {
184-
% if CMAKE_SDK in ["LINUX", "CYGWIN"]:
184+
% if CMAKE_SDK in ["LINUX", "CYGWIN", "ANDROID"]:
185185
module wait {
186186
header "${GLIBC_INCLUDE_PATH}/wait.h"
187187
export *
@@ -210,8 +210,18 @@ module SwiftGlibc [system] {
210210
export *
211211
}
212212
% end
213+
% if CMAKE_SDK == "ANDROID":
214+
module cpio {
215+
header "${GLIBC_INCLUDE_PATH}/cpio.h"
216+
export *
217+
}
218+
module nl_types {
219+
header "${GLIBC_INCLUDE_PATH}/nl_types.h"
220+
export *
221+
}
222+
% end
213223

214-
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN"]:
224+
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN", "ANDROID"]:
215225
module ftw {
216226
header "${GLIBC_INCLUDE_PATH}/ftw.h"
217227
export *
@@ -228,10 +238,12 @@ module SwiftGlibc [system] {
228238
header "${GLIBC_INCLUDE_PATH}/langinfo.h"
229239
export *
230240
}
241+
% if CMAKE_SDK != "ANDROID":
231242
module monetary {
232243
header "${GLIBC_INCLUDE_PATH}/monetary.h"
233244
export *
234245
}
246+
% end
235247
module netdb {
236248
header "${GLIBC_INCLUDE_PATH}/netdb.h"
237249
export *
@@ -256,6 +268,7 @@ module SwiftGlibc [system] {
256268
header "${GLIBC_INCLUDE_PATH}/tar.h"
257269
export *
258270
}
271+
% if CMAKE_SDK != "ANDROID":
259272
module utmpx {
260273
header "${GLIBC_INCLUDE_PATH}/utmpx.h"
261274
export *
@@ -265,6 +278,7 @@ module SwiftGlibc [system] {
265278
export *
266279
}
267280
% end
281+
% end
268282

269283
% if CMAKE_SDK == "HAIKU":
270284
module ftw {
@@ -393,7 +407,7 @@ module SwiftGlibc [system] {
393407
module sys {
394408
export *
395409

396-
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN", "HAIKU"]:
410+
% if CMAKE_SDK in ["LINUX", "FREEBSD", "CYGWIN", "HAIKU", "ANDROID"]:
397411
module file {
398412
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/file.h"
399413
export *
@@ -478,7 +492,7 @@ module SwiftGlibc [system] {
478492
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/un.h"
479493
export *
480494
}
481-
% if CMAKE_SDK in ["LINUX"]:
495+
% if CMAKE_SDK in ["LINUX", "ANDROID"]:
482496
module user {
483497
header "${GLIBC_ARCH_INCLUDE_PATH}/sys/user.h"
484498
export *
@@ -493,7 +507,7 @@ module SwiftGlibc [system] {
493507
export *
494508
}
495509
}
496-
% if CMAKE_SDK in ["LINUX", "FREEBSD"]:
510+
% if CMAKE_SDK in ["LINUX", "FREEBSD", "ANDROID"]:
497511
module sysexits {
498512
header "${GLIBC_INCLUDE_PATH}/sysexits.h"
499513
export *

0 commit comments

Comments
 (0)