R_X86_64_TPOFF64 does not require symbol, allow it to be unset
This commit is contained in:
+8
-4
@@ -398,10 +398,14 @@ impl Linker {
|
||||
set_u64((b + a) as u64);
|
||||
}
|
||||
reloc::R_X86_64_TPOFF64 => {
|
||||
let sym = symbol
|
||||
.as_ref()
|
||||
.expect("R_X86_64_TPOFF64 called without valid symbol");
|
||||
set_u64((sym.value + a).wrapping_sub(t) as u64);
|
||||
if rel.r_sym > 0 {
|
||||
let sym = symbol
|
||||
.as_ref()
|
||||
.expect("R_X86_64_TPOFF64 called without valid symbol");
|
||||
set_u64((sym.value + a).wrapping_sub(t) as u64);
|
||||
} else {
|
||||
set_u64(a.wrapping_sub(t) as u64);
|
||||
}
|
||||
}
|
||||
reloc::R_X86_64_IRELATIVE => unsafe {
|
||||
let f: unsafe extern "C" fn() -> u64 = transmute(b + a);
|
||||
|
||||
Reference in New Issue
Block a user