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