diff --git a/lib/compiler_rt/common.zig b/lib/compiler_rt/common.zig index a34b88429f534f1608d1559822dca92da20f281a..f0ea41f0ade48ca9d96527f9c77706bb62b8d243 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 379be7e23fe51f37c9032d5ad4e4492051b3cec5..c2a95f089f7afa10e39c1f2aa59976e845164117 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 c6ecd5135b3c4110b886fd664599ed23736f9d0c..8f551381ddd9a9f0f485c62844aec21c031ca8ea 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)), };