Hello php experts,

We are doing php upgrade from 5.2.3 to 5.3.2 (unix on Octeon/MIPS) and getting a compilation error

* Issue with Octeon platform
o Round() API throws "Maximum execution time exceeded" error. Analyzed the issue and Found the problem to be that "mult" function (src/dist/php/Zend/zend_strtod.c) is being called indefinitely from "pow5mult" function (src/dist/php/Zend/zend_strtod.c). It might be some problem with byte alignment on this platform.
* We have filed a bug
o http://bugs.php.net/bug.php?id=51701 - "Maximum execution time exceeded" error with round() API on octeon platform

Any idea about this

Here is a response from one of our platform developers after doing some analysis

In pow5mult():
for(;;) {
if (k & 1) {
b1 = mult(b, p5);
b = b1;
if (!(k >>= 1)) {
if (!(p51 = p5->next)) {
if (!(p51 = p5->next)) {
p51 = p5->next = mult(p5,p5);
p51->next = 0;
p5 = p51;

As it is suspected that mult is being called continuously from pow5mult: do we know:
1. How b and p5 are changing over each iteration?
2. If the computation done by mult() in each of these iteration is correct or not?
3. What is the impact of this computation on k?
4. The loop will break only with change in k but I don't see k changing here in mult5pow().

Can anyone throw some light on this?


Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 1 of 1 | next ›
Discussion Overview
groupphp-internals @
postedMay 7, '10 at 5:53a
activeMay 7, '10 at 5:53a

1 user in discussion

Bharat Nagwani: 1 post



site design / logo © 2022 Grokbase