GeezerVison is showing github.com — gh-160253: Fix test_c_stack_unwind manual unwinding on sparc64 by shalseth · Pull Request #160255 · python/cpython
Conversation
shalseth
commented
Oct 22, 2026
•
edited by bedevere-app
Bot
Loading
Uh oh!
There was an error while loading. Please reload this page.
Teach the manual frame pointer unwinder in _testinternalcapi the SPARC V9 frame layout. There's no frame record on SPARC: the caller's %fp (biased by 2047) and its return address are in slots 14 and 15 of the register window save area at fp, and they're only in memory after a flushw.
Tested on a SPARC T7-1 and a T4-1 (Linux, GCC 16): ManualStackUnwindTests fails without the change and passes with it, and the unwinder walks all the way down to _start. No change on x86_64.
The GNU backtrace test still fails on sparc64, that's the missing unwind tables from the issue (GCC PR 128091), not this code.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
SPARC V9 has no frame record. The caller's %fp (biased by 2047) and return
address are in slots 14 and 15 of the register window save area at fp, and
are only there after the windows have been flushed to the stack.
|
All commit authors signed the Contributor License Agreement.

|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.
If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.
Please apply skip news to this one.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Thank you. I have no way to test this, but for #ifdef blocks in test-only code, I'n inclined to just trust you.
Note that per PEP 11, we don't do backports for unsupported platforms: I can merge for 3.16 but ask you to keep a 3.15 patch.
If you'd like to provide/coordinate support for CPython on SPARC, you might want to add yourself here: https://devguide.python.org/developer-workflow/porting/#ports
@kulikjak, do you want to test this? (Assuming you have access to a SPARC box, from #78952 (comment))
|
kulikjak reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Thank you. I have no way to test this, but for #ifdef blocks in test-only code, I'n inclined to just trust you. Note that per PEP 11, we don't do backports for unsupported platforms: I can merge for 3.16 but ask you to keep a 3.15 patch.
Thanks! 3.16 is fine. It's tested on Linux, haven't touched Solaris.
If you'd like to provide/coordinate support for CPython on SPARC, you might want to add yourself here: https://devguide.python.org/developer-workflow/porting/#ports
Yes, sent PR: python/devguide#1955
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Thanks!
I'll merge ~Friday if there are no objections.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
Thanks for the ping and for the fix - I tested it on Solaris SPARC and the test failure is gone here as well.
|
shalseth reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|