diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index ba052f6419..acf22736ae 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -230,8 +230,10 @@ impl Linker { if self.next_tls_module_id == 0 { // Hack to allocate TCB on the first TLS module unsafe { - let tcb = Tcb::new(master.offset).expect_notls("failed to allocate TCB"); - tcb.activate(); + if Tcb::current().is_none() { + let tcb = Tcb::new(master.offset).expect_notls("failed to allocate TCB"); + tcb.activate(); + } } } self.next_tls_module_id += 1;