1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00

93 Commits

Author SHA1 Message Date
Michael Voříšek
5330e7f59b Verify bundled sources using CI - boost.context & uriparser (#20438) 2026-02-11 20:24:08 +01:00
Michael Voříšek
7db647dd99 Verify bundled PCRE2 in CI
Closes GH-20354
2025-11-12 18:23:01 +01:00
Gina Peter Banyard
7c6affd617 Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Update NEWS for recent pgsql bugfix
  ext/pgsql: Fix segfaults when attempting to fetch row into a non-instantiable class name (#20180)
2025-11-04 00:09:44 +00:00
Gina Peter Banyard
afca514c3b Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Update NEWS for recent pgsql bugfix
  ext/pgsql: Fix segfaults when attempting to fetch row into a non-instantiable class name (#20180)
2025-11-04 00:08:42 +00:00
Gina Peter Banyard
94dc6ae871 ext/pgsql: Fix segfaults when attempting to fetch row into a non-instantiable class name (#20180)
Also fix Windows CI with Postgres and CLEAN sections

---------

Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
2025-11-04 00:04:30 +00:00
Ilija Tovilo
08ccbc46aa Merge branch 'PHP-8.4' into PHP-8.5
* PHP-8.4:
  Change master branch check to 8.6
2025-09-28 11:56:26 +02:00
Ilija Tovilo
a6b32bd8fc Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Change master branch check to 8.6
2025-09-28 11:56:18 +02:00
Ilija Tovilo
8756ee034d Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Change master branch check to 8.6
2025-09-28 11:56:11 +02:00
Ilija Tovilo
5dd764b1b3 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Change master branch check to 8.6
2025-09-28 11:56:01 +02:00
Shivam Mathur
107075605d Change master branch check to 8.6 2025-09-28 09:54:13 +05:30
Shivam Mathur
6147be32fc Merge branch 'PHP-8.3' into PHP-8.4 2025-08-06 00:05:28 +00:00
Shivam Mathur
f08ac4f1c9 Merge branch 'PHP-8.2' into PHP-8.3 2025-08-06 00:04:58 +00:00
Shivam Mathur
871de14ceb Merge branch 'PHP-8.1' into PHP-8.2 2025-08-06 00:03:49 +00:00
Shivam Mathur
8199cad99f Fix master branch check in find-target-branch.bat (#19385) 2025-08-06 05:32:36 +05:30
Arnaud Le Blanc
7b3e68ff69 Fix error handling inconsistency with opcache
When opcache is enabled, error handling is altered in the following ways:

 * Errors emitted during compilation bypass the user-defined error handler
 * Exceptions emitted during class linking are turned into fatal errors

Changes here make the behavior consistent regardless of opcache being enabled or
not:

 * Errors emitted during compilation and class linking are always delayed and
   handled after compilation or class linking. During handling, user-defined
   error handlers are not bypassed. Fatal errors emitted during compilation or
   class linking cause any delayed errors to be handled immediately (without
   calling user-defined error handlers, as it would be unsafe).
 * Exceptions thrown by user-defined error handlers when handling class linking
   error are not promoted to fatal errors anymore and do not prevent linking.

Fixes GH-17422.
Closes GH-18541.
Closes GH-17627.

Co-authored-by: Tim Düsterhus <tim@bastelstu.be>
2025-07-27 11:01:49 +02:00
Arnaud Le Blanc
7b4c14dc10 Make OPcache non-optional
This removes the --enable-opcache/--disable-opcache configure switch. OPcache
is now always builtin. The default value of opcache.enable and
opcache.enable_cli is unchanged.

RFC: https://wiki.php.net/rfc/make_opcache_required

Closes GH-18961.

Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com>
2025-07-27 09:40:22 +02:00
Jakub Zelenka
b9844b545f Merge branch 'PHP-8.4' 2025-07-16 17:32:20 +02:00
Jakub Zelenka
a57f58253a Merge branch 'PHP-8.3' into PHP-8.4 2025-07-16 17:31:24 +02:00
Jakub Zelenka
eade5c17ea Fix GH-18529: additional inheriting of TLS int options
This is for LDAP_OPT_X_TLS_PROTOCOL_MIN and LDAP_OPT_X_TLS_PROTOCOL_MAX

It also adds a test that uses LDAPCONF with TLS max version lower than
the minimum TLS server version so it should always fail. However it
does not fial for the second case without this change which confirms
that the change works as expected.

Closes GH-18676
2025-07-16 17:29:42 +02:00
Shivam Mathur
720917f39a Merge branch 'PHP-8.4' 2025-06-25 02:03:18 +05:30
Shivam Mathur
d2a30acf33 Merge branch 'PHP-8.3' into PHP-8.4 2025-06-25 02:01:59 +05:30
Shivam Mathur
dc79f4c8c6 Merge branch 'PHP-8.2' into PHP-8.3 2025-06-25 02:01:24 +05:30
Shivam Mathur
91f2458020 Merge branch 'PHP-8.1' into PHP-8.2 2025-06-25 02:00:11 +05:30
Shivam Mathur
6233dc6210 Switch to windows-2022 in CI (#18927)
* Switch to windows-2022 in CI

windows-2019 runner will be dropped by GitHub on 2025-06-30.

* xfail test cases that fail on windows-2022
2025-06-25 01:57:07 +05:30
Saki Takamachi
23687672f3 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fixed GH-17383 - pdo_firebird: PDOException has wrong code and message since PHP 8.4 (#18072)
2025-04-19 14:11:35 +09:00
Saki Takamachi
685baf77df Fixed GH-17383 - pdo_firebird: PDOException has wrong code and message since PHP 8.4 (#18072)
Closes #18072
Fixes #17383
2025-04-19 14:11:20 +09:00
Ilija Tovilo
1009ff65cc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Upgrade security branches to Ubuntu 22.04
2025-03-06 15:24:35 +01:00
Ilija Tovilo
5fcc8d4cd1 Upgrade security branches to Ubuntu 22.04
20.04 goes out of security support in 2 months. Backporting various
commits.

See d98963a071
See af721c9c36
See 378b79b90c

Closes GH-17963
2025-03-06 15:24:15 +01:00
Christoph M. Becker
08ace8409d Merge branch 'PHP-8.4'
* PHP-8.4:
  Prevent using system DLLs when running the tests
2025-02-16 23:08:21 +01:00
Christoph M. Becker
7a734caacc Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Prevent using system DLLs when running the tests
2025-02-16 23:06:54 +01:00
Christoph M. Becker
c7bc14dd6b Prevent using system DLLs when running the tests
The search order for DLLs on Windows is (simplified):

* the application folder
* the system folder
* all folders in the `PATH`

(The full details are documented on Microsoft Learn[1].)

As is, we're adding `deps\bin` to the `PATH` when running the tests,
but any DLLs in the system folder take precedence, so these would be
used instead of our intended dependencies.  To mitigate that, we copy
over all DLLs from `deps\bin` to our application folder (i.e. where
php.exe, php-cgi.exe and phpdbg.exe are placed).

Since we're doing this, there is no more need to attempt to remove the
OpenSSL DLLs in the system folder (what seems to be a bad idea anyway).

[1] <https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order>

Closes GH-17805.
2025-02-16 23:06:04 +01:00
Christoph M. Becker
ed9c283589 Fail build_task.bat if main nmake failed (GH-17820)
Otherwise we may not notice Windows CI build failures.

Fixes GH-17818.
2025-02-15 18:26:11 +01:00
Christoph M. Becker
fe9c9049ef Elevate Windows CI to /W3 (sans C4018/C4267) (GH-17665)
C4018[1] is about unsigned/signed comparisons; C4267[2] is about
conversion from `size_t` to a "smaller" type.  We likely should resolve
these warnings in the long run, but for now, it seems like a no brainer
to elevate to `/W3` even if we have to exempt two additional categories
of warnings, since we can catch some others.  And we no longer need to
elevate C4010[3] to a higher level to catch it.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4018>
[2] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4267>
[3] <https://learn.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4013>
2025-02-14 17:39:54 +01:00
Christoph M. Becker
e4999275c2 Fix GH-17658: COMPersistHelper::LoadFromStream() can segfault (GH-17659)
* Fix GH-17658: COMPersistHelper::LoadFromStream() can segfault

The actual fix is trivial, but to be able to test the behavior we have
to introduce an own COM object, since existing persistable objects
likely implement `IPersistInit`, not only `IPersist`.  We also want to
avoid further test dependencies on possibly unavailable objects, such
as `Word.Application`.

To this purposes, we add a small COM in-process server, which may be
extended for other testing purposes.  We keep it simple by implementing
it in C++, but without using any more sophisticated frameworks like ATL.

This component needs to be built explicitly (`nmake comtest.dll`), and
also needs to be explicitly registered (`nmake register_comtest`).
When no longer needed, it is possible to unregister the component
(`nmake unregister_comtest`).
2025-02-11 12:42:25 +01:00
Christoph M. Becker
a611be4c07 Elevate Windows CI to /W2 (sans C4146/C4244) (GH-17581)
C4146[1] is about unary minus applied to unsigned operands; that
behavior is well defined, and apparently used deliberately in the code
base.

C4244[2] is about possible loss of data when converting to another
arithmetic type.  This is addressed by another PR[3].

Anyhow, it seems like a no brainer to elevate to `/W2` even if we have
to exempt two categories of warnings, since we can catch some others.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-2-c4146?view=msvc-170>
[2] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-2-c4244>
[3] <https://github.com/php/php-src/pull/17076>
2025-02-01 12:25:24 +01:00
Jakub Zelenka
5ba299be18 Merge branch 'PHP-8.4' 2025-01-06 12:21:20 +01:00
Jakub Zelenka
35c03c165e Merge branch 'PHP-8.3' into PHP-8.4 2025-01-06 12:20:50 +01:00
Jakub Zelenka
3606701f48 Merge branch 'PHP-8.2' into PHP-8.3 2025-01-06 12:19:36 +01:00
Jakub Zelenka
5be673d29e Merge branch 'PHP-8.1' into PHP-8.2 2025-01-06 12:18:54 +01:00
Jakub Zelenka
9e1b58274e Test stream_context_tcp_nodelay_server on Windows
Closes GH-17308
2025-01-05 14:44:22 +01:00
Christoph M. Becker
7e1a241b09 Reduce excessive stack reserve for testing in CI (GH-17166)
For some reason the stack reserve of php.exe and php-cgi.exe is very
large on Windows (64MB)[1].  While this might not be bad for production
purposes, it causes stack_limit_014.phpt to be unbearably slow; the
test may easily run for a minute, and due to a recent `stream_select()`
improvement[2], that can cause a timeout, what triggers the test to be
run again.  So this single test case may run for two minutes, and still
might fail (happened a couple of times).

Instead of skipping the test in CI, we reduce the stack reserve to 8MB,
what improves the performance of this test case (and maybe others), and
should still be good enough for CI.

[1] <54906c760f>
[2] <b614b4a69a>
2024-12-16 12:37:06 +01:00
Christoph M. Becker
85731e8830 [skip ci] Add nightly job for x64 Windows with ASan enabled
It seems reasonable to have an ASan job on Windows, especially to be
able to check Windows specific code.  Since the tests may take about
70 minutes, it doesn't make sense to add these for pushes, but for a
nightly job that should be okay.

Closes GH-17087.
2024-12-09 12:01:19 +01:00
Christoph M. Becker
2473f57ba7 Elevate C4013 to level 1 in CI (GH-16986)
C4013 warns about undefined functions[1], but for some reason it's only
a level 3 warning, and such suppressed by default (usually there will be
link errors afterwards, though).  It appears to be sensible to elevate
the warning to level 1, so it will be converted to a compile error.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4013>
2024-11-29 12:15:26 +01:00
Christoph M. Becker
03cbb3ee58 Build com_dotnet shared by default
The official Windows builds and CI are doing this for ages, so it
appears to be overdue to finally switch the actual default.

Closes GH-16300.
2024-11-18 20:50:22 +01:00
Christoph M. Becker
3351daee61 Merge branch 'PHP-8.4'
* PHP-8.4:
  Download enchant dict from downloads.php.net
2024-10-17 00:56:29 +02:00
Christoph M. Becker
89f10e6e92 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Download enchant dict from downloads.php.net
2024-10-17 00:55:59 +02:00
Christoph M. Becker
5dba6aebaa Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Download enchant dict from downloads.php.net
2024-10-17 00:55:20 +02:00
Christoph M. Becker
5ef3fe218c Download enchant dict from downloads.php.net
Since windows.php.net is in the progress to be migrated to
downloads.php.net anyway, we may as well fetch the dictionary from the
new site right away.

Closes GH-16310.
2024-10-17 00:55:04 +02:00
Christoph M. Becker
2d3990c50a Merge branch 'PHP-8.4'
* PHP-8.4:
  Install 32bit Firebird server on x86
2024-10-07 01:40:20 +02:00
Christoph M. Becker
5c7c5d93ae Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Install 32bit Firebird server on x86
2024-10-07 01:39:51 +02:00