GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

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

@shalseth shalseth commented Oct 22, 2026 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

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.

  • Issue: test_c_stack_unwind fails on Linux sparc64 #160253

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@shalseth
pythongh-160253: Fix test_c_stack_unwind manual unwinding on sparc64
d8083e7
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.
@python-cla-bot

python-cla-bot Bot commented Oct 22, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

All commit authors signed the Contributor License Agreement.

CLA signed

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot mentioned this pull request Oct 22, 2026
test_c_stack_unwind fails on Linux sparc64 #160253
Open
@bedevere-app bedevere-app Bot added awaiting review tests Tests in the Lib/test dir labels Oct 22, 2026
@bedevere-app

bedevere-app Bot commented Oct 22, 2026

Copy link
Copy Markdown

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@shalseth shalseth mentioned this pull request Oct 22, 2026
gcc sparc64: Python 3.15 test failure in test_c_stack_unwind (requires -fasynchronous-unwind-tables) sparclinux/issues#120
Open
@shalseth

shalseth commented Oct 22, 2026

Copy link
Copy Markdown
Contributor Author

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@shalseth

shalseth commented Oct 24, 2026

Copy link
Copy Markdown
Contributor Author

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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@encukou encukou added the skip news label Oct 30, 2026
@encukou

encukou commented Oct 30, 2026

Copy link
Copy Markdown
Member

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
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@shalseth shalseth mentioned this pull request Oct 30, 2026
Add SPARC/Linux to the ports and contacts table python/devguide#1955
Merged
@shalseth

shalseth commented Oct 30, 2026

Copy link
Copy Markdown
Contributor Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@encukou

encukou commented Nov 2, 2026

Copy link
Copy Markdown
Member

Thanks!
I'll merge ~Friday if there are no objections.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@kulikjak

kulikjak commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

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
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting review skip news tests Tests in the Lib/test dir

Projects

None yet

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.

3 participants

@shalseth @encukou @kulikjak
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.