Home | History | Annotate | Download | only in MachO
      1 // RUN: llvm-mc -triple x86_64-apple-darwin %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
      2 
      3         .section        __TEXT,__text,regular,pure_instructions
      4         .section        __DATA,__thread_data,thread_local_regular
      5         .globl  _c$tlv$init
      6         .align  2
      7 _c$tlv$init:
      8         .long   4
      9 
     10         .section        __DATA,__thread_vars,thread_local_variables
     11         .globl  _c
     12 _c:
     13         .quad   ___tlv_bootstrap
     14         .quad   0
     15         .quad   _c$tlv$init
     16 
     17         .section        __DATA,__thread_data,thread_local_regular
     18         .globl  _d$tlv$init
     19         .align  2
     20 _d$tlv$init:
     21         .long   5
     22 
     23         .section        __DATA,__thread_vars,thread_local_variables
     24         .globl  _d
     25 _d:
     26         .quad   ___tlv_bootstrap
     27         .quad   0
     28         .quad   _d$tlv$init
     29 
     30 .tbss _a$tlv$init, 4, 2
     31 
     32         .globl  _a
     33 _a:
     34         .quad   ___tlv_bootstrap
     35         .quad   0
     36         .quad   _a$tlv$init
     37 
     38 .tbss _b$tlv$init, 4, 2
     39 
     40         .globl  _b
     41 _b:
     42         .quad   ___tlv_bootstrap
     43         .quad   0
     44         .quad   _b$tlv$init
     45 
     46 .subsections_via_symbols
     47 
     48 // CHECK: ('cputype', 16777223)
     49 // CHECK: ('cpusubtype', 3)
     50 // CHECK: ('filetype', 1)
     51 // CHECK: ('num_load_commands', 3)
     52 // CHECK: ('load_commands_size', 496)
     53 // CHECK: ('flag', 8192)
     54 // CHECK: ('reserved', 0)
     55 // CHECK: ('load_commands', [
     56 // CHECK:   # Load Command 0
     57 // CHECK:  (('command', 25)
     58 // CHECK:   ('size', 392)
     59 // CHECK:   ('segment_name', '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     60 // CHECK:   ('vm_addr', 0)
     61 // CHECK:   ('vm_size', 112)
     62 // CHECK:   ('file_offset', 528)
     63 // CHECK:   ('file_size', 104)
     64 // CHECK:   ('maxprot', 7)
     65 // CHECK:   ('initprot', 7)
     66 // CHECK:   ('num_sections', 4)
     67 // CHECK:   ('flags', 0)
     68 // CHECK:   ('sections', [
     69 // CHECK:     # Section 0
     70 // CHECK:    (('section_name', '__text\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     71 // CHECK:     ('segment_name', '__TEXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     72 // CHECK:     ('address', 0)
     73 // CHECK:     ('size', 0)
     74 // CHECK:     ('offset', 528)
     75 // CHECK:     ('alignment', 0)
     76 // CHECK:     ('reloc_offset', 0)
     77 // CHECK:     ('num_reloc', 0)
     78 // CHECK:     ('flags', 0x80000000)
     79 // CHECK:     ('reserved1', 0)
     80 // CHECK:     ('reserved2', 0)
     81 // CHECK:     ('reserved3', 0)
     82 // CHECK:    ),
     83 // CHECK:   ('_relocations', [
     84 // CHECK:   ])
     85 // CHECK:   ('_section_data', '')
     86 // CHECK:     # Section 1
     87 // CHECK:    (('section_name', '__thread_data\x00\x00\x00')
     88 // CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
     89 // CHECK:     ('address', 0)
     90 // CHECK:     ('size', 8)
     91 // CHECK:     ('offset', 528)
     92 // CHECK:     ('alignment', 2)
     93 // CHECK:     ('reloc_offset', 0)
     94 // CHECK:     ('num_reloc', 0)
     95 // CHECK:     ('flags', 0x11)
     96 // CHECK:     ('reserved1', 0)
     97 // CHECK:     ('reserved2', 0)
     98 // CHECK:     ('reserved3', 0)
     99 // CHECK:    ),
    100 // CHECK:   ('_relocations', [
    101 // CHECK:   ])
    102 // CHECK:   ('_section_data', '04000000 05000000')
    103 // CHECK:     # Section 2
    104 // CHECK:    (('section_name', '__thread_vars\x00\x00\x00')
    105 // CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
    106 // CHECK:     ('address', 8)
    107 // CHECK:     ('size', 96)
    108 // CHECK:     ('offset', 536)
    109 // CHECK:     ('alignment', 0)
    110 // CHECK:     ('reloc_offset', 632)
    111 // CHECK:     ('num_reloc', 8)
    112 // CHECK:     ('flags', 0x13)
    113 // CHECK:     ('reserved1', 0)
    114 // CHECK:     ('reserved2', 0)
    115 // CHECK:     ('reserved3', 0)
    116 // CHECK:    ),
    117 // CHECK:   ('_relocations', [
    118 // CHECK:     # Relocation 0
    119 // CHECK:     (('word-0', 0x58),
    120 // CHECK:      ('word-1', 0xe000001)),
    121 // CHECK:     # Relocation 1
    122 // CHECK:     (('word-0', 0x48),
    123 // CHECK:      ('word-1', 0xe000008)),
    124 // CHECK:     # Relocation 2
    125 // CHECK:     (('word-0', 0x40),
    126 // CHECK:      ('word-1', 0xe000000)),
    127 // CHECK:     # Relocation 3
    128 // CHECK:     (('word-0', 0x30),
    129 // CHECK:      ('word-1', 0xe000008)),
    130 // CHECK:     # Relocation 4
    131 // CHECK:     (('word-0', 0x28),
    132 // CHECK:      ('word-1', 0xe000007)),
    133 // CHECK:     # Relocation 5
    134 // CHECK:     (('word-0', 0x18),
    135 // CHECK:      ('word-1', 0xe000008)),
    136 // CHECK:     # Relocation 6
    137 // CHECK:     (('word-0', 0x10),
    138 // CHECK:      ('word-1', 0xe000005)),
    139 // CHECK:     # Relocation 7
    140 // CHECK:     (('word-0', 0x0),
    141 // CHECK:      ('word-1', 0xe000008)),
    142 // CHECK:   ])
    143 // CHECK:   ('_section_data', '00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000')
    144 // CHECK:     # Section 3
    145 // CHECK:    (('section_name', '__thread_bss\x00\x00\x00\x00')
    146 // CHECK:     ('segment_name', '__DATA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
    147 // CHECK:     ('address', 104)
    148 // CHECK:     ('size', 8)
    149 // CHECK:     ('offset', 0)
    150 // CHECK:     ('alignment', 2)
    151 // CHECK:     ('reloc_offset', 0)
    152 // CHECK:     ('num_reloc', 0)
    153 // CHECK:     ('flags', 0x12)
    154 // CHECK:     ('reserved1', 0)
    155 // CHECK:     ('reserved2', 0)
    156 // CHECK:     ('reserved3', 0)
    157 // CHECK:    ),
    158 // CHECK:   ('_relocations', [
    159 // CHECK:   ])
    160 // CHECK:   ('_section_data', 'cffaedfe 07000001')
    161 // CHECK:   ])
    162 // CHECK:  ),
    163 // CHECK:   # Load Command 1
    164 // CHECK:  (('command', 2)
    165 // CHECK:   ('size', 24)
    166 // CHECK:   ('symoff', 696)
    167 // CHECK:   ('nsyms', 9)
    168 // CHECK:   ('stroff', 840)
    169 // CHECK:   ('strsize', 80)
    170 // CHECK:   ('_string_data', '\x00_c$tlv$init\x00_c\x00___tlv_bootstrap\x00_d$tlv$init\x00_d\x00_a\x00_b\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00')
    171 // CHECK:   ('_symbols', [
    172 // CHECK:     # Symbol 0
    173 // CHECK:    (('n_strx', 54)
    174 // CHECK:     ('n_type', 0xe)
    175 // CHECK:     ('n_sect', 4)
    176 // CHECK:     ('n_desc', 0)
    177 // CHECK:     ('n_value', 104)
    178 // CHECK:     ('_string', '_a$tlv$init')
    179 // CHECK:    ),
    180 // CHECK:     # Symbol 1
    181 // CHECK:    (('n_strx', 66)
    182 // CHECK:     ('n_type', 0xe)
    183 // CHECK:     ('n_sect', 4)
    184 // CHECK:     ('n_desc', 0)
    185 // CHECK:     ('n_value', 108)
    186 // CHECK:     ('_string', '_b$tlv$init')
    187 // CHECK:    ),
    188 // CHECK:     # Symbol 2
    189 // CHECK:    (('n_strx', 48)
    190 // CHECK:     ('n_type', 0xf)
    191 // CHECK:     ('n_sect', 3)
    192 // CHECK:     ('n_desc', 0)
    193 // CHECK:     ('n_value', 56)
    194 // CHECK:     ('_string', '_a')
    195 // CHECK:    ),
    196 // CHECK:     # Symbol 3
    197 // CHECK:    (('n_strx', 51)
    198 // CHECK:     ('n_type', 0xf)
    199 // CHECK:     ('n_sect', 3)
    200 // CHECK:     ('n_desc', 0)
    201 // CHECK:     ('n_value', 80)
    202 // CHECK:     ('_string', '_b')
    203 // CHECK:    ),
    204 // CHECK:     # Symbol 4
    205 // CHECK:    (('n_strx', 13)
    206 // CHECK:     ('n_type', 0xf)
    207 // CHECK:     ('n_sect', 3)
    208 // CHECK:     ('n_desc', 0)
    209 // CHECK:     ('n_value', 8)
    210 // CHECK:     ('_string', '_c')
    211 // CHECK:    ),
    212 // CHECK:     # Symbol 5
    213 // CHECK:    (('n_strx', 1)
    214 // CHECK:     ('n_type', 0xf)
    215 // CHECK:     ('n_sect', 2)
    216 // CHECK:     ('n_desc', 0)
    217 // CHECK:     ('n_value', 0)
    218 // CHECK:     ('_string', '_c$tlv$init')
    219 // CHECK:    ),
    220 // CHECK:     # Symbol 6
    221 // CHECK:    (('n_strx', 45)
    222 // CHECK:     ('n_type', 0xf)
    223 // CHECK:     ('n_sect', 3)
    224 // CHECK:     ('n_desc', 0)
    225 // CHECK:     ('n_value', 32)
    226 // CHECK:     ('_string', '_d')
    227 // CHECK:    ),
    228 // CHECK:     # Symbol 7
    229 // CHECK:    (('n_strx', 33)
    230 // CHECK:     ('n_type', 0xf)
    231 // CHECK:     ('n_sect', 2)
    232 // CHECK:     ('n_desc', 0)
    233 // CHECK:     ('n_value', 4)
    234 // CHECK:     ('_string', '_d$tlv$init')
    235 // CHECK:    ),
    236 // CHECK:     # Symbol 8
    237 // CHECK:    (('n_strx', 16)
    238 // CHECK:     ('n_type', 0x1)
    239 // CHECK:     ('n_sect', 0)
    240 // CHECK:     ('n_desc', 0)
    241 // CHECK:     ('n_value', 0)
    242 // CHECK:     ('_string', '___tlv_bootstrap')
    243 // CHECK:    ),
    244 // CHECK:   ])
    245 // CHECK:  ),
    246 // CHECK:   # Load Command 2
    247 // CHECK:  (('command', 11)
    248 // CHECK:   ('size', 80)
    249 // CHECK:   ('ilocalsym', 0)
    250 // CHECK:   ('nlocalsym', 2)
    251 // CHECK:   ('iextdefsym', 2)
    252 // CHECK:   ('nextdefsym', 6)
    253 // CHECK:   ('iundefsym', 8)
    254 // CHECK:   ('nundefsym', 1)
    255 // CHECK:   ('tocoff', 0)
    256 // CHECK:   ('ntoc', 0)
    257 // CHECK:   ('modtaboff', 0)
    258 // CHECK:   ('nmodtab', 0)
    259 // CHECK:   ('extrefsymoff', 0)
    260 // CHECK:   ('nextrefsyms', 0)
    261 // CHECK:   ('indirectsymoff', 0)
    262 // CHECK:   ('nindirectsyms', 0)
    263 // CHECK:   ('extreloff', 0)
    264 // CHECK:   ('nextrel', 0)
    265 // CHECK:   ('locreloff', 0)
    266 // CHECK:   ('nlocrel', 0)
    267 // CHECK:   ('_indirect_symbols', [
    268 // CHECK:   ])
    269 // CHECK:  ),
    270 // CHECK: ])
    271