[all-commits] [llvm/llvm-project] 952b68: Support stepping through Darwin "branch islands" (...
jimingham via All-commits
all-commits at lists.llvm.org
Tue May 13 13:33:14 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 952b680fd1a283883ee2075146a7b10ea9510e8a
https://github.com/llvm/llvm-project/commit/952b680fd1a283883ee2075146a7b10ea9510e8a
Author: jimingham <jingham at apple.com>
Date: 2025-05-13 (Tue, 13 May 2025)
Changed paths:
M lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
A lldb/test/API/macosx/branch-islands/Makefile
A lldb/test/API/macosx/branch-islands/TestBranchIslands.py
A lldb/test/API/macosx/branch-islands/foo.c
A lldb/test/API/macosx/branch-islands/main.c
A lldb/test/API/macosx/branch-islands/padding1.s
A lldb/test/API/macosx/branch-islands/padding2.s
A lldb/test/API/macosx/branch-islands/padding3.s
A lldb/test/API/macosx/branch-islands/padding4.s
Log Message:
-----------
Support stepping through Darwin "branch islands" (#139301)
When an intra-module jump doesn't fit in the immediate branch slot, the
Darwin linker inserts "branch island" symbols, and emits code to jump
from branch island to branch island till it makes it to the actual
function.
The previous submissions failed because in that environment the linker
was putting the `foo.island` symbol at the same address as the `padding`
symbol we we emitting to make our faked-up large binary. This submission
jams a byte after the padding symbol so that the other symbols can't
overlap it.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list