diff --git a/NEWS b/NEWS index 7ff420014b6..6dddf5c0d13 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,9 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? ????, PHP 8.3.0beta3 +- Core: + . Fixed strerror_r detection at configuration time. (Kévin Dunglas) + - DOM: . adoptNode now respects the strict error checking property. (nielsdos) diff --git a/Zend/zend.c b/Zend/zend.c index 56770ac3111..8c3351e177f 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -1646,9 +1646,15 @@ ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn(int type, const char * ZEND_API ZEND_COLD ZEND_NORETURN void zend_strerror_noreturn(int type, int errn, const char *message) { -#ifdef HAVE_STR_ERROR_R - char buf[1024]; - strerror_r(errn, buf, sizeof(buf)); +#ifdef HAVE_STRERROR_R + char b[1024]; + +# ifdef STRERROR_R_CHAR_P + char *buf = strerror_r(errn, b, sizeof(b)); +# else + strerror_r(errn, b, sizeof(b)); + char *buf = b; +# endif #else char *buf = strerror(errn); #endif diff --git a/configure.ac b/configure.ac index 66503615edc..03f8b95b90c 100644 --- a/configure.ac +++ b/configure.ac @@ -648,9 +648,11 @@ asprintf \ nanosleep \ memmem \ memrchr \ -strerror_r \ ) +dnl Check for strerror_r, and if its a POSIX-compatible or a GNU specific version. +AC_FUNC_STRERROR_R + AX_FUNC_WHICH_GETHOSTBYNAME_R dnl Some systems (like OpenSolaris) do not have nanosleep in libc.