Haiku: Apply .NET-specific llvm-libunwind patches#126785
Conversation
.NET uses `setRegister` with 3 arguments, the last being a "location" for the register. For calls without a known location, `0` is passed.
Updated to include the patch at be5f98f for Haiku-specific `llvm-libunwind` code.
|
As mentioned here: #55803 (comment) If this PR is approved, could you please merge instead of squashing/rebasing to retain the hash of the reference? Thanks! |
There was a problem hiding this comment.
Pull request overview
Updates the vendored llvm-libunwind Haiku x86_64 sigreturn unwinding path to use the 3-argument setRegister(reg, value, location) form that .NET expects (passing 0 when no register location is tracked), and records the additional upstream patch reference.
Changes:
- Update Haiku x86_64
stepThroughSigReturn()to pass an explicitlocationargument (0) to all_registers.setRegister(...)calls. - Add the corresponding dotnet/runtime patch reference to
llvm-libunwind-version.txt.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/native/external/llvm-libunwind/src/UnwindCursor.hpp |
Fix Haiku sigreturn register restoration call sites to match the 3-arg setRegister API usage (with location = 0). |
src/native/external/llvm-libunwind-version.txt |
Document the additional applied .NET patch commit for the vendored libunwind. |
|
/ba-g unrelated failures that have been fixed in main already |
|
Ah I am sorry - I forgot to merge without squashing. |
|
Yeah, was gonna mention - should I open another PR referencing the official commit hash? |
|
The commit with the patch is still going to be there, it just won't show up in the history. I do not think you need to do anything. It will be cleaned up during next llvm-unwind update where we merge the patches together. |
I wonder though, will it be tied to |
It won't disappear. For example check dotnet/coreclr#10167 - very old PR, both the account and fork are deleted, but you can still see the individual commits. |
|
Yes, it's not a problem. It's just a little bit of extra work to find commit->PR. These become orphaned commits, but thanks to git blame, we can pinpoint to PR with two clicks. :) |
.NET uses
setRegisterwith 3 arguments, the last being a "location" for the register.For calls without a known location,
0is passed.This updates the recent Haiku-specific call sites to
setRegisterto match what .NET uses.Part of #55803.