diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-07-06 22:19:08 +0200 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-07-07 07:23:24 +0200 |
| commit | b5cc658ab4113b4db4f709dbec258910696990bd (patch) | |
| tree | 7864e25eda40d6850582da4109e988b72df5bd2d /src/target.zig | |
| parent | c96c913bab00bcae42991244381ddcc8b2377552 (diff) | |
| download | zig-b5cc658ab4113b4db4f709dbec258910696990bd.tar.gz zig-b5cc658ab4113b4db4f709dbec258910696990bd.zip | |
llvm: Use emulated TLS when appropriate for the target
Closes #24236.
Diffstat (limited to 'src/target.zig')
| -rw-r--r-- | src/target.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/target.zig b/src/target.zig index 28cdf3e3aa..7852dda7a4 100644 --- a/src/target.zig +++ b/src/target.zig @@ -85,6 +85,19 @@ pub fn defaultSingleThreaded(target: *const std.Target) bool { return false; } +pub fn useEmulatedTls(target: *const std.Target) bool { + if (target.abi.isAndroid()) { + if (target.os.version_range.linux.android < 29) return true; + return false; + } + if (target.abi.isOpenHarmony()) return true; + return switch (target.os.tag) { + .openbsd => true, + .windows => target.abi == .cygnus, + else => false, + }; +} + pub fn hasValgrindSupport(target: *const std.Target, backend: std.builtin.CompilerBackend) bool { // We can't currently output the necessary Valgrind client request assembly when using the C // backend and compiling with an MSVC-like compiler. |
