Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ad2143f
Fix arginfo/zpp violation if zend_hrtime is not available
ndossche Jul 23, 2025
beeeee2
Handle broken hrtime in ftp
ndossche Jul 23, 2025
f94c11f
NEWS for hrtime in FTP and standard
ndossche Jul 25, 2025
802e348
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Jul 25, 2025
93b9808
Merge branch 'PHP-8.4'
ndossche Jul 25, 2025
b1fce8a
Add digest algo param to public encrypt and private decrypt
bukka Jul 23, 2025
7c1e461
Removed unused var exec_time and fetch time in opcache/zend_accelerat…
marc-mabe Jul 25, 2025
38da699
Fix linker failure when building opcache statically
arnaud-lb Jun 24, 2025
fa7244f
WS
arnaud-lb Jun 25, 2025
76a42da
Fix
arnaud-lb Jun 25, 2025
488861d
Use memcmp() for consistency
arnaud-lb Jun 25, 2025
733a88c
Fix FreeBSD CI
arnaud-lb Jun 25, 2025
6a6d48b
Update ext/opcache/jit/tls/zend_jit_tls_x86_64.c
arnaud-lb Jun 25, 2025
fec60b5
Add explicit non-PIC test
arnaud-lb Jun 30, 2025
8f04ab7
Add include guard
arnaud-lb Jun 30, 2025
63ac487
Remove unnecessary cast
arnaud-lb Jun 30, 2025
4602ba0
Add __x86_64__ guard for consistency
arnaud-lb Jun 30, 2025
fcbea6e
Run only in ZTS builds
arnaud-lb Jul 4, 2025
cba48fb
Clarify code
arnaud-lb Jul 6, 2025
6ef3b2e
Typo
arnaud-lb Jul 6, 2025
5018245
Single entrypoint for non-phpt tests
arnaud-lb Jul 25, 2025
339c248
MacOS reports Apple Silicon as arm64
arnaud-lb Jul 25, 2025
1916327
The -static flag is not supported on MacOS
arnaud-lb Jul 25, 2025
bf94dea
Run extra tests from FreeBSD action in nightly
arnaud-lb Jul 25, 2025
27d442a
typo
arnaud-lb Jul 25, 2025
800298f
Use a boolean
arnaud-lb Jul 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/actions/apk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="clang gcc binutils-gold lld"

apk update -q
apk add \
util-linux \
Expand Down Expand Up @@ -53,4 +55,5 @@ runs:
postgresql14-dev \
tzdata \
musl-locales \
musl-locales-lang
musl-locales-lang \
$OPCACHE_TLS_TESTS_DEPS
5 changes: 4 additions & 1 deletion .github/actions/apt-x32/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="gcc clang lld"

export DEBIAN_FRONTEND=noninteractive
dpkg --add-architecture i386
apt-get update -y | true
Expand Down Expand Up @@ -44,4 +46,5 @@ runs:
re2c \
unzip \
wget \
zlib1g-dev:i386
zlib1g-dev:i386 \
$OPCACHE_TLS_TESTS_DEPS
5 changes: 4 additions & 1 deletion .github/actions/apt-x64/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="gcc clang lld"

export DEBIAN_FRONTEND=noninteractive

# Install sudo in Docker for consistent actions
Expand Down Expand Up @@ -74,4 +76,5 @@ runs:
libqdbm-dev \
libjpeg-dev \
libpng-dev \
libfreetype6-dev
libfreetype6-dev \
$OPCACHE_TLS_TESTS_DEPS \
7 changes: 7 additions & 0 deletions .github/actions/extra-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: Extra tests
runs:
using: composite
steps:
- shell: sh
run: |
sapi/cli/php run-extra-tests.php
13 changes: 12 additions & 1 deletion .github/actions/freebsd/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ inputs:
configurationParameters:
default: ''
required: false
runExtraTests:
default: false
required: false
runs:
using: composite
steps:
Expand All @@ -17,6 +20,8 @@ runs:
prepare: |
cd $GITHUB_WORKSPACE

OPCACHE_TLS_TESTS_DEPS="gcc"

kldload accf_http
pkg install -y \
autoconf \
Expand All @@ -41,9 +46,11 @@ runs:
webp \
libavif \
`#sqlite3` \
curl
curl \
$OPCACHE_TLS_TESTS_DEPS

./buildconf -f
CC=clang CXX=clang++ \
./configure \
--prefix=/usr/local \
--enable-debug \
Expand Down Expand Up @@ -108,3 +115,7 @@ runs:
--show-slow 1000 \
--set-timeout 120 \
-d zend_extension=opcache.so

