Hello,
We recently upgraded a system from PHP 4.3.4 to 4.3.10, and tripped
over a problem with snprintf. One of our PHP extension modules
started failing, causing Apache to exit with code 0177. Investigation
showed the culprit to be snprintf. It turns out that in 4.3.10,
snprintf is #defined to be ap_php_snprintf. If we #undef snprintf
(thus using glibc's snprintf), the problem is cleared up.
In this segment of the diff between versions 1.178.2.9 and 1.178.2.8
of php.h, you'll see that tests for the existence of a system snprintf
were removed.
-#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) ||
PHP_BROKEN_SPRINTF || PHP_BROKEN_SNPRINTF || PHP_BROKEN_VSNPRINTF
#include "snprintf.h"
-#endif
Is this a deliberate change? Is there some way to tell configure to
use the system snprintf instead of the PHP version?
Thanks,
Jeff
Hello,
We recently upgraded a system from PHP 4.3.4 to 4.3.10, and tripped
over a problem with snprintf. One of our PHP extension modules
started failing, causing Apache to exit with code 0177. Investigation
showed the culprit to be snprintf. It turns out that in 4.3.10,
snprintf is #defined to be ap_php_snprintf. If we #undef snprintf
(thus using glibc's snprintf), the problem is cleared up.In this segment of the diff between versions 1.178.2.9 and 1.178.2.8
of php.h, you'll see that tests for the existence of a system snprintf
were removed.-#if !defined(HAVE_SNPRINTF) || !defined(HAVE_VSNPRINTF) ||
PHP_BROKEN_SPRINTF || PHP_BROKEN_SNPRINTF || PHP_BROKEN_VSNPRINTF
#include "snprintf.h"
-#endifIs this a deliberate change? Is there some way to tell configure to
use the system snprintf instead of the PHP version?
You should always been using the ap_php_snprintf() one as that has an
extra modified %F for non-locale aware number formatting. To make your
extension work, make sure to include main/snprintf.h.
regards,
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org