Commit f9859c102d

Andrew Kelley <andrew@ziglang.org>
2022-09-13 20:38:14
fix libc++ exceptions for musl targets
This reverts commit d31be31267523cadd6d59b52633f2d4a9758a3b4. The problem was happening due to an LLVM bug exposed by having LTO enabled for libunwind. The simple workaround is to disable LTO for libunwind. It can be re-enabled in the future when the upstream bug is fixed. See #12828
1 parent cdb4093
Changed files (2)
src
test
standalone
c_compiler
src/libunwind.zig
@@ -109,7 +109,8 @@ pub fn buildStaticLib(comp: *Compilation) !void {
         .want_tsan = false,
         .want_pic = comp.bin_file.options.pic,
         .want_pie = comp.bin_file.options.pie,
-        .want_lto = comp.bin_file.options.lto,
+        // Disable LTO to avoid https://github.com/llvm/llvm-project/issues/56825
+        .want_lto = false,
         .function_sections = comp.bin_file.options.function_sections,
         .emit_h = null,
         .strip = comp.compilerRtStrip(),
test/standalone/c_compiler/build.zig
@@ -12,15 +12,9 @@ fn isRunnableTarget(t: CrossTarget) bool {
 }
 
 pub fn build(b: *Builder) void {
-    var mode = b.standardReleaseOptions();
+    const mode = b.standardReleaseOptions();
     const target = b.standardTargetOptions(.{});
 
-    if (mode != .Debug and target.getAbi().isMusl()) {
-        // https://github.com/ziglang/zig/issues/12828
-        std.debug.print("warn: skipping musl libc++ test that regressed with LLVM 15\n", .{});
-        mode = .Debug;
-    }
-
     const test_step = b.step("test", "Test the program");
 
     const exe_c = b.addExecutable("test_c", null);