diff --git a/lib/compiler_rt/common.zig b/lib/compiler_rt/common.zig index a34b88429f..f0ea41f0ad 100644 --- a/lib/compiler_rt/common.zig +++ b/lib/compiler_rt/common.zig @@ -9,6 +9,7 @@ pub const want_aeabi = switch (builtin.abi) { .musleabihf, .gnueabi, .gnueabihf, + .android, => switch (builtin.cpu.arch) { .arm, .armeb, .thumb, .thumbeb => true, else => false, diff --git a/lib/compiler_rt/emutls.zig b/lib/compiler_rt/emutls.zig index 379be7e23f..c2a95f089f 100644 --- a/lib/compiler_rt/emutls.zig +++ b/lib/compiler_rt/emutls.zig @@ -18,7 +18,7 @@ const gcc_word = usize; pub const panic = common.panic; comptime { - if (builtin.link_libc and builtin.os.tag == .openbsd) { + if (builtin.link_libc and (builtin.abi == .android or builtin.os.tag == .openbsd)) { @export(__emutls_get_address, .{ .name = "__emutls_get_address", .linkage = common.linkage }); } } diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig index c6ecd5135b..8f551381dd 100644 --- a/lib/std/c/linux.zig +++ b/lib/std/c/linux.zig @@ -320,6 +320,9 @@ pub const pthread_rwlock_t = switch (native_abi) { size: [56]u8 align(@alignOf(usize)) = [_]u8{0} ** 56, }, }; +pub usingnamespace if (native_abi == .android) struct { + pub const pthread_key_t = c_int; +} else struct {}; pub const sem_t = extern struct { __size: [__SIZEOF_SEM_T]u8 align(@alignOf(usize)), };