1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Commit Graph

144983 Commits

Author SHA1 Message Date
Tim Düsterhus
7134e69ab2 zend_globals: Embed in_autoload into zend_executor_globals (#21202)
* zend_globals: Embed `in_autoload` into `zend_executor_globals`

Nowadays virtually any PHP application is making use of autoloading, making the
lazy allocation of the `HashTable` struct a needless pointer indirection.

* zend_globals: Rename `in_autoload` to `autoload_current_classnames`

The old name `in_autoload` was somewhat misleading by implying a `bool`ean
value rather than a `HashTable`. Since the previous change to embed the
`HashTable` is breaking anyway, we can also rename it.

* UPGRADING.INTERNALS
2026-02-11 22:53:31 +01:00
Michael Voříšek
5330e7f59b Verify bundled sources using CI - boost.context & uriparser (#20438) 2026-02-11 20:24:08 +01:00
Shivam Mathur
66d908f112 ext/session: fix PS_FUNCS() macro expansion (#21196)
Added the missing trailing `;` after `PS_CREATE_SID_FUNC(x)` so `PS_FUNCS(x)` expands to valid prototypes.
2026-02-11 14:54:45 +00:00
Peter Kokot
435e67e075 Remove HAVE_SQLITE3_{CLOSE_V2,ERRSTR} (#18963)
As of PHP 8.5 the minimum required SQLite library is 3.7.17, and this
removes the following preprocessor macros checks:

- HAVE_SQLITE3_CLOSE_V2 (sqlite3_close_v2() function is available since
  SQLite 3.7.14.)
- HAVE_SQLITE3_ERRSTR (sqlite3_errstr() function is available since
  SQLite 3.7.15)
- SQLITE_VERSION_NUMBER should be now always greater than 3006011
  (3.6.11).
2026-02-11 13:13:18 +01:00
Arshid
defc0bec2e ext/dom: Returning a boolean value using RETURN_BOOL (#21188) 2026-02-10 20:10:50 +01:00
Peter Kokot
8032d6fa16 Autotools: Check struct stat.st_blocks with AC_CHECK_MEMBERS (#13562)
The AC_STRUCT_ST_BLOCKS expects fileblocks object to be compiled with
AC_LIBOBJ if stat.st_blocks is missing on the system. This can be
simplified with the usual AC_CHECK_MEMBERS since PHP is using the
stat.st_blocks (and stat.st_blksize) conditionally.

These members are mostly present on all POSIX-based systems except on
Windows these days.

This also removes the obsolete HAVE_ST_BLOCKS symbol:
https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/types.m4?h=v2.72#n1055

Additionally, the st_blksize and st_blocks members are checked
conditionally with HAVE_ preprocessor macros. Instead of filtering
Windows specifically here, the preprocessor macros
HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_BLOCKS can be used.
2026-02-10 19:59:10 +01:00
Peter Kokot
ba996f7ae9 Add note about updated PHP version
[skip ci]
2026-02-10 16:21:31 +01:00
Peter Kokot
4b723900c3 Update minimum required PHP version in Autotools build system (#20933)
At the time of writing, PHP found on host system must be at least 8.0
for build/gen_stub.php and Zend/zend_vm_gen.php scripts to work.

Minimum required version is updated to 8.1 to still support building PHP
from source on any possible old systems, and enabling new features in
build/gen_stub.php, such as readonly properties.
2026-02-10 16:12:30 +01:00
Arshid
c995a6cb4b ext/ftp: Returning a boolean value using RETURN_BOOL (#21187) 2026-02-10 12:26:18 +00:00
Arshid
26559c5815 ext/readline: Returning a boolean value using RETURN_BOOL (#21186) 2026-02-10 12:20:42 +00:00
Gina Peter Banyard
4b01cd1bf3 ext/session/mod_mm: implement VALIDATE_SID handler (#21178)
Rather than "manually" doing it in the READ handler.

At the same time, get rid of various inconsistent legacy handler macro definitions, thus mandating all modules to implement the create and validate SID handlers.

The only handler that remains optional is the update timestamp one.
2026-02-10 12:17:47 +00:00
Ilija Tovilo
a760cf73f0 Merge branch 'PHP-8.5'
* PHP-8.5:
  Disable pkg cache for FreeBSD jobs
2026-02-10 01:17:11 +01:00
Ilija Tovilo
aae3002c28 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Disable pkg cache for FreeBSD jobs
2026-02-10 01:17:05 +01:00
Ilija Tovilo
901ebd21f3 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Disable pkg cache for FreeBSD jobs
2026-02-10 01:16:58 +01:00
Ilija Tovilo
5b227b38e1 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Disable pkg cache for FreeBSD jobs
2026-02-10 01:16:51 +01:00
Ilija Tovilo
10aadd635b Disable pkg cache for FreeBSD jobs
These caches can get massive and evict more useful cache, like ccache.

Closes GH-21179
2026-02-10 01:16:23 +01:00
Dmitry Stogov
90e4f1a9e5 Merge branch 'PHP-8.5'
* PHP-8.5:
  Update IR (#21183)
2026-02-10 01:35:01 +03:00
Dmitry Stogov
7273aa39c9 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Update IR (#21183)
2026-02-10 01:34:45 +03:00
Dmitry Stogov
dd9421d825 Update IR (#21183)
IR commit: a098f9ed6c2f1c2852d6c0921283212aafb4afed
2026-02-10 01:34:09 +03:00
Tim Düsterhus
ad83353a3d Fix line wrapping in NEWS/UPGRADING/UPGRADING.INTERNALS 2026-02-09 22:45:09 +01:00
Tim Düsterhus
d1ffe6afd9 Fix extension order in UPGRADING.INTERNALS 2026-02-09 22:41:27 +01:00
David Carlier
f037d49bb8 Merge branch 'PHP-8.5'
* PHP-8.5:
  Fix GH-21161: socket_set_option() crash with array 'addr' entry as null.
2026-02-09 19:27:40 +00:00
David Carlier
1ff5eb448a Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Fix GH-21161: socket_set_option() crash with array 'addr' entry as null.
2026-02-09 19:27:29 +00:00
David Carlier
19ee3e6697 Fix GH-21161: socket_set_option() crash with array 'addr' entry as null.
in the ipv6 address creation helper we need to use, for the error
message, the converted data rather than assuming the original
is a proper zend_string().

close GH-21166
2026-02-09 19:26:48 +00:00
Arshid
95fb174730 [skip ci] Remove dead code in Zend/zend_multiply.h after zend_error_noreturn() (GH-21153) 2026-02-09 15:13:58 +01:00
Jorg Adam Sowa
29cd577aa6 ci: Add fork protection to workflow verify-bundled-files (GH-21171) 2026-02-09 15:12:05 +01:00
Ilija Tovilo
8bb2312fc5 Merge branch 'PHP-8.5'
* PHP-8.5:
  Improve shared_alloc_shm.c strategy to support OPcache JIT on Solaris
2026-02-09 14:59:04 +01:00
Ilija Tovilo
81de7b964f Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Improve shared_alloc_shm.c strategy to support OPcache JIT on Solaris
2026-02-09 14:58:57 +01:00
Petr Sumbera
7c6f08945f Improve shared_alloc_shm.c strategy to support OPcache JIT on Solaris
The SysV shared memory allocator in OPcache hardcodes a maximum segment size of
32MB (SEG_ALLOC_SIZE_MAX). If the JIT buffer exceeds this, which it does with
the default 64MB size, startup will fail with "Insufficient shared memory!".

The allocator will now try allocating a contiguous buffer first, and only then
use segmentation by searching for continuously smaller powers of 2.

Fixes GH-20718
Closes GH-20719
2026-02-09 14:58:13 +01:00
Ilija Tovilo
fcff846a73 Fix borked FETCH_W+ZEND_FETCH_GLOBAL_LOCK optimization (GH-21121)
Fixes OSS-Fuzz #481014628
Introduced in GH-20628

Co-authored-by: Arnaud Le Blanc <365207+arnaud-lb@users.noreply.github.com>
2026-02-09 13:22:35 +01:00
Gina Peter Banyard
e1b2f1f5cb ext/session: move variable initialization out of if condition 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
8af056206e ext/session: add const qualifiers 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
cc304d14ab ext/session: refactor bin_to_readable() 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
ca08e5f7fe ext/session: reduce scope of variables 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
9026396c26 ext/session: simplify php_session_reset() 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
888b393d2f ext/session: fix typo in comment 2026-02-09 12:11:04 +00:00
Gina Peter Banyard
71096cd873 ext/session: use zend_strings for open handler 2026-02-09 10:49:59 +00:00
Gina Peter Banyard
ba17532fed ext/session: use known 1 char zend_string to update boolean INI setting 2026-02-09 10:49:59 +00:00
Gina Peter Banyard
f6088f574c ext/session: remove session_adapt_url() function
This is unused and only exist for the deprecated (and dangerous) GET/POST session ID feature
2026-02-09 10:49:59 +00:00
Gina Peter Banyard
1041a47ed3 ext/standard: throw ValueError if argument contains null byte in session_module_name()
And fix error message to use 'must not' rather than 'cannot'
2026-02-09 10:49:59 +00:00
Gina Peter Banyard
a0de1ace41 ext/session: refactor session_write_close()
By making the underlying function return a bool and not do duplicate checks
2026-02-09 10:49:59 +00:00
Gina Peter Banyard
8926dc0140 ext/session: refactor session_reset()
By making the underlying function return a bool and not do duplicate checks
2026-02-09 10:49:59 +00:00
Gina Peter Banyard
a9496bdc22 ext/session: refactor session_abort()
By making the underlying function return a bool and not do duplicate checks
2026-02-09 10:49:59 +00:00
Gina Peter Banyard
a8bdfa665b ext/session: remove mod_user_class_name global 2026-02-09 10:49:59 +00:00
Ilija Tovilo
96be28cb0e Merge branch 'PHP-8.5'
* PHP-8.5:
  [CI] Use MySQL LTS version
2026-02-08 17:00:53 +01:00
Ilija Tovilo
d992576abc Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  [CI] Use MySQL LTS version
2026-02-08 17:00:28 +01:00
Ilija Tovilo
2cabea66b3 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [CI] Use MySQL LTS version
2026-02-08 17:00:20 +01:00
Ilija Tovilo
44b0b14ae0 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [CI] Use MySQL LTS version
2026-02-08 17:00:11 +01:00
武田 憲太郎
2a3e970d4c [CI] Use MySQL LTS version
Update the MySQL version used in CI from 8.3 to 8.4, the current MySQL LTS
release. CI has been using MySQL 8.3 due to a MySQL-side bug that caused test
failures (see GH-14112, GH-14113, GH-14120). That issue has now been fixed
upstream in MySQL 8.4.8.

References:

* MySQL 8.4.8 release notes (pluggable authentication fix):
  https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-8.html#mysqld-8-4-8-pluggable-auth
* MySQL bug tracker:
  https://bugs.mysql.com/bug.php?id=114876#c555902
* Docker image availability:
  https://hub.docker.com/_/mysql/tags?name=8.4

Closes GH-21154
2026-02-08 16:54:00 +01:00
Jorg Adam Sowa
0e0f5476cf [skip ci] Remove PHP-8.1 from push.yml triggers (GH-21157) 2026-02-08 16:49:40 +01:00