1 .text 2 .globl __tls_get_addr 3 .type __tls_get_addr, @function 4 __tls_get_addr: 5 ret 6 .size __tls_get_addr, .-__tls_get_addr 7 .globl _start 8 .type _start, @function 9 _start: 10 movq foo3@GOTTPOFF(%rip), %rax 11 pushq %rbx 12 movl %fs:foo2@TPOFF, %ebx 13 addl %fs:foo1@TPOFF, %ebx 14 addl %fs:(%rax), %ebx 15 leaq foo4@TLSLD(%rip), %rdi 16 call __tls_get_addr@PLT 17 addl foo4@DTPOFF(%rax), %ebx 18 .byte 0x66 19 leaq foo5@TLSGD(%rip), %rdi 20 .value 0x6666 21 rex64 22 call __tls_get_addr@PLT 23 addl (%rax), %ebx 24 movl %ebx, %eax 25 popq %rbx 26 ret 27 .size _start, .-_start 28 .globl foo1 29 .section .tbss,"awT",@nobits 30 .align 4 31 .type foo1, @object 32 .size foo1, 4 33 foo1: 34 .zero 4 35 .globl foo2 36 .align 4 37 .type foo2, @object 38 .size foo2, 4 39 foo2: 40 .zero 4 41 .globl foo3 42 .align 4 43 .type foo3, @object 44 .size foo3, 4 45 foo3: 46 .zero 4 47 .globl foo4 48 .align 4 49 .type foo4, @object 50 .size foo4, 4 51 foo4: 52 .zero 4 53 .globl foo5 54 .align 4 55 .type foo5, @object 56 .size foo5, 4 57 foo5: 58 .zero 4 59