if test "${{ inputs.runExtraTests }}" = "true"; then
sapi/cli/php run-extra-tests.php
fi
11 changes: 11 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ jobs:
--asan -x
-d zend_extension=opcache.so
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
Expand Down Expand Up @@ -266,6 +268,8 @@ jobs:
${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
Expand Down Expand Up @@ -355,6 +359,10 @@ jobs:
${{ matrix.run_tests_parameters }}
-d zend_extension=opcache.so
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
with:
debug: ${{ matrix.debug }}
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
Expand Down Expand Up @@ -414,6 +422,8 @@ jobs:
runTestsParameters: >-
-d zend_extension=opcache.so
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
Expand Down Expand Up @@ -1076,3 +1086,4 @@ jobs:
with:
configurationParameters: >-
--${{ matrix.zts && 'enable' || 'disable' }}-zts
runExtraTests: true
4 changes: 4 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ PHP NEWS
. Add support for CURLINFO_CONN_ID in curl_getinfo() (thecaliskan)
. Add support for CURLINFO_QUEUE_TIME_T in curl_getinfo() (thecaliskan)

- OpenSSL:
. Add $digest_algo parameter to openssl_public_encrypt() and
openssl_private_decrypt() functions. (Jakub Zelenka)

- Reflection:
. Fixed bug GH-19187 (ReflectionNamedType::getName() prints nullable type when
retrieved from ReflectionProperty::getSettableType()). (ilutov)
Expand Down
4 changes: 4 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,10 @@ PHP 8.5 UPGRADE NOTES
- libxml:
. libxml_set_external_entity_loader() now has a formal return type of true.

- OpenSSL:
. openssl_public_encrypt() and openssl_private_decrypt() have new parameter
$digest_algo that allows specifying hash digest algorith for OEAP padding.

- PCNTL:
. pcntl_exec() now has a formal return type of false.
. pcntl_waitid() takes an additional resource_usage argument to
Expand Down
3 changes: 2 additions & 1 deletion ext/ftp/ftp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1382,7 +1382,8 @@ static int my_poll(php_socket_t fd, int events, int timeout) {

if (n == -1 && php_socket_errno() == EINTR) {
zend_hrtime_t delta_ns = zend_hrtime() - start_ns;
if (delta_ns > timeout_hr) {
/* delta_ns == 0 is only possible with a platform that does not support a high-res timer. */
if (delta_ns > timeout_hr || UNEXPECTED(delta_ns == 0)) {
#ifndef PHP_WIN32
errno = ETIMEDOUT;
#endif
Expand Down
8 changes: 8 additions & 0 deletions ext/opcache/config.m4
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,23 @@ if test "$PHP_OPCACHE" != "no"; then
IR_TARGET=IR_TARGET_X64
DASM_FLAGS="-D X64APPLE=1 -D X64=1"
DASM_ARCH="x86"
TLS_TARGET="darwin"
],
[*x86_64*|amd64-*-freebsd*], [
IR_TARGET=IR_TARGET_X64
DASM_FLAGS="-D X64=1"
DASM_ARCH="x86"
TLS_TARGET="x86_64"
],
[[i[34567]86*|x86*]], [
IR_TARGET=IR_TARGET_X86
DASM_ARCH="x86"
TLS_TARGET="x86"
],
[aarch64*], [
IR_TARGET=IR_TARGET_AARCH64
DASM_ARCH="aarch64"
TLS_TARGET="aarch64"
])

AS_VAR_IF([PHP_CAPSTONE], [yes],
Expand All @@ -102,6 +106,10 @@ if test "$PHP_OPCACHE" != "no"; then

JIT_CFLAGS="-I@ext_builddir@/jit/ir -D$IR_TARGET -DIR_PHP"
AS_VAR_IF([ZEND_DEBUG], [yes], [JIT_CFLAGS="$JIT_CFLAGS -DIR_DEBUG"])

AS_VAR_IF([PHP_THREAD_SAFETY], [yes], [
ZEND_JIT_SRC="$ZEND_JIT_SRC jit/tls/zend_jit_tls_$TLS_TARGET.c"
])
])

AC_CHECK_FUNCS([mprotect shm_create_largepage])
Expand Down
6 changes: 6 additions & 0 deletions ext/opcache/config.w32
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ if (PHP_OPCACHE != "no") {
DEFINE("IR_TARGET", ir_target);
DEFINE("DASM_FLAGS", dasm_flags);
DEFINE("DASM_ARCH", "x86");
DEFINE("TLS_TARGET", "win");

AC_DEFINE('HAVE_JIT', 1, 'Define to 1 to enable JIT.');

Expand All @@ -52,6 +53,11 @@ if (PHP_OPCACHE != "no") {
ADD_SOURCES(configure_module_dirname + "\\jit",
"zend_jit.c zend_jit_vm_helpers.c",
"opcache", "ext\\opcache\\jit");
if (PHP_ZTS == "yes") {
ADD_SOURCES(configure_module_dirname + "\\jit\\tls",
"zend_jit_tls_win.c",
"opcache", "ext\\opcache\\jit\\tls");
}
ADD_SOURCES(configure_module_dirname + "\\jit\\ir",
"ir.c", "opcache", "ext\\opcache\\jit\\ir");
ADD_SOURCES(configure_module_dirname + "\\jit\\ir",
Expand Down
4 changes: 4 additions & 0 deletions ext/opcache/jit/tls/testing/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.so
*.o
main
main.dSYM
Loading
Loading