#
ee377744 |
| 04-Nov-2021 |
Nikita Popov |
Suppress unused label warnings in SWITCH VM While we avoid emitting labels for handlers that are not referenced from anywhere else, we do not perform a fine-grained analysis on used
Suppress unused label warnings in SWITCH VM While we avoid emitting labels for handlers that are not referenced from anywhere else, we do not perform a fine-grained analysis on used specializations, so some of the specialization labels may not be used. Use ATTRIBUTE_UNUSED_LABEL to suppress the warning. Drop "cold" from the definition of this attribute, as it is completely unrelated.
show more ...
|
Revision tags: php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1 |
|
#
c3299d7d |
| 02-Sep-2020 |
Frank Du |
X86: Fast CRC32 computation using PCLMULQDQ instruction Based on: "Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction" V. Gopal, E. Ozturk, et al., 2009, http:/
X86: Fast CRC32 computation using PCLMULQDQ instruction Based on: "Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction" V. Gopal, E. Ozturk, et al., 2009, http://intel.ly/2ySEwL0 Signed-off-by: Frank Du <frank.du@intel.com> Closes GH-6018
show more ...
|
#
a8687804 |
| 01-Sep-2020 |
Nikita Popov |
Disable ifunc resolvers under dataflow sanitizer As with other sanitizers, this is not supported.
|
Revision tags: php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20 |
|
#
917e28d7 |
| 30-Jun-2020 |
Nikita Popov |
Assume offsetof() exists This is a standard C macro. Define XtOffsetOf as an alias for compatibility, as this is the name we use in most code right now.
|
Revision tags: php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1 |
|
#
92c4b065 |
| 16-Jun-2020 |
Christoph M. Becker |
Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0) Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce `ZEND_UNREACHABLE()`, so that MSVC which does not consider `asser
Use ZEND_UNREACHABLE() instead of ZEND_ASSERT(0) Instead of marking unreachable code with `ZEND_ASSERT(0)`, we introduce `ZEND_UNREACHABLE()`, so that MSVC which does not consider `assert(0)` to mark unreachable code does no longer trigger C4715[1] warnings in debug builds. This may be useful for other compilers as well. [1] <https://docs.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4715?view=vs-2019>
show more ...
|
Revision tags: php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1 |
|
#
68dd6cc9 |
| 20-May-2020 |
Christoph M. Becker |
Control VCRT leak reporting via environment variable in debug builds Formerly, this had to be enabled by passing the configuration flag `--enable-crt-debug`; now it can be enabled by set
Control VCRT leak reporting via environment variable in debug builds Formerly, this had to be enabled by passing the configuration flag `--enable-crt-debug`; now it can be enabled by setting the environment variable `PHP_WIN32_DEBUG_HEAP`. The advantage is that it is no longer necessary to do separate builds, at the cost of a very minor performance penalty during process startup.
show more ...
|
#
5a04796f |
| 27-May-2020 |
Christoph M. Becker |
Fix MSVC level 1 (severe) warnings We fix (hopefully) all instances of: * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005>
Fix MSVC level 1 (severe) warnings We fix (hopefully) all instances of: * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4024> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4028> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4047> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4087> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4090> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4273> * <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4312> `zend_llist_add_element()` and `zend_llist_prepend_element()` now explicitly expect a *const* pointer. We use the macro `ZEND_VOIDP()` instead of a `(void*)` cast to suppress C4090; this should prevent accidential removal of the cast by clarifying the intention, and makes it easier to remove the casts if the issue[1] will be resolved sometime. [1] <https://developercommunity.visualstudio.com/content/problem/390711/c-compiler-incorrect-propagation-of-const-qualifie.html>
show more ...
|
#
a582931f |
| 20-May-2020 |
Christoph M. Becker |
Revert "Revert "Merge branch 'PHP-7.4'"" This reverts commit 28e650a, which reverted commit 046dcfb, which had to be reverted due to phpdbg issues. The culprit was that we did not p
Revert "Revert "Merge branch 'PHP-7.4'"" This reverts commit 28e650a, which reverted commit 046dcfb, which had to be reverted due to phpdbg issues. The culprit was that we did not properly reset `zend_handler_table` to `NULL`, which is required for SAPIs which may restart the engine after shutdown. [1] <http://git.php.net/?p=php-src.git;a=commit;h=28e650abf8097a28789a005e5028fee095359583> [2] <http://git.php.net/?p=php-src.git;a=commit;h=046dcfb531e242d36a7af2942b9b148290c3c7fe>
show more ...
|
#
25acc4a6 |
| 12-May-2020 |
George Peter Banyard |
Fix [-Wundef] warning in Zend folder
|
Revision tags: php-7.4.6, php-7.2.31 |
|
#
b1116743 |
| 11-May-2020 |
Nikita Popov |
Only use ifunc resolvers if __builtin_cpu_supports+init available If either of them is not available, the use of zend_cpu_supports() inside ifunc resolvers may not be safe.
|
Revision tags: php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17, php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1 |
|
#
5dc9418a |
| 31-Oct-2019 |
Nikita Popov |
Reapply "Remove configure checks for supported instruction sets" I reverted this previously for 7.4 because of bug #78769. Relanding it now for master, because I still believe that this
Reapply "Remove configure checks for supported instruction sets" I reverted this previously for 7.4 because of bug #78769. Relanding it now for master, because I still believe that this change is right, and if it causes complications, those indicate a bug elsewhere. --- These were checking whether the instruction set is supported by the host CPU, however they were only used to condition on whether this instruction set is targeted at all. It would still use dynamic dispatch (e.g. based on ifunc resolvers) to select the actual implementation. Whether the target is guaranteed to support the instruction set without dispatch is determined based on pre-defined macros like __SSE2__. This removes the configure-time builtin cpu checks to remove confusion. Additionally this allows targeting an architecture that is newer than the host architecture.
show more ...
|
#
28e650ab |
| 23-Jan-2020 |
Christoph M. Becker |
Revert "Merge branch 'PHP-7.4'" This reverts commit 046dcfb531e242d36a7af2942b9b148290c3c7fe, due to segfaults on Travis. This needs to be investigated.
|
#
4130fe43 |
| 15-Jan-2020 |
Christoph M. Becker |
Make MSVCRT memory leak checking usable for the test suite While basic support for MSVCRT debugging has been added long ago[1], the leak checking is not usable for the test suite, becaus
Make MSVCRT memory leak checking usable for the test suite While basic support for MSVCRT debugging has been added long ago[1], the leak checking is not usable for the test suite, because we are no longer calling `xmlCleanupParser()` on RSHUTDOWN of ext/libxml[2], and therefore a few bogus leaks are reported whenever ext/libxml is unloaded. We therefore ignore memory leaks for this case. We introduce `ZEND_IGNORE_LEAKS_BEGIN()` and `ZEND_IGNORE_LEAKS_END()` to keep those ignores better readable, and also because these *might* be useful for other leak checkers as well. We also explicitly free the `zend_handlers_table` and the `p5s` to avoid spurious leak reports. [1] <http://git.php.net/?p=php-src.git;a=commit;h=d756e1db2324c1f4ab6f9b52e329959ce6a02bc3> [2] <http://git.php.net/?p=php-src.git;a=commit;h=8742276eb3905eb97a585417000c7b8df85006d4>
show more ...
|
#
c9908ee5 |
| 27-Dec-2019 |
Christoph M. Becker |
Disable optimizations for ASan instrumented builds ASan instrumentation does not support the MSVC debug runtime, but still it does not make sense to enable optimizations for such builds,
Disable optimizations for ASan instrumented builds ASan instrumentation does not support the MSVC debug runtime, but still it does not make sense to enable optimizations for such builds, since they are not meant for production usage anyway, and although memory corruption issues are still found in optimized builds, the generated diagnostics are close to being useless, and apparently sometimes even outright wrong. Therefore, we disable all optimizations for ASan instrumented builds. We also introduce and use `ZEND_WIN32_NEVER_INLINE` for ASan enabled builds to avoid inlining of functions, so we get even better diagnostics.
show more ...
|
#
9118a96f |
| 14-Jan-2020 |
George Peter Banyard |
Remove va_copy from zend_portability as it's always available since C99
|
#
1c4ad17c |
| 04-Dec-2019 |
George Peter Banyard |
Move isinf, isnan, and isfinite to zend_portability.h Closes GH-4966
|
#
67f85573 |
| 04-Dec-2019 |
George Peter Banyard |
Remove custom implementation for inifinity and NAN as we can now rely on C99 Those ZEND_* constant variant are now identical to their C counterpart, we may considering removing them in the f
Remove custom implementation for inifinity and NAN as we can now rely on C99 Those ZEND_* constant variant are now identical to their C counterpart, we may considering removing them in the future.
show more ...
|
#
dacadf5a |
| 07-Nov-2019 |
Nikita Popov |
Disable ifunc resolvers under thread sanitizer as well
|
#
45131411 |
| 04-Nov-2019 |
Nikita Popov |
Revert "Remove configure checks for supported instruction sets" This reverts commit edccf32f7f36a8bc759b9482737e0c3efcb3a005. This was reported to cause issues for as yet unknown re
Revert "Remove configure checks for supported instruction sets" This reverts commit edccf32f7f36a8bc759b9482737e0c3efcb3a005. This was reported to cause issues for as yet unknown reasons in bug #78769. As this was intended as code cleanup, revert this from 7.4 at least. May reapply it to master later.
show more ...
|
#
edccf32f |
| 31-Oct-2019 |
Nikita Popov |
Remove configure checks for supported instruction sets These were checking whether the instruction set is supported by the host CPU, however they were only used to condition on whether
Remove configure checks for supported instruction sets These were checking whether the instruction set is supported by the host CPU, however they were only used to condition on whether this instruction set is targeted at all. It would still use dynamic dispatch (e.g. based on ifunc resolvers) to select the actual implementation. Whether the target is guaranteed to support the instruction set without dispatch is determined based on pre-defined macros like __SSE2__. This removes the configure-time builtin cpu checks to remove confusion. Additionally this allows targeting an architecture that is newer than the host architecture.
show more ...
|
Revision tags: php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2 |
|
#
ec30a3b1 |
| 13-Sep-2019 |
Nikita Popov |
Include stddef.h in zend_portability.h for offsetof() macro This makes sure that we use compiler builtins when they are available and thus avoid ubsan warnings in clang. And als
Include stddef.h in zend_portability.h for offsetof() macro This makes sure that we use compiler builtins when they are available and thus avoid ubsan warnings in clang. And also reindent the fallback implementation.
show more ...
|
Revision tags: php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1 |
|
#
77a0fa10 |
| 30-Aug-2019 |
Nikita Popov |
Reenable alloca support on ZTS This got disabled due to an incorrect change in a preprocessor condition in 2104bea5d756dfa40b605a4a2765a3bc4637a76c. It was not supposed to be disable
Reenable alloca support on ZTS This got disabled due to an incorrect change in a preprocessor condition in 2104bea5d756dfa40b605a4a2765a3bc4637a76c. It was not supposed to be disabled.
show more ...
|
Revision tags: php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20 |
|
#
736172d2 |
| 28-Jun-2019 |
Nikita Popov |
Disable RTLD_DEEPBIND under memory sanitizer This was already done for address sanitizer.
|
#
2c8819b8 |
| 28-Jun-2019 |
Nikita Popov |
Disable ifunc resolvers if memory sanitizer is used Just marking them as no_sanitize("memory") is unforunately not sufficient, as the function still gets instrumented -- the attribute
Disable ifunc resolvers if memory sanitizer is used Just marking them as no_sanitize("memory") is unforunately not sufficient, as the function still gets instrumented -- the attribute only disables reporting.
show more ...
|
Revision tags: php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2 |
|
#
8f63e7e3 |
| 12-Jun-2019 |
Nikita Popov |
Make ATTRIBUTE_UNUSED more portable
|