Skip to content

gh-149202: Don't use -fno-omit-frame-pointer on ppc64le#149485

Merged
vstinner merged 1 commit intopython:mainfrom
vstinner:ppc64le
May 7, 2026
Merged

gh-149202: Don't use -fno-omit-frame-pointer on ppc64le#149485
vstinner merged 1 commit intopython:mainfrom
vstinner:ppc64le

Conversation

@vstinner
Copy link
Copy Markdown
Member

@vstinner vstinner commented May 7, 2026

The power ABI specification requires that compilers maintain a back chain by default, so unwinding already works without a dedicated frame pointer. Don't use -fno-omit-frame-pointer on ppc64le.

The power ABI specification requires that compilers maintain a back
chain by default, so unwinding already works without a dedicated
frame pointer. Don't use -fno-omit-frame-pointer on ppc64le.
@read-the-docs-community
Copy link
Copy Markdown

Documentation build overview

📚 cpython-previews | 🛠️ Build #32580775 | 📁 Comparing ea140bb against main (612140e)

  🔍 Preview build  

1 file changed
± using/configure.html

@vstinner
Copy link
Copy Markdown
Member Author

vstinner commented May 7, 2026

This PR implements @stratakis' suggestions: #149409 (comment). Extract:

Adding however -fno-omit-frame-pointer forces the compiler to reserve r31 for it adding extra overhead with no benefits.

cc @stratakis @encukou @pablogsal @Fidget-Spinner @savannahostrowski

@vstinner
Copy link
Copy Markdown
Member Author

vstinner commented May 7, 2026

I tested this change manually on Linux ppc64le:

  • ./configure (gcc -O3): OPT=-DNDEBUG -g -O3 -Wall in Makefile
  • ./configure --with-pydebug (gcc -Og): OPT=-g -Og -Wall in Makefile

test_frame_pointer_unwind pass successfully.

@pablogsal
Copy link
Copy Markdown
Member

Thanks Victor!

@vstinner
Copy link
Copy Markdown
Member Author

vstinner commented May 7, 2026

!buildbot PPC64LE

@bedevere-bot
Copy link
Copy Markdown

🤖 New build scheduled with the buildbot fleet by @vstinner for commit ea140bb 🤖

Results will be shown at:

https://buildbot.python.org/all/#/grid?branch=refs%2Fpull%2F149485%2Fmerge

The command will test the builders whose names match following regular expression: PPC64LE

The builders matched are:

  • PPC64LE Fedora Rawhide Clang PR
  • PPC64LE RHEL8 Refleaks PR
  • PPC64LE RHEL8 LTO + PGO PR
  • PPC64LE Fedora Stable Clang PR
  • PPC64LE Fedora Rawhide NoGIL refleaks PR
  • PPC64LE Fedora Rawhide PR
  • PPC64LE CentOS9 LTO PR
  • PPC64LE Fedora Rawhide Clang Installed PR
  • PPC64LE Fedora Stable Refleaks PR
  • PPC64LE Fedora Rawhide LTO PR
  • PPC64LE Fedora Stable PR
  • PPC64LE Fedora Stable LTO + PGO PR
  • PPC64LE CentOS9 LTO + PGO PR
  • PPC64LE Fedora Stable LTO PR
  • PPC64LE Fedora Rawhide NoGIL PR
  • PPC64LE Fedora Rawhide Refleaks PR
  • PPC64LE Fedora Stable Clang Installed PR
  • PPC64LE Fedora Rawhide LTO + PGO PR
  • PPC64LE CentOS9 PR
  • PPC64LE RHEL8 LTO PR
  • PPC64LE RHEL8 PR
  • PPC64LE CentOS9 Refleaks PR

@vstinner vstinner merged commit b3cfd36 into python:main May 7, 2026
65 of 78 checks passed
@vstinner vstinner deleted the ppc64le branch May 7, 2026 09:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants