1
Fork 0

Rollup merge of #135790 - wesleywiser:update_windows_gnu_debuginfokind, r=lqd

Update windows-gnu targets to set `DebuginfoKind::DWARF`

These targets have always used DWARF debuginfo and not CodeView/PDB debuginfo like the MSVC Windows targets. However, their target definitions claim to use `DebuginfoKind::PDB` probably to ensure that we do not try to allow the use of split-DWARF debuginfo.

This does not appear to be necessary since the targets set their supported split debug info to `Off`. I've looked at all of the uses of these properties and this patch does not appear to cause any functional changes in compiler behavior. I also added UI tests to attempt to validate there is no change in the behavior of these options on stable compilers.

cc ````@mati865```` since you mentioned this in #135739
cc ````@davidtwco```` for split-dwarf
This commit is contained in:
Matthias Krüger 2025-01-23 09:49:22 +01:00 committed by GitHub
commit 27155e5ced
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 145 additions and 2 deletions

View file

@ -97,9 +97,9 @@ pub(crate) fn opts() -> TargetOptions {
emit_debug_gdb_scripts: false, emit_debug_gdb_scripts: false,
requires_uwtable: true, requires_uwtable: true,
eh_frame_header: false, eh_frame_header: false,
debuginfo_kind: DebuginfoKind::Dwarf,
// FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to // FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to
// output DWO, despite using DWARF, doesn't use ELF.. // output DWO, despite using DWARF, doesn't use ELF..
debuginfo_kind: DebuginfoKind::Pdb,
supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]),
..Default::default() ..Default::default()
} }

View file

@ -44,9 +44,9 @@ pub(crate) fn opts() -> TargetOptions {
has_thread_local: true, has_thread_local: true,
crt_static_allows_dylibs: true, crt_static_allows_dylibs: true,
crt_static_respected: true, crt_static_respected: true,
debuginfo_kind: DebuginfoKind::Dwarf,
// FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to // FIXME(davidtwco): Support Split DWARF on Windows GNU - may require LLVM changes to
// output DWO, despite using DWARF, doesn't use ELF.. // output DWO, despite using DWARF, doesn't use ELF..
debuginfo_kind: DebuginfoKind::Pdb,
supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]), supported_split_debuginfo: Cow::Borrowed(&[SplitDebuginfo::Off]),
..Default::default() ..Default::default()
} }

View file

@ -0,0 +1,29 @@
//@ revisions: aarch64_gl i686_g i686_gl i686_uwp_g x86_64_g x86_64_gl x86_64_uwp_g
//@ compile-flags: --crate-type cdylib -Csplit-debuginfo=off
//@ check-pass
//@[aarch64_gl] compile-flags: --target aarch64-pc-windows-gnullvm
//@[aarch64_gl] needs-llvm-components: aarch64
//@[i686_g] compile-flags: --target i686-pc-windows-gnu
//@[i686_g] needs-llvm-components: x86
//@[i686_gl] compile-flags: --target i686-pc-windows-gnullvm
//@[i686_gl] needs-llvm-components: x86
//@[i686_uwp_g] compile-flags: --target i686-uwp-windows-gnu
//@[i686_uwp_g] needs-llvm-components: x86
//@[x86_64_g] compile-flags: --target x86_64-pc-windows-gnu
//@[x86_64_g] needs-llvm-components: x86
//@[x86_64_gl] compile-flags: --target x86_64-pc-windows-gnullvm
//@[x86_64_gl] needs-llvm-components: x86
//@[x86_64_uwp_g] compile-flags: --target x86_64-uwp-windows-gnu
//@[x86_64_uwp_g] needs-llvm-components: x86
#![feature(no_core)]
#![no_core]
#![no_std]

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,29 @@
//@ revisions: aarch64_gl i686_g i686_gl i686_uwp_g x86_64_g x86_64_gl x86_64_uwp_g
//@ compile-flags: --crate-type cdylib -Csplit-debuginfo=packed
//@ error-pattern: error: `-Csplit-debuginfo=packed` is unstable on this platform
//@[aarch64_gl] compile-flags: --target aarch64-pc-windows-gnullvm
//@[aarch64_gl] needs-llvm-components: aarch64
//@[i686_g] compile-flags: --target i686-pc-windows-gnu
//@[i686_g] needs-llvm-components: x86
//@[i686_gl] compile-flags: --target i686-pc-windows-gnullvm
//@[i686_gl] needs-llvm-components: x86
//@[i686_uwp_g] compile-flags: --target i686-uwp-windows-gnu
//@[i686_uwp_g] needs-llvm-components: x86
//@[x86_64_g] compile-flags: --target x86_64-pc-windows-gnu
//@[x86_64_g] needs-llvm-components: x86
//@[x86_64_gl] compile-flags: --target x86_64-pc-windows-gnullvm
//@[x86_64_gl] needs-llvm-components: x86
//@[x86_64_uwp_g] compile-flags: --target x86_64-uwp-windows-gnu
//@[x86_64_uwp_g] needs-llvm-components: x86
#![feature(no_core)]
#![no_core]
#![no_std]

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=packed` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,29 @@
//@ revisions: aarch64_gl i686_g i686_gl i686_uwp_g x86_64_g x86_64_gl x86_64_uwp_g
//@ compile-flags: --crate-type cdylib -Csplit-debuginfo=unpacked
//@ error-pattern: error: `-Csplit-debuginfo=unpacked` is unstable on this platform
//@[aarch64_gl] compile-flags: --target aarch64-pc-windows-gnullvm
//@[aarch64_gl] needs-llvm-components: aarch64
//@[i686_g] compile-flags: --target i686-pc-windows-gnu
//@[i686_g] needs-llvm-components: x86
//@[i686_gl] compile-flags: --target i686-pc-windows-gnullvm
//@[i686_gl] needs-llvm-components: x86
//@[i686_uwp_g] compile-flags: --target i686-uwp-windows-gnu
//@[i686_uwp_g] needs-llvm-components: x86
//@[x86_64_g] compile-flags: --target x86_64-pc-windows-gnu
//@[x86_64_g] needs-llvm-components: x86
//@[x86_64_gl] compile-flags: --target x86_64-pc-windows-gnullvm
//@[x86_64_gl] needs-llvm-components: x86
//@[x86_64_uwp_g] compile-flags: --target x86_64-uwp-windows-gnu
//@[x86_64_uwp_g] needs-llvm-components: x86
#![feature(no_core)]
#![no_core]
#![no_std]

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error

View file

@ -0,0 +1,4 @@
error: `-Csplit-debuginfo=unpacked` is unstable on this platform
error: aborting due to 1 previous error