Commit Graph

134983 Commits

Author SHA1 Message Date
Dmitry Stogov
f5efaa39fa Update IR
IR commit: 873f13dd933acc38ba4cfe2a4aa8558867992a7e
2024-02-21 01:48:38 +03:00
Dmitry Stogov
23aac16d13 Update IR
IR commit: 67477a78251aafe35515eb7a339e309a0e0d4919
2024-02-21 01:13:31 +03:00
Niels Dossche
6c735739f1 Merge branch 'PHP-8.3'
* PHP-8.3:
  Workaround ZTS persistent resource crashes (PHP 8.3 and lower)
2024-02-20 21:26:39 +01:00
Niels Dossche
3ab7aa001f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Workaround ZTS persistent resource crashes (PHP 8.3 and lower)
2024-02-20 21:25:06 +01:00
Niels Dossche
2f605820a4 Workaround ZTS persistent resource crashes (PHP 8.3 and lower)
For master (8.4-dev) I merged GH-13381. But that PR changes public API
of TSRM, so cannot be used on lower branches.

This patch is a safe workaround for the issue, in combination with a
pre-existing fix using `ifdef ZTS + if (module_started)` inside pgsql
and odbc. The idea is to delay unloading modules until the persistent
resources are destroyed. This will keep the destructor code accessible
in memory.

This is not a proper fix on its own, because we still need the
workaround of not accessing globals after module destruction.
The proper fix is in master.

