aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-objcopy/MachO/relocations.test
blob: 8859b9e4ac144680a9e72e2c70523d996bdf34e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# RUN: yaml2obj %s -o %t

## Show that llvm-objcopy copies relocation entries where r_extern = 0.
# RUN: llvm-objcopy %t %t2
# RUN: cmp %t %t2

## Show that llvm-objcopy updates section indices properly.
# RUN: llvm-objcopy --remove-section=__DATA,__foo %t %t3
# RUN: llvm-objdump --macho --reloc %t3 | FileCheck %s

# CHECK:      Relocation information (__DATA,__bar) 2 entries
# CHECK-NEXT: address  pcrel length extern type    scattered symbolnum/value
# CHECK-NEXT: 00000000 False quad   False  SUB     False     2 (__DATA,__bar)
# CHECK-NEXT: 00000000 False quad   False  UNSIGND False     1 (__TEXT,__text)

--- !mach-o
FileHeader:
  magic:           0xFEEDFACF
  cputype:         0x01000007
  cpusubtype:      0x00000003
  filetype:        0x00000001
  ncmds:           1
  sizeofcmds:      312
  flags:           0x00000000
  reserved:        0x00000000
LoadCommands:
  - cmd:             LC_SEGMENT_64
    cmdsize:         312
    segname:         ''
    vmaddr:          0
    vmsize:          24
    fileoff:         344
    filesize:        24
    maxprot:         7
    initprot:        7
    nsects:          3
    flags:           0
    Sections:
      - sectname:        __text
        segname:         __TEXT
        addr:            0x0000000000000000
        size:            8
        offset:          0x00000158
        align:           0
        reloff:          0x00000000
        nreloc:          0
        flags:           0x80000000
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         '0000000000000000'
      - sectname:        __foo
        segname:         __DATA
        addr:            0x0000000000000008
        size:            8
        offset:          0x00000160
        align:           0
        reloff:          0x00000000
        nreloc:          0
        flags:           0x00000000
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         '0000000000000000'
      - sectname:        __bar
        segname:         __DATA
        addr:            0x0000000000000010
        size:            8
        offset:          0x00000168
        align:           0
        reloff:          0x00000170
        nreloc:          2
        flags:           0x00000000
        reserved1:       0x00000000
        reserved2:       0x00000000
        reserved3:       0x00000000
        content:         F0FFFFFFFFFFFFFF
        relocations:
          - address:         0x00000000
            symbolnum:       3
            pcrel:           false
            length:          3
            extern:          false
            type:            5
            scattered:       false
            value:           0
          - address:         0x00000000
            symbolnum:       1
            pcrel:           false
            length:          3
            extern:          false
            type:            0
            scattered:       false
            value:           0
...