Files
RedBear-OS/src
Luiz Fernando Becher de Araujo df5226fb25 Fix ld.so PLT relocations by relocating lazily before is_me check
Previously, relocate() returned early for self.is_me before
calling lazy_relocate(), assuming ld.so had no lazy relocations
to process. However, ld.so is itself PIE and relies on lazy PLT
relocations internally, so its own PLT entries need the load
base added to them (see the PLT/Resolve::Lazy branch in
lazy_relocate()).

Skipping this step left ld.so's PLT stubs pointing at
unrelocated addresses. Once ld.so was loaded at a non-zero
base, any internal call through the PLT jumped to an invalid
address, triggering a synchronous exception during early boot
(observed as crashes in nvmed/redoxfs before switchroot
completed on AArch64).

Signed-off-by: Luiz Fernando Becher de Araujo <luiz.becher.araujo@gmail.com>
(cherry picked from commit 72c0078d5de565743c99a07fcff6557361d91694)
2026-08-01 07:14:30 +03:00
..
2026-03-04 22:03:31 +07:00
2026-07-08 10:07:15 +01:00
2026-04-30 19:02:35 -05:00
2026-03-02 10:01:05 +00:00
2023-11-04 18:29:38 +00:00
2024-09-26 16:24:01 +02:00
2026-03-29 14:39:43 +07:00
2026-07-06 16:08:59 +07:00
2026-03-14 03:57:26 +00:00
2026-07-06 16:08:59 +07:00
2026-07-02 08:28:38 +01:00
2026-07-16 08:59:10 +01:00