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