aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-04-20 15:20:12 -0700
committerGitHub <noreply@github.com>2023-04-20 15:20:12 -0700
commit304e4082a0a50c2a6dfbba2a1985cf772edb9e73 (patch)
tree959bfcee9176e487dfcd4488ada99364658f9a37 /lib
parentfac120bc3ad58a10ab80952e42becd0084aec059 (diff)
parentceff2782029672714ac2e04a7b3e25af23eb9a9b (diff)
downloadzig-304e4082a0a50c2a6dfbba2a1985cf772edb9e73.tar.gz
zig-304e4082a0a50c2a6dfbba2a1985cf772edb9e73.zip
Merge pull request #15193 from davidgm94/dwarf-64-bit-format
Expose an option for producing 64-bit DWARF format
Diffstat (limited to 'lib')
-rw-r--r--lib/std/Build/CompileStep.zig8
-rw-r--r--lib/std/dwarf.zig2
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/std/Build/CompileStep.zig b/lib/std/Build/CompileStep.zig
index 9340ec8d99..b71298ce6a 100644
--- a/lib/std/Build/CompileStep.zig
+++ b/lib/std/Build/CompileStep.zig
@@ -69,6 +69,7 @@ disable_stack_probing: bool,
disable_sanitize_c: bool,
sanitize_thread: bool,
rdynamic: bool,
+dwarf_format: ?std.dwarf.Format = null,
import_memory: bool = false,
/// For WebAssembly targets, this will allow for undefined symbols to
/// be imported from the host environment.
@@ -1450,6 +1451,13 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void {
try addFlag(&zig_args, "strip", self.strip);
try addFlag(&zig_args, "unwind-tables", self.unwind_tables);
+ if (self.dwarf_format) |dwarf_format| {
+ try zig_args.append(switch (dwarf_format) {
+ .@"32" => "-gdwarf32",
+ .@"64" => "-gdwarf64",
+ });
+ }
+
switch (self.compress_debug_sections) {
.none => {},
.zlib => try zig_args.append("--compress-debug-sections=zlib"),
diff --git a/lib/std/dwarf.zig b/lib/std/dwarf.zig
index 99dff14c36..d7b4e29947 100644
--- a/lib/std/dwarf.zig
+++ b/lib/std/dwarf.zig
@@ -147,6 +147,8 @@ pub const CC = enum(u8) {
GNU_borland_fastcall_i386 = 0x41,
};
+pub const Format = enum { @"32", @"64" };
+
const PcRange = struct {
start: u64,
end: u64,