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)
Fri, Feb 14, 7:31 PM
Unknown Object (File)
Feb 7 2025, 2:46 AM
Unknown Object (File)
Feb 6 2025, 6:55 AM
Unknown Object (File)
Jan 31 2025, 11:03 AM
Unknown Object (File)
Jan 25 2025, 8:19 PM
Unknown Object (File)
Jan 19 2025, 12:10 PM
Unknown Object (File)
Dec 19 2024, 3:46 PM
Unknown Object (File)
Dec 12 2024, 3:01 AM
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.