Page MenuHomeFreeBSD

Fix bootloader relocations on arm64
ClosedPublic

Authored by andrew on Oct 7 2016, 3:04 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jun 1 2024, 1:17 AM
Unknown Object (File)
May 24 2024, 9:18 PM
Unknown Object (File)
May 8 2024, 4:49 PM
Unknown Object (File)
Apr 20 2024, 3:58 AM
Unknown Object (File)
Apr 20 2024, 3:56 AM
Unknown Object (File)
Apr 11 2024, 4:52 AM
Unknown Object (File)
Mar 8 2024, 2:14 AM
Unknown Object (File)
Dec 27 2023, 5:38 PM
Subscribers
None

Details

Summary

The bootloader self relocation code was slightly wrong for the
R_AARCH64_RELATIVE relocation found on arm64. It would try to add the
contents of the memory location being relocated to the base address and
the relocation addend. This worked when the contents was zero, however
this now seems to be set to the value of the addend so we add this twice.
Fix this by just setting the memory to the computed value.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

andrew retitled this revision from to Fix bootloader relocations on arm64.
andrew updated this object.
andrew edited the test plan for this revision. (Show Details)
andrew added a reviewer: emaste.
This revision was automatically updated to reflect the committed changes.