builtin.closure: improove ppc64le closure if PIE#26172
Merged
Merged
Conversation
spytheman
approved these changes
Dec 27, 2025
spytheman
left a comment
Contributor
There was a problem hiding this comment.
Thank you a lot @tankf33der 🙇🏻 .
I am sorry about the time you lost debugging this.
On the bright side, you can think of it as saved time for everyone else that wanted to use V on that CPU, and for most people it would have been a lot longer, or even infinity.
Contributor
|
(the CI failure is unrelated and fixed on master) |
Contributor
Author
|
check report after
All ok. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The lifetime of the ported
ppc64learchitecture invlangis ~250 days.All this time I remembered that closure crashes on
debian13(magic?).When auditing inline assembler support, I ran into this crash again.
Debian13- crashes,Almalinux9- ok.The issue turned out to be that Debian13 enabled
PIEby default.The compiled code relies on special register
R12.Picture below is PIE code. Right from the first lines the code relies on R12 and all calculations are based on it.

No R12 register if -no-pie.

I got access to such real hardware
ppc64lewith such Linux distributions:Only
Debian13doPIEby default in this list.Now
VTEST_ONLY=closure ./v test vlibworks everywhere in my tests.After the
mergeI will check all servers from scratch again because right now there's a mess there and everything is torn apart.This issue cost me 40 hours.