https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78294
--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Disassembly of libtsan.so.0.0.0: 000000000006efd0 <_ZN6__tsan10InitializeEPNS_11ThreadStateE>: if (is_initialized) 6efd0: 80 3d f5 8f 27 00 00 cmpb $0x0,0x278ff5(%rip) # 2e7fcc <_ZZN6__tsan10InitializeEPNS_11ThreadStateEE14is_initialized> 6efd7: 74 07 je 6efe0 <_ZN6__tsan10InitializeEPNS_11ThreadStateE+0x10> 6efd9: f3 c3 repz retq 6efdb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) void Initialize(ThreadState *thr) { 6efe0: 41 57 push %r15 6efe2: 41 56 push %r14 6efe4: 41 55 push %r13 6efe6: 41 54 push %r12 6efe8: 55 push %rbp 6efe9: 53 push %rbx 6efea: 48 83 ec 48 sub $0x48,%rsp is_initialized = true; 6efee: c6 05 d7 8f 27 00 01 movb $0x1,0x278fd7(%rip) # 2e7fcc <_ZZN6__tsan10InitializeEPNS_11ThreadStateEE14is_initialized> 6eff5: 48 89 7c 24 18 mov %rdi,0x18(%rsp) 6effa: 66 48 8d 3d 66 cf 06 data16 lea 0x6cf66(%rip),%rdi # dbf68 <_ZN6__tsan22cur_thread_placeholderE@@Base+0xdbf28> 6f001: 00 cur_thread()->ignore_interceptors++; 6f002: 66 66 48 e8 16 3d fb data16 data16 callq 22d20 <__tls_get_addr@plt> 6f009: ff SetCheckFailedCallback(TsanCheckFailed); 6f00a: 48 8d 3d 6f ce 00 00 lea 0xce6f(%rip),%rdi # 7be80 <_ZN6__tsan15TsanCheckFailedEPKciS1_yy> SanitizerToolName = "ThreadSanitizer"; 6f011: 48 8d 0d 3b df 03 00 lea 0x3df3b(%rip),%rcx # acf53 <_fini+0x35ab> vs. 000000000006d3e0 <_ZN6__tsan10InitializeEPNS_11ThreadStateE>: if (is_initialized) 6d3e0: 80 3d 65 7a 47 00 00 cmpb $0x0,0x477a65(%rip) # 4e4e4c <_ZZN6__tsan10InitializeEPNS_11ThreadStateEE14is_initialized> 6d3e7: 74 07 je 6d3f0 <_ZN6__tsan10InitializeEPNS_11ThreadStateE+0x10> 6d3e9: f3 c3 repz retq 6d3eb: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) void Initialize(ThreadState *thr) { 6d3f0: 41 57 push %r15 6d3f2: 41 56 push %r14 6d3f4: 41 55 push %r13 6d3f6: 41 54 push %r12 6d3f8: 55 push %rbp 6d3f9: 53 push %rbx 6d3fa: 48 83 ec 48 sub $0x48,%rsp is_initialized = true; 6d3fe: c6 05 47 7a 47 00 01 movb $0x1,0x477a47(%rip) # 4e4e4c <_ZZN6__tsan10InitializeEPNS_11ThreadStateEE14is_initialized> 6d405: 48 89 7c 24 18 mov %rdi,0x18(%rsp) 6d40a: 64 48 8b 04 25 00 00 mov %fs:0x0,%rax 6d411: 00 00 cur_thread()->ignore_interceptors++; 6d413: 48 03 05 be a7 26 00 add 0x26a7be(%rip),%rax # 2d7bd8 <.got+0x7c0> SetCheckFailedCallback(TsanCheckFailed); 6d41a: 48 8d 3d 6f ce 00 00 lea 0xce6f(%rip),%rdi # 7a290 <_ZN6__tsan15TsanCheckFailedEPKciS1_yy> SanitizerToolName = "ThreadSanitizer"; 6d421: 48 8d 0d 64 09 04 00 lea 0x40964(%rip),%rcx # add8c <_ZN6__tsan8MutexSet8kMaxSizeE+0x1034> 6d428: 83 80 98 02 02 00 01 addl $0x1,0x20298(%rax) 6d42f: 48 8d 05 22 df 26 00 lea 0x26df22(%rip),%rax # 2db358 <_ZN11__sanitizer17SanitizerToolNameE> 6d436: 48 89 08 mov %rcx,(%rax) SetCheckFailedCallback(TsanCheckFailed); 6d439: e8 32 97 02 00 callq 96b70 <_ZN11__sanitizer22SetCheckFailedCallbackEPFvPKciS1_yyE> ctx = new(ctx_placeholder) Context; 6d43e: 48 8d 3d fb 7a 47 00 lea 0x477afb(%rip),%rdi # 4e4f40 <_ZN6__tsanL15ctx_placeholderE> 6d445: e8 26 f9 ff ff callq 6cd70 <_ZN6__tsan7ContextC1Ev> const char *options = GetEnv(SANITIZER_GO ? "GORACE" : "TSAN_OPTIONS");