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); Bfree(b); b = b1; } if (!(k >>= 1)) { break; } 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? Thanks