diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index 6b54a35a66..3f3e1911b8 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -694,7 +694,11 @@ impl Linker { set_u64(tm as u64); } reloc::R_X86_64_DTPOFF64 => { - set_u64((s - b) as u64); + if s != 0 { + set_u64((s - b) as u64); + } else { + set_u64(s as u64); + } } reloc::R_X86_64_GLOB_DAT | reloc::R_X86_64_JUMP_SLOT => { set_u64(s as u64);