Closes GH-13388.
2024-02-20 21:24:43 +01:00
Peter Kokot
847c7459eb
Remove Autoconf check for C99 header stdint.h (#13444)
This removes the redundant check that defines the HAVE_STDINT_H symbol,
which is used in the ext/date/lib and ext/fileinfo/libmagic but on both
places patches and other header files take care of this so it is always
included unconditionally in php-src.

Autoconf by default still automatically checks for stdint.h internally
in current versions, so for now the HAVE_STDINT_H symbol is still
defined in php_config.h and will be made redundant along the way.
2024-02-20 20:19:28 +01:00
Peter Kokot
b41a5023f9
Remove malloc.h (#13436)
This removes the deprecated malloc.h header Autoconf check on *nix
systems and its HAVE_MALLOC_H symbol. It can be replaced mostly with the
stdlib.h. The libgd usptream also doesn't include it anymore.

On Windows, it is still used for some memory allocation functions, but
can be replaced with stdlib.h in the future.
2024-02-20 18:02:54 +01:00
Peter Kokot
056c43f848 [skip ci] Sync file permissions in Git repository
Git can track executable (0755) and non-executable (0644) file modes.
This is a minor file permissions sync across the php-src Git repository.

- build/config.guess (0755 as done upstream)
- build/config.sub (0755 as done upstream)
- ext/*/?*.stub.php (0644)
- ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk (0755 due to shebang usage)
2024-02-20 17:58:47 +01:00
Arnaud Le Blanc
3baa606f58 Specify what is expected in zend_call_stack.base 2024-02-20 15:34:44 +01:00
Peter Kokot
03f15534a1 Fix Autoconf configure new lines
The `dnl` (delete to next line) directive in this combination of `m4_if`
macros and arguments isn't properly replaced and a literal dnl string is
appended in the configure script. The `[]dnl` works ok.
2024-02-19 21:30:29 +01:00
Matteo Beccati
291a8bdc26 Merge branch 'PHP-8.3' 2024-02-19 15:19:26 +01:00
Matteo Beccati
56b7db6964 Merge branch 'PHP-8.2' into PHP-8.3 2024-02-19 15:19:12 +01:00
Matteo Beccati
5373f5dd9d Fix test on non-UTC environments 2024-02-19 15:18:48 +01:00
Peter Kokot
0ddc3a23fa [skip ci] Fix Intel CET check in ext/pcre
This adds test program body `int main(void) { return 0; }` and fixes the
configure step with cache enabled (`configure -C`).
2024-02-19 14:25:40 +01:00
Gina Peter Banyard
a45048b983
Zend/tests/offsets: Add test for fetching reference of an object container 2024-02-19 12:26:44 +00:00
Dmitry Stogov
e3683ea479 Merge branch 'PHP-8.3'
* PHP-8.3:
  Prevent recording traces started from usupported VM instruction
2024-02-19 13:23:14 +03:00
Dmitry Stogov
00259952e4 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Prevent recording traces started from usupported VM instruction
2024-02-19 13:23:05 +03:00
Dmitry Stogov
728b81d92e Prevent recording traces started from usupported VM instruction 2024-02-19 13:22:30 +03:00
Ilija Tovilo
fd47cd8b69
[skip ci] Fix ldap skipif 2024-02-19 10:16:13 +01:00
Peter Kokot
51050427f4
Remove obsolescent AC_C_INLINE Autoconf macro (#13429)
This macro defines the inline keyword to be `__inline__`, `__inline`,
or empty, based on the compiler inline support. Since PHP requires C99,
which has the inline keyword definition and all current compilers
support it, this check is redundant and not needed anymore.
2024-02-18 23:55:50 +00:00
Ilija Tovilo
f332e53082
[skip ci] Fix docs glob pattern
* does not refer to nested files.
2024-02-18 20:39:00 +01:00
Ilija Tovilo
1beb778b3a
Merge branch 'PHP-8.3'
* PHP-8.3:
  [skip ci] Fix paths-ignore glob pattern
2024-02-18 20:38:26 +01:00
Ilija Tovilo
3d2f9883ba
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Fix paths-ignore glob pattern
2024-02-18 20:38:11 +01:00
Ilija Tovilo
a18cf333ba
[skip ci] Fix paths-ignore glob pattern
* does not work for nested files.
2024-02-18 20:37:26 +01:00
Ilija Tovilo
a4dfa35f93
Fix docs typo 2024-02-18 20:31:54 +01:00
Peter Kokot
187f6857df
[skip ci] Update tidy.php excludes (#13425)
- ext/bcmath/libbcmath removed, because it is forked and maintained in
  php-srx. There doesn't seem to be any maintained upstream libbcmath.
- Added bundled ext/dom/lexbor.
- Updated JIT bundled files for ext/opcache/jit/ir.
2024-02-18 18:44:49 +01:00
Peter Kokot
711e452037
Rename HAVE_PHP_SOAP symbol on Windows ext/soap (#13426)
This syncs the symbol name with the *nix build, where HAVE_SOAP is
defined.
2024-02-18 18:01:12 +01:00
David CARLIER
cc934d048c
sapi/fpm: little simplification for the kqueue backend. (#13423) 2024-02-18 15:01:41 +00:00
Niels Dossche
60518e9695
Update error handling when node cannot be added (#13421)
This can only fail on OOM, so be consistent with the other locations and
throw an INVALID_STATE_ERR.
2024-02-18 15:35:41 +01:00
Máté Kocsis
f1d2de7b43
Fix links to "old" documentation and mention the new one in the README
[skip-ci]
2024-02-18 14:37:20 +01:00
Kamil Tekiela
50598a7097
Tidy up pdo_mysql_attr_max_buffer_size.phpt 2024-02-18 13:09:19 +01:00
Saki Takamachi
d433035319
Fixed tests for libmysql (#13424) 2024-02-18 13:08:31 +01:00
Kamil Tekiela
1d45357409
Tidy up UT and add NEWS entry 2024-02-18 12:47:30 +01:00
Ilija Tovilo
19d2b84788
Create book for docs
Closes GH-13338
2024-02-18 12:16:31 +01:00
Saki Takamachi
68f10504de
Fixed GH-13167 Fixed the behavior of bindValue and bindParam. (#13384)
Fixed to generate an error when a non-scalar value is passed in
`PDO_PARAM_EVT_EXEC_PRE` of `pdo_mysql_stmt_param_hook` unless
it is a `Stringable` object.
2024-02-18 12:10:21 +01:00
Máté Kocsis
10957e498c
Do not generate frameless info items when func info generation is disabled
While here, I fixed newlines around arginfo and function entry generation. Previously, newlines were repeated.
2024-02-18 11:39:00 +01:00
Máté Kocsis
90bf429bae
Remove unused register_html_constants() function 2024-02-18 09:17:04 +01:00
Ilija Tovilo
ec9b68cb6a
[skip ci] Skip JIT tests for Apple Silicon + ZTS
JIT will be disabled for Apple Silicon + ZTS anyway. See:

6db95512b4
2024-02-18 00:19:47 +01:00
Ilija Tovilo
9f1b43f508
Merge branch 'PHP-8.3'
* PHP-8.3:
  Disable JIT on Apple Silicon + ZTS
2024-02-18 00:08:52 +01:00
Ilija Tovilo
f057d2b138
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Disable JIT on Apple Silicon + ZTS
2024-02-18 00:08:42 +01:00
Ilija Tovilo
6db95512b4
Disable JIT on Apple Silicon + ZTS
Apple Silicon has stricter rules about rwx mmap regions. They need to be created
using the MAP_JIT flag. However, the MAP_JIT seems to be incompatible with
MAP_SHARED. ZTS requires MAP_SHARED so that some threads may execute code from a
page while another writes/appends to it. We did not find another solution, other
than completely disabling JIT for Apple Silicon + ZTS.

See discussion in https://github.com/php/php-src/pull/13351.

Co-authored-by: Peter Kokot <peterkokot@gmail.com>
Fixes GH-13400
Closes GH-13396
2024-02-18 00:07:46 +01:00
Peter Kokot
76b7c5cc78 [skip ci] Make tidy.php executable 2024-02-17 18:30:04 +01:00
Saki Takamachi
ed1c9d8954
ext/standard: Add more tests to round() (#13399) 2024-02-17 13:44:55 +00:00
Niels Dossche
ae5beff61b
Upgrade bundled pcre2lib to 10.43 (#13413) 2024-02-17 14:15:04 +01:00
David CARLIER
09415077f9
ext/ldap: few new unit tests (tls13 protocol). (#13409) 2024-02-16 18:26:08 +00:00
Jorg Adam Sowa
492b9e09e9
Add entry on return type of long2ip to NEWS (#13408)
[skip ci] add entry on return type of long2ip to NEWS and to UPGRADING.
2024-02-16 17:31:21 +00:00
Jorg Adam Sowa
e7b1f2a95b
Change long2ip return type (#13395) 2024-02-16 17:11:18 +01:00
David CARLIER
eaaffae555
zend_call_stack sort of GH-13358 follow-up. (#13368)
for threaded context, it solely uses a new api only available on
illumos.
Here using a common older api to get the stack info for the current
thread.
while at it, completing stack_limit_010 test for these platforms.
2024-02-16 14:01:03 +00:00
Peter Kokot
b5c3cbf94b
Check sockaddr_storage.ss_family with AC_CHECK_MEMBERS (#13407)
This simplifies the check. On AIX 6 and newer, the ss_family is
available, if compiled without defining COMPAT_43 (BSD 4.3
compatibility).
2024-02-16 14:24:55 +01:00
Peter Kokot
25923987b5
Refactor PHP_SOCKADDR_CHECKS (#13406)
Instead of the project macro, the sockaddr_storage and sockaddr.sa_len
can be checked with the AC_CHECK_TYPES and AC_CHECK_MEMBERS by including
the sys/socket.h. Some systems (~1988) didn't include the sys/types.h in
the socket.h (obsolete on current systems).

These macros by default define the HAVE_STRUCT_SOCKADDR_STORAGE and
HAVE_STRUCT_SOCKADDR_SA_LEN.
2024-02-16 13:29:20 +01:00