authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-01-25 14:53:25+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-01-25 14:58:55+01:00
log9f116d38b8fcc71570f6aed6707ed769b22ceea3
treefd7b3cd6ae0c7d7459d6461b18bbec73be02bf76
parent46a1a158617da904fa381b8fcba8d975c30e4e0a
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

libtsan: Build with unwind tables like upstream.


1 files changed, 4 insertions(+), 0 deletions(-)

src/libtsan.zig+4
......@@ -53,6 +53,8 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
5353 const optimize_mode = comp.compilerRtOptMode();
5454 const strip = comp.compilerRtStrip();
5555 const link_libcpp = target.isDarwin();
56 const unwind_tables: std.builtin.UnwindTables =
57 if (target.cpu.arch == .x86 and target.os.tag == .windows) .none else .@"async";
5658
5759 const config = Compilation.Config.resolve(.{
5860 .output_mode = output_mode,
......@@ -65,6 +67,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
6567 .root_strip = strip,
6668 .link_libc = true,
6769 .link_libcpp = link_libcpp,
70 .any_unwind_tables = unwind_tables != .none,
6871 // LLVM disables LTO for its libtsan.
6972 .lto = .none,
7073 }) catch |err| {
......@@ -97,6 +100,7 @@ pub fn buildTsan(comp: *Compilation, prog_node: std.Progress.Node) BuildError!vo
97100 .red_zone = comp.root_mod.red_zone,
98101 .omit_frame_pointer = optimize_mode != .Debug and !target.os.tag.isDarwin(),
99102 .valgrind = false,
103 .unwind_tables = unwind_tables,
100104 .optimize_mode = optimize_mode,
101105 .structured_cfg = comp.root_mod.structured_cfg,
102106 .pic = true,