| ... | @@ -29,11 +29,11 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo | ... | @@ -29,11 +29,11 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo |
| 29 | const root_name = switch (target.os.tag) { | 29 | const root_name = switch (target.os.tag) { |
| 30 | // On Apple platforms, we use the same name as LLVM because the | 30 | // On Apple platforms, we use the same name as LLVM because the |
| 31 | // TSAN library implementation hard-codes a check for these names. | 31 | // TSAN library implementation hard-codes a check for these names. |
| 32 | .macos => "clang_rt.tsan_osx_dynamic", | 32 | .driverkit, .macos => "clang_rt.tsan_osx_dynamic", |
| 33 | .ios => switch (target.abi) { | 33 | .ios => if (target.abi == .simulator) "clang_rt.tsan_iossim_dynamic" else "clang_rt.tsan_ios_dynamic", |
| 34 | .simulator => "clang_rt.tsan_iossim_dynamic", | 34 | .tvos => if (target.abi == .simulator) "clang_rt.tsan_tvossim_dynamic" else "clang_rt.tsan_tvos_dynamic", |
| 35 | else => "clang_rt.tsan_ios_dynamic", | 35 | .visionos => if (target.abi == .simulator) "clang_rt.tsan_xrossim_dynamic" else "clang_rt.tsan_xros_dynamic", |
| 36 | }, | 36 | .watchos => if (target.abi == .simulator) "clang_rt.tsan_watchossim_dynamic" else "clang_rt.tsan_watchos_dynamic", |
| 37 | else => "tsan", | 37 | else => "tsan", |
| 38 | }; | 38 | }; |
| 39 | const link_mode: std.builtin.LinkMode = if (target.isDarwin()) .dynamic else .static; | 39 | const link_mode: std.builtin.LinkMode = if (target.isDarwin()) .dynamic else .static; |