xref: /llvm-project/lld/test/ELF/linkerscript/map-file.test (revision 1978c21d967a2cd2e11cd3b2147d135f4d9e680b)
1# REQUIRES: x86
2
3# RUN: echo '.quad sym3; .quad sym4; .section .foo.1, "a"; .quad 1' > %t.s
4# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %t.s -o %t.o
5
6# RUN: ld.lld -o %t %t.o -Map=%t.map --script %s
7# RUN: FileCheck -strict-whitespace %s < %t.map
8
9SECTIONS {
10  .		 = 	0x1000;  # tabs
11  .foo : {
12    BYTE ( 0x11 )
13    SHORT (0x1122)
14    LONG(0x11223344)
15    QUAD(0x1122334455667788)
16    PROVIDE_HIDDEN(sym4 = .);
17    . += 0x1000;
18    *(.foo.1)
19    PROVIDE(unused1 = 0xff);
20    HIDDEN(  sym6  =  .  );
21    . += 0x123 *
22         (1 + 1);
23    foo = .;
24    bar = 0x42 - 0x26;
25  }
26  sym1 = .;
27  . += 0x500;
28  sym2 = .;
29  PROVIDE(unused2 = 0xff);
30  PROVIDE(sym3 = 42);
31}
32
33# CHECK:         VMA              LMA     Size Align Out     In      Symbol
34# CHECK-NEXT:      0                0     1000     1 . = 0x1000
35# CHECK-NEXT:   1000             1000     125d     1 .foo
36# CHECK-NEXT:   1000             1000        1     1         BYTE ( 0x11 )
37# CHECK-NEXT:   1001             1001        2     1         SHORT (0x1122)
38# CHECK-NEXT:   1003             1003        4     1         LONG(0x11223344)
39# CHECK-NEXT:   1007             1007        8     1         QUAD(0x1122334455667788)
40# CHECK-NEXT:   100f             100f        0     1         PROVIDE_HIDDEN(sym4 = .)
41# CHECK-NEXT:   100f             100f     1000     1         . += 0x1000
42# CHECK-NEXT:   200f             200f        8     1         {{.*}}{{/|\\}}map-file.test.tmp.o:(.foo.1)
43# CHECK-NEXT:   2017             2017        0     1         HIDDEN( sym6 = . )
44# CHECK-NEXT:   2017             2017      246     1         . += 0x123 * (1 + 1)
45# CHECK-NEXT:   225d             225d        0     1         foo = .
46# CHECK-NEXT:   225d             225d        0     1         bar = 0x42 - 0x26
47# CHECK-NEXT:   225d             225d        0     1 sym1 = .
48# CHECK-NEXT:   225d             225d      500     1 . += 0x500
49# CHECK-NEXT:   275d             275d        0     1 sym2 = .
50# CHECK-NEXT:   275d             275d        0     1 PROVIDE(sym3 = 42)
51# CHECK-NEXT:   2760             2760       10     4 .text
52# CHECK-NEXT:   2760             2760       10     4         {{.*}}{{/|\\}}map-file.test.tmp.o:(.text)
53# CHECK-NEXT:      0                0        8     1 .comment
54# CHECK-NEXT:      0                0        8     1         <internal>:(.comment)
55# CHECK-NEXT:      0                0       c0     8 .symtab
56# CHECK-NEXT:      0                0       c0     8         <internal>:(.symtab)
57# CHECK-NEXT:      0                0       2f     1 .shstrtab
58# CHECK-NEXT:      0                0       2f     1         <internal>:(.shstrtab)
59# CHECK-NEXT:      0                0       22     1 .strtab
60# CHECK-NEXT:      0                0       22     1         <internal>:(.strtab)
61