Skip to content
forked from php/php-src

sync #12

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

Merged
merged 198 commits into from
Dec 6, 2021
Merged

sync #12

merged 198 commits into from
Dec 6, 2021

Conversation

chopins
Copy link
Owner

@chopins chopins commented Dec 6, 2021

sync

dstogov and others added 30 commits November 22, 2021 13:54
* PHP-7.4:
  Fix #75725: ./configure: detecting RAND_egd
Empty merge, since that issue had already been resolved by dropping
that check altogether.
* PHP-8.1:
  Fix #75725: ./configure: detecting RAND_egd
While testing the cPanel usage of PHP-FPM, we stumbled on this bug.
Without the fix, the zend_string is corrupted and getting odd filenames

When using FPM we kept getting "No input file specified".

I work for cPanel and we use PHP extensively.
* PHP-8.1:
  Add FPM test for php_admin_value doc_root usage
  Fix for bug in file handling refactor.
These are already listed at the beginning of the document, so we don't
list them here again to avoid duplication.
On x86_64 glibc memrchr() uses SSE/AVX CPU extensions and works much
faster then naive loop. On x86 32-bit we still use inlined version.

memrchr() is a GNU extension. Its prototype  becomes available when
<string.h> is included with defined _GNU_SOURCE macro. Previously, we
defined it in "php_config.h", but some sources may include <string.h>
befire it. To avod mess we also pass -D_GNU_SOURCE to C compiler.
pdo_sqlite already supports empty filenames and shared in-memory DBs. Add tests for them.
* PHP-8.1:
  fix [-Wstrict-prototypes] buid warnings
We need to check not only for defs but also for uses of the
variable.
* PHP-8.0:
  Fix bug #81652
* PHP-8.1:
  Fix bug #81652
These are not used in the bundled libgd, and not used in config.m4
either.

Closes GH-7681.
We're already checking `_WIN32` elsewhere in our bundled libgd, so it
makes no sense to also have a custom `MSWIN32`.

Closes GH-7682.
For parity with non Windows systems, we should `AC_DEFINE` these macros
so that they are defined in config.w32.h instead of directly passed to
the compiler.  This allows extensions which have ext/gd as dependency
to check for these macros.  E.g. ext/ps does this[1], and fails to
build on Windows, because `HAVE_GD_BUNDLED` isn't defined.

[1] <https://github.com/steinm/ps/blob/RELEASE_1_4_4/ps.c#L34>

Closes GH-7680.
* PHP-8.0:
  "Export" relevant GD macros
* PHP-8.1:
  "Export" relevant GD macros
Previusly, to redce stack usage GC traversed object properties and array
elements in both directions. At first, it seeked backward from the last
element, to find the last refcounted zval. Then, it traversed elements
forward. As result, we had 2 non-spatial memory accesses for each
object/array and usuall 2 expensive CPU cache misses.

Now all the traversal algorithms are refactored to scan elements only in
forward direction. The number of checks and GC stack usage should be the
same. The order of element processing may be differenr, but this
should not be a problem.
* PHP-8.1:
  Fixed bug #81634 (ZEND_ENABLE_STATIC_TSRMLS_CACHE produces extensionswith the STATIC_TLS flag)
* PHP-8.0:
  fix gdImagePngCtxEx call with system libgd
* PHP-8.1:
  fix gdImagePngCtxEx call with system libgd
dstogov and others added 29 commits December 3, 2021 13:40
* PHP-8.0:
  Add test
  ws
* PHP-8.1:
  Add test
  ws
  Fix array object clobbering by user error handler
* PHP-8.0:
  Add missing "return"
* PHP-8.1:
  Add missing "return"
`php_mb_check_encoding()` now uses conversion to `mbfl_encoding_wchar`.
Since `mbfl_encoding_7bit` has no `input_filter`, no filter can be
found.  Since we don't actually need to convert to wchar, we encode to
8bit.

Closes GH-7712.
* PHP-8.1:
  Fix #81693: mb_check_encoding(7bit) segfaults
* PHP-8.1:
  Fixed bug #81216 (Nullsafe operator leaks dynamic property name)
This adds the necessary templates and actions for
https://wiki.php.net/rfc/github_issues.

Closes GH-7694.
Previously, code such as subclasses of SplFixedArray would check for method
overrides when instantiating the objects.

This optimization was mentioned as a followup to GH-6552
Go directly to the submission form, which is no longer shown
by default.
* PHP-8.0:
  Use php/php-sdk-binary-tools.git for AppVeyor builds
* PHP-8.1:
  Use php/php-sdk-binary-tools.git for AppVeyor builds
There is no particular reason to exclude wireless network interfaces
from the results of `net_get_interfaces()` on Windows, especially since
`getifaddrs(3)` includes these as well.

Closes GH-7718.
This also introduces the boolean userland constant `MYSQLI_IS_MARIADB`.
* PHP-8.1:
  Fix #81658: MYSQL_OPT_LOAD_DATA_LOCAL_DIR not available in MariaDB
Unfortunately, libedit is locale based and does not accept UTF-8
input when the C locale is used. This patch switches the default
locale to C.UTF-8 instead (if it is available). This makes libedit
work and I believe it shouldn't affect behavior of single-byte
locale-dependent functions that PHP otherwise uses.

Closes GH-7635.
* PHP-8.1:
  Fix bug #81598: Use C.UTF-8 as LC_CTYPE locale by default
* PHP-8.0:
  fix #81656: GCC-11 silently ignores -R
* PHP-8.1:
  fix #81656: GCC-11 silently ignores -R
* PHP-8.1:
  Improve final/abstract methods in interfaces error messages
@chopins chopins merged commit d4b78af into chopins:master Dec 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.