From: flconseil at yahoo dot fr Operating system: AIX 5.2 PHP version: 5.1.6 PHP Bug Type: *Compile Issues Bug description: Error in Makefile - cannot generate global symbols for CLI interpreter
Description: ------------ Before linking the 'php' CLI executable file, the symbol table is generated in the 'php.sym' file. The command to generate the symbols and link the CLI interpreter is contained in the BUILD_CLI variable (in the Makefile). This string contains a 'sed' command to transform the '.lo' pathnames to their '.o' content, and this command is wrong in 5.1.6. Reproduce code: --------------- In 5.1.6, the sed command is : sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g' , which just changes the '.lo' suffix to '.o'. It is wrong because the '.o' files are in the '.libs' subdirectory ! Expected result: ---------------- The correct syntax for the sed command should be the same as version 5.1.2 : sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g' (I just looked at versions 5.1.2 and 5.1.6. I don't know if 5.1.4 is correct or wrong) Actual result: -------------- When generating the 'php.sym' file, the 'nm' command receives wrong pathnames and does not output any symbol. As there is a pipe to 'awk', its return code of 1 does not cause the make process to stop (return code from awk is OK). So, the php interpreter is generated with and empty 'php.sym' file, which means that it does not export any gloabl symbol. It works well until someone tries to load a shared extension. At this time, any call from the extension to the core code cannot be resolved by the runtime linker and the load fails. I don't know if every extension calls some functions in the core but, on my configuration, it is the case, and none of them can be loaded. It starts with bcmath unable to resolve 'OnUpdateLong', and, then, every extension has some unresolved symbols. -- Edit bug report at http://bugs.php.net/?id=38872&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=38872&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=38872&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=38872&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=38872&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=38872&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=38872&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=38872&r=needscript Try newer version: http://bugs.php.net/fix.php?id=38872&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=38872&r=support Expected behavior: http://bugs.php.net/fix.php?id=38872&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=38872&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=38872&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=38872&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=38872&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=38872&r=dst IIS Stability: http://bugs.php.net/fix.php?id=38872&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=38872&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=38872&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=38872&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=38872&r=mysqlcfg
