History log of /PHP-8.0/Zend/zend_portability.h (Results 1 – 25 of 107)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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


12345