Skip to content

Commit 7f07799

Browse files
committed
[lld-macho] Emit map file entry for compact unwind info
Just like ld64 does. Reviewed By: #lld-macho, Roger Differential Revision: https://reviews.llvm.org/D137369
1 parent 213dbdb commit 7f07799

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

lld/MachO/MapFile.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,9 @@ void macho::writeMapFile() {
182182
info.fileIndex);
183183
os.write_escaped(info.str) << "\n";
184184
}
185+
} else if (osec == (void *)in.unwindInfo) {
186+
os << format("0x%08llX\t0x%08llX\t[ 0] compact unwind info\n",
187+
osec->addr, osec->getSize());
185188
}
186189
// TODO print other synthetic sections
187190
}

lld/test/MachO/map-file.s

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
# CHECK-NEXT: Idx Name Size VMA Type
1616
# CHECK-NEXT: 0 __text {{[0-9a-f]+}} [[#%x,TEXT:]] TEXT
1717
# CHECK-NEXT: 1 __cstring {{[0-9a-f]+}} [[#%x,CSTR:]] DATA
18-
# CHECK-NEXT: 2 __common {{[0-9a-f]+}} [[#%x,BSS:]] BSS
18+
# CHECK-NEXT: 2 __unwind_info {{[0-9a-f]+}} [[#%x,UNWIND:]] DATA
19+
# CHECK-NEXT: 3 __eh_frame {{[0-9a-f]+}} [[#%x,EH_FRAME:]] DATA
20+
# CHECK-NEXT: 4 __common {{[0-9a-f]+}} [[#%x,BSS:]] BSS
1921

2022
# CHECK: SYMBOL TABLE:
2123
# CHECK-DAG: [[#%x,MAIN:]] g F __TEXT,__text _main
@@ -34,10 +36,12 @@
3436
# CHECK-NEXT: [ 3] {{.*}}{{/|\\}}map-file.s.tmp/c-string-literal.o
3537

3638
# CHECK-NEXT: # Sections:
37-
# CHECK-NEXT: # Address Size Segment Section
38-
# CHECK-NEXT: 0x[[#%X,TEXT]] 0x{{[0-9A-F]+}} __TEXT __text
39-
# CHECK-NEXT: 0x[[#%X,CSTR]] 0x{{[0-9A-F]+}} __TEXT __cstring
40-
# CHECK-NEXT: 0x[[#%X,BSS]] 0x{{[0-9A-F]+}} __DATA __common
39+
# CHECK-NEXT: # Address Size Segment Section
40+
# CHECK-NEXT: 0x[[#%X,TEXT]] 0x{{[0-9A-F]+}} __TEXT __text
41+
# CHECK-NEXT: 0x[[#%X,CSTR]] 0x{{[0-9A-F]+}} __TEXT __cstring
42+
# CHECK-NEXT: 0x[[#%X,UNWIND]] 0x{{[0-9A-F]+}} __TEXT __unwind_info
43+
# CHECK-NEXT: 0x[[#%X,EH_FRAME]] 0x{{[0-9A-F]+}} __TEXT __eh_frame
44+
# CHECK-NEXT: 0x[[#%X,BSS]] 0x{{[0-9A-F]+}} __DATA __common
4145

4246
# CHECK-NEXT: # Symbols:
4347
# CHECK-NEXT: # Address Size File Name
@@ -48,6 +52,7 @@
4852
# CHECK-DAG: 0x[[#%X,HIITSME]] 0x0000000F [ 3] literal string: Hello, it's me
4953
# CHECK-DAG: 0x[[#%X,HIITSME + 0xf]] 0x0000000E [ 3] literal string: Hello world!\n
5054
# CHECK-DAG: 0x[[#%X,NUMBER]] 0x00000001 [ 1] _number
55+
# CHECK-DAG: 0x[[#%X,UNWIND]] 0x0000103C [ 0] compact unwind info
5156

5257
# MAPFILE: "name":"Total Write map file"
5358

@@ -89,7 +94,10 @@ __ZTIN3foo3bar4MethE:
8994
.globl _main, _bar
9095

9196
_main:
97+
.cfi_startproc
98+
.cfi_def_cfa_offset 16
9299
ret
100+
.cfi_endproc
93101

94102
_bar:
95103
nop

0 commit comments

Comments
 (0)