forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 1
PoC single entrypoint for non-phpt tests #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Conversation
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
Part of phpGH-19210. Closes phpGH-19219.
* PHP-8.3: NEWS for hrtime in FTP and standard Handle broken hrtime in ftp Fix arginfo/zpp violation if zend_hrtime is not available
* PHP-8.4: NEWS for hrtime in FTP and standard Handle broken hrtime in ftp Fix arginfo/zpp violation if zend_hrtime is not available
Specifically, it is added to openssl_public_encrypt() and openssl_private_decrypt() functions. The purpose is to specify digest algorithm for OEAP padding. It currently defaults to SHA1 for some OpenSSL versions which is not preferred for modern setup and causes problems in compatibility with web crypto. Closes phpGH-19223
d8ec09b to
e2530cb
Compare
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
Co-authored-by: Tim Düsterhus <[email protected]>
6ef6581 to
89e21b0
Compare
89e21b0 to
bf94dea
Compare
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.
No description provided.