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-115802: Remove no-plt for Linux AArch64 by diegorusso · Pull Request #148238 · python/cpython

Conversation

@diegorusso

@diegorusso diegorusso commented Apr 8, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

Removing -fno-plt makes Linux stencils use more direct call relocations and fewer GOT-indirect call sequences. On AArch64 it means CALL26 instead of adrp/ldr/blr GOT calls

This improves code size and some complexity of the JIT stencils. It reduces the amount of GOT-specific patching the JIT has to do.

  • Issue: Improving JIT code quality #115802

Sorry, something went wrong.

Uh oh!

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

All reactions
@diegorusso
pythonGH-115802: Remove no-plt for Linux targets
ba32120
@diegorusso
diegorusso requested review from Fidget-Spinner and markshannon April 8, 2026 06:55
@diegorusso
diegorusso requested review from brandtbucher and savannahostrowski as code owners April 8, 2026 06:56
@bedevere-app bedevere-app Bot added the awaiting core review label Apr 8, 2026
@bedevere-app bedevere-app Bot mentioned this pull request Apr 8, 2026
Improving JIT code quality #115802
Closed
8 of 13 tasks
blurb-it Bot and others added 2 commits April 8, 2026 06:59
@blurb-it
📜🤖 Added by blurb_it.
89e4994
@diegorusso
Revert changes for Linux x86-64
6714906
@diegorusso diegorusso changed the title GH-115802: Remove no-plt for Linux targets GH-115802: Remove no-plt for Linux AArch64 Apr 8, 2026
@diegorusso

diegorusso commented Apr 8, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor Author

I had to revert the x86-64 changes as they are more involved and require more investigation. I'm going to create a new issue for changing x86-64 Linux target: #148256

All reactions

Sorry, something went wrong.

Uh oh!

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

@diegorusso diegorusso mentioned this pull request Apr 8, 2026
JIT: drop -fno-plt on Linux x86-64 #148256
Open
@Fidget-Spinner

Fidget-Spinner commented Apr 8, 2026

Copy link
Copy Markdown
Member

Do you have any numbers for this?

All reactions

Sorry, something went wrong.

Uh oh!

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

@diegorusso

diegorusso commented Apr 8, 2026 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor Author

Do you have any numbers for this?

Relocation Before (-fno-plt) After (default) Delta
R_AARCH64_CALL26 0 368 +368
R_AARCH64_JUMP26 269 269 0
R_AARCH64_ADR_GOT_PAGE 831 461 -370
R_AARCH64_LD64_GOT_LO12_NC 829 461 -368

Before all the calls were done via GOT, now only 55% are done via the GOT and the rest using a direct bl

All reactions

Sorry, something went wrong.

Uh oh!

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

Fidget-Spinner
Fidget-Spinner approved these changes Apr 8, 2026
View reviewed changes
@bedevere-app bedevere-app Bot added awaiting merge and removed awaiting core review labels Apr 8, 2026
@diegorusso
diegorusso merged commit e11315d into python:main Apr 8, 2026
82 checks passed

Uh oh!

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

@bedevere-app bedevere-app Bot removed the awaiting merge label Apr 8, 2026
@diegorusso
diegorusso deleted the drop-no-plt branch April 8, 2026 15:34
@brandtbucher

brandtbucher commented Apr 8, 2026

Copy link
Copy Markdown
Member

Sorry, didn’t have a chance to look at this yet. What happens if the jump is outside the 26 bit range? The trampolines get used? Were the trampolines being used at all before?

All reactions

Sorry, something went wrong.

Uh oh!

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

@diegorusso

diegorusso commented Apr 8, 2026

Copy link
Copy Markdown
Contributor Author

Sorry, didn’t have a chance to look at this yet. What happens if the jump is outside the 26 bit range? The trampolines get used? Were the trampolines being used at all before?

Earlier no trampolines were used at all. Now if a jump is out of range, the trampoline is generated.

All reactions

Sorry, something went wrong.

Uh oh!

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

ljfp pushed a commit to ljfp/cpython that referenced this pull request Apr 25, 2026
@diegorusso @ljfp
pythonGH-115802: Remove no-plt for Linux AArch64 (python#148238)
05b7318
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Fidget-Spinner Fidget-Spinner Fidget-Spinner approved these changes
@markshannon markshannon Awaiting requested review from markshannon
@brandtbucher brandtbucher Awaiting requested review from brandtbucher brandtbucher is a code owner
@savannahostrowski savannahostrowski Awaiting requested review from savannahostrowski

Uh oh!

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

Assignees

No one assigned

Labels

None yet

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

@diegorusso @Fidget-Spinner @brandtbucher
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.