zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 332add7a65003a700c5513f153d8e1362009e35c (tree)
parent f38d7a92cc1ca8059ba909a82f2f944966b52296
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Wed,  8 Jan 2025 18:11:07 +0100

libunwind: Build C files with -fexceptions.

See: https://github.com/llvm/llvm-project/pull/121819

This fixes LTO for libunwind, so also re-enable support for that.

Closes #12828.

Diffstat:
Msrc/libunwind.zig | 17++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/libunwind.zig b/src/libunwind.zig @@ -36,8 +36,7 @@ pub fn buildStaticLib(comp: *Compilation, prog_node: std.Progress.Node) BuildErr .root_optimize_mode = comp.compilerRtOptMode(), .root_strip = comp.compilerRtStrip(), .link_libc = true, - // Disable LTO to avoid https://github.com/llvm/llvm-project/issues/56825 - .lto = .none, + .lto = comp.config.lto, }) catch |err| { comp.setMiscFailure( .libunwind, @@ -102,18 +101,18 @@ pub fn buildStaticLib(comp: *Compilation, prog_node: std.Progress.Node) BuildErr switch (Compilation.classifyFileExt(unwind_src)) { .c => { - try cflags.append("-std=c17"); + try cflags.appendSlice(&.{ + "-std=c99", + "-fexceptions", + }); }, .cpp => { - try cflags.appendSlice(&[_][]const u8{ - "-std=c++17", - "-fno-rtti", - }); + try cflags.append("-fno-exceptions"); + try cflags.append("-fno-rtti"); }, .assembly_with_cpp => {}, - else => unreachable, // You can see the entire list of files just above. + else => unreachable, // See `unwind_src_list`. } - try cflags.append("-fno-exceptions"); try cflags.append("-I"); try cflags.append(try comp.zig_lib_directory.join(arena, &[_][]const u8{ "libunwind", "include" })); try cflags.append("-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS");