Skip to content

Commit e36535d

Browse files
authored
[LLD] [COFF] Add /debug: options nodwarf and nosymtab (#75180)
These allow tweaking what gets implied by /debug and /debug:dwarf.
1 parent efe017f commit e36535d

File tree

4 files changed

+15
-0
lines changed

4 files changed

+15
-0
lines changed

lld/COFF/Driver.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,9 +1652,13 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
16521652
config->writeSymtab = true;
16531653
config->warnLongSectionNames = false;
16541654
doGC = false;
1655+
} else if (s == "nodwarf") {
1656+
config->includeDwarfChunks = false;
16551657
} else if (s == "symtab") {
16561658
config->writeSymtab = true;
16571659
doGC = false;
1660+
} else if (s == "nosymtab") {
1661+
config->writeSymtab = false;
16581662
} else {
16591663
error("/debug: unknown option: " + s);
16601664
}

lld/test/COFF/debug-dwarf.test

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,8 @@
2525
# RUN: rm -f %t.pdb
2626
# RUN: lld-link /debug:full,dwarf /entry:main /out:%t.exe %p/Inputs/ret42.obj
2727
# RUN: ls %t.pdb
28+
29+
# Check that /debug /debug:full,nodwarf creates %t.pdb.
30+
# RUN: rm -f %t.pdb
31+
# RUN: lld-link /debug:full,nodwarf /entry:main /out:%t.exe %p/Inputs/ret42.obj
32+
# RUN: ls %t.pdb

lld/test/COFF/sort-debug.test

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
88
# RUN: lld-link /debug:symtab /out:%t.exe /entry:main %t.obj
99
# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
10+
# RUN: lld-link /debug:full,nodwarf /out:%t.exe /entry:main %t.obj
11+
# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
12+
# RUN: lld-link /debug:full /debug:nodwarf /out:%t.exe /entry:main %t.obj
13+
# RUN: llvm-readobj --sections %t.exe | FileCheck -check-prefix=NODEBUG %s
1014

1115
# CHECK: Name: .text
1216
# CHECK: Name: .reloc

lld/test/COFF/symtab.test

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
# RUN: lld-link /debug /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
1212
# RUN: llvm-readobj --symbols %t.exe | FileCheck -check-prefix=NO %s
13+
# RUN: lld-link /debug:dwarf,nosymtab /out:%t.exe /entry:main %t.obj %p/Inputs/std64.lib
14+
# RUN: llvm-readobj --symbols %t.exe | FileCheck -check-prefix=NO %s
1315

1416
# CHECK: Symbols [
1517
# CHECK-NEXT: Symbol {

0 commit comments

Comments
 (0)