mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
make LLVM and Clang emit DWARF 4 instead of 5
This reverts 6d679eb2bc and additionally
changes the command line parameters passed to Clang to match.
Clang 14 defaults to DWARFv5 which is an interesting choice. v5 has been
out for 5 years and yet Valgrind does not support it, and apparently
neither does either GDB or LLD, I haven't determined which, but I wasn't
able to use GDB to debug my LLVM-emitted dwarf 5 zig code that was linked
with LLD.
A couple years ago when I was working on the self-hosted ELF linker, I
emitted DWARFv5 but then downgraded to v4 when I realized that third
party tools were stuck in the past. Years later, they still are.
Hopefully, Clang 14's bold move will inspire third party tools to get
their shit together, however, in the meantime, everything's broken, so
we're passing `-gdwarf-4` to clang and instructing LLVM to emit DWARFv4.
Note that Zig's std.debug code *does* support DWARFv5 already as of a
previous commit that I made today.
This commit is contained in:
parent
60722261fa
commit
a31b449b55
2 changed files with 3 additions and 3 deletions
|
|
@ -4085,10 +4085,10 @@ pub fn addCCArgs(
|
|||
}
|
||||
|
||||
if (!comp.bin_file.options.strip) {
|
||||
try argv.append("-g");
|
||||
switch (target.ofmt) {
|
||||
.coff => try argv.append("-gcodeview"),
|
||||
else => {},
|
||||
.elf, .macho => try argv.append("-gdwarf-4"),
|
||||
else => try argv.append("-g"),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1130,7 +1130,7 @@ void ZigLLVMGetNativeTarget(ZigLLVM_ArchType *arch_type,
|
|||
|
||||
void ZigLLVMAddModuleDebugInfoFlag(LLVMModuleRef module) {
|
||||
unwrap(module)->addModuleFlag(Module::Warning, "Debug Info Version", DEBUG_METADATA_VERSION);
|
||||
unwrap(module)->addModuleFlag(Module::Warning, "Dwarf Version", 5);
|
||||
unwrap(module)->addModuleFlag(Module::Warning, "Dwarf Version", 4);
|
||||
}
|
||||
|
||||
void ZigLLVMAddModuleCodeViewFlag(LLVMModuleRef module) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue