dyn-loader: fix R_AARCH64_ABS64 missing addend

This commit is contained in:
Mark Poliakov 2024-11-26 23:02:49 +02:00
parent 588e9e2936
commit 2e769df015

View File

@ -93,8 +93,12 @@ impl Relocation for Rela {
todo!() todo!()
} }
match self.r_type { match self.r_type {
// Direct 64 bit: S + A
R_AARCH64_ABS64 => {
Ok(Some(RelaValue::QWord(s + self.r_addend)))
}
// Direct 64 bit: S // Direct 64 bit: S
R_AARCH64_ABS64 | R_AARCH64_JUMP_SLOT | R_AARCH64_GLOB_DAT => { R_AARCH64_JUMP_SLOT | R_AARCH64_GLOB_DAT => {
Ok(Some(RelaValue::QWord(s))) Ok(Some(RelaValue::QWord(s)))
} }
_ => todo!("Unsupported relocation: {}", self.r_type), _ => todo!("Unsupported relocation: {}", self.r_type),