-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: php/php-src
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 5683708
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: arnaud-lb/php-src
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 5ee6420
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 11 commits
- 40 files changed
- 2 contributors
Commits on Jun 30, 2025
-
Fix linker failure when building opcache statically
This fixes the following linker error: TLS transition from R_X86_64_TLSGD to R_X86_64_GOTTPOFF against `_tsrm_ls_cache' at 0x12fc3 in section `.text' failed" The error arises from how we obtain information about the _tsrm_ls_cache TLS variable for use in JIT'ed code: Normally, TLS variables are resolved via linker relocations [1], which of course can not be used in JIT'ed code. Therefore we emit the relocation in AOT code and use the result in JIT. Specifically we use a fragment of the "General Dynamic" code sequence described in [1]. Using the full code sequence would give us the address of the variable in the current thread. Therefore we only use a fragment that gives us the variable's TLS index and offset. When Opcache is statically linked into the binary, linkers attempt to relax (rewrite) this code sequence into a more efficient one. However, this fails because they will not recognize the code sequence. We now take a different approach: * Emit the exact full code sequence expected by linkers * Extract the TLS index/offset or TCB offset by inspecting the ASM code, rather than executing it (execution would give us the thread-local address). * This is done in a conservative way so that if the linker did something we didn't expect, we fallback to a safer (but slower) mechanism. [1] https://www.akkadia.org/drepper/tls.pdf
Configuration menu - View commit details
-
Copy full SHA for 58144d2 - Browse repository at this point
Copy the full SHA 58144d2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b43e63b - Browse repository at this point
Copy the full SHA b43e63bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d749db6 - Browse repository at this point
Copy the full SHA d749db6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8623d4f - Browse repository at this point
Copy the full SHA 8623d4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for b192960 - Browse repository at this point
Copy the full SHA b192960View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ba008d - Browse repository at this point
Copy the full SHA 3ba008dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f585b2 - Browse repository at this point
Copy the full SHA 1f585b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f03827 - Browse repository at this point
Copy the full SHA 1f03827View commit details -
Configuration menu - View commit details
-
Copy full SHA for 85bb568 - Browse repository at this point
Copy the full SHA 85bb568View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e09776 - Browse repository at this point
Copy the full SHA 6e09776View commit details -
Merge branch 'required-opcache' into static-opcache-tls-with-required…
…-opcache * required-opcache: Fix expectations in version string tests Remove `--enable-opcache` Remove `zend_extension=opcache` Make OPcache non-optional
Configuration menu - View commit details
-
Copy full SHA for 5ee6420 - Browse repository at this point
Copy the full SHA 5ee6420View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 5683708...5ee6420