1# RUN: ld64.lld.darwinold -arch i386 -r -print_atoms %s -o %t  | FileCheck %s
2#
3# Test parsing of non-lazy-pointer sections.
4#
5
6--- !mach-o
7arch:            x86
8file-type:       MH_OBJECT
9flags:           [ MH_SUBSECTIONS_VIA_SYMBOLS ]
10has-UUID:        false
11OS:              unknown
12sections:
13  - segment:         __TEXT
14    section:         __text
15    type:            S_REGULAR
16    attributes:      [ S_ATTR_PURE_INSTRUCTIONS, S_ATTR_SOME_INSTRUCTIONS ]
17    address:         0x0000000000000000
18    content:         [ 0x55, 0x89, 0xE5, 0xE8, 0x00, 0x00, 0x00, 0x00,
19                       0x59, 0x8D, 0x81, 0x14, 0x00, 0x00, 0x00, 0x8D,
20                       0x81, 0x18, 0x00, 0x00, 0x00, 0x5D, 0xC3, 0x55,
21                       0x89, 0xE5, 0x5D, 0xC3 ]
22    relocations:
23      - offset:          0x00000011
24        scattered:       true
25        type:            GENERIC_RELOC_LOCAL_SECTDIFF
26        length:          2
27        pc-rel:          false
28        value:           0x00000020
29      - offset:          0x00000000
30        scattered:       true
31        type:            GENERIC_RELOC_PAIR
32        length:          2
33        pc-rel:          false
34        value:           0x00000008
35      - offset:          0x0000000B
36        scattered:       true
37        type:            GENERIC_RELOC_LOCAL_SECTDIFF
38        length:          2
39        pc-rel:          false
40        value:           0x0000001C
41      - offset:          0x00000000
42        scattered:       true
43        type:            GENERIC_RELOC_PAIR
44        length:          2
45        pc-rel:          false
46        value:           0x00000008
47  - segment:         __IMPORT
48    section:         __pointers
49    type:            S_NON_LAZY_SYMBOL_POINTERS
50    attributes:      [  ]
51    address:         0x000000000000001C
52    content:         [ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ]
53    indirect-syms:   [ 2, 2147483648 ]
54local-symbols:
55  - name:            _foo
56    type:            N_SECT
57    sect:            1
58    value:           0x0000000000000017
59global-symbols:
60  - name:            _get
61    type:            N_SECT
62    scope:           [ N_EXT ]
63    sect:            1
64    value:           0x0000000000000000
65undefined-symbols:
66  - name:            _bar
67    type:            N_UNDF
68    scope:           [ N_EXT ]
69    value:           0x0000000000000000
70...
71
72
73# CHECK:defined-atoms:
74# CHECK:  - ref-name:        [[GOT1:L[L0-9]+]]
75# CHECK:    scope:           hidden
76# CHECK:    type:            got
77# CHECK:    content:         [ 00, 00, 00, 00 ]
78# CHECK:    merge:           by-content
79# CHECK:  - ref-name:        [[GOT2:L[L0-9]+]]
80# CHECK:    scope:           hidden
81# CHECK:    type:            got
82# CHECK:    content:         [ 00, 00, 00, 00 ]
83# CHECK:    merge:           by-content
84# CHECK:  - name:            _get
85# CHECK:    scope:           global
86# CHECK:    content:         [ 55, 89, E5, E8, 00, 00, 00, 00, 59, 8D, 81, 14,
87# CHECK:                       00, 00, 00, 8D, 81, 18, 00, 00, 00, 5D, C3 ]
88# CHECK:     references:
89# CHECK:       - kind:            funcRel32
90# CHECK:         offset:          11
91# CHECK:         target:          [[GOT1]]
92# CHECK:       - kind:            funcRel32
93# CHECK:         offset:          17
94# CHECK:         target:          [[GOT2]]
95# CHECK:  - name:            _foo
96# CHECK:    content:         [ 55, 89, E5, 5D, C3 ]
97
98
99