Repository navigation
Conversation
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.
|
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 |
Please apply skip news to this one. |
|
A patch for the related GCC bug in #160626 is now merged: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128091 If this PR is merged, SPARC will have a fully clean test suite on 3.15. |
|
Thank you. I have no way to test this, but for 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)) |
Thanks! 3.16 is fine. It's tested on Linux, haven't touched Solaris.
Yes, sent PR: python/devguide#1955 |
Teach the manual frame pointer unwinder in
_testinternalcapithe 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 aflushw.Tested on a SPARC T7-1 and a T4-1 (Linux, GCC 16):
ManualStackUnwindTestsfails 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.