PHP 4.0 Bug #7308 Updated: Error of link of apache 1.3.14 with an UNSATISFIED SYMBOLS.

From: Date: Wed, 18 Oct 2000 12:33:53 +0000
Subject: PHP 4.0 Bug #7308 Updated: Error of link of apache 1.3.14 with an UNSATISFIED SYMBOLS.
Groups: php.dev 
Request: Send a blank email to php-dev+get-35415@lists.php.net to get a copy of this message
ID: 7308 Updated by: jimjag Reported By: Michel.Gaudet@ehess.fr Status: Closed Bug Type: Compile Failure Assigned To: Comments: This is due to an error in the zend_extensions.c file in the Zend directory. The call to DL_UNLOAD should be protected by a macro that ensures it exists. This is fixed in CVS, but to fix your copy, the change is very easy. Just edit zend_extensions.c and look for static void zend_extension_startup (line 142) and change it to look like: <pre> static void zend_extension_startup(zend_extension *extension) { #if ZEND_EXTENSIONS_SUPPORT if (extension->startup) { if (extension->startup(extension)!=SUCCESS) { DL_UNLOAD(extension->handle); } } #endif } </pre> Note the addition of the #preprocessor line. Previous Comments: --------------------------------------------------------------------------- [2000-10-18 07:50:09] Michel.Gaudet@ehess.fr At the final link of apache1.3.14 with php-4.0.3pl1 in STATIC MODE :. Flags of onfigure of : php-4.0.3pl1 --with-mysql=/opt/mysql --with-apache=../apache_1.3.14 --enable-track-vars --prefix=/local2/apache Then In php_config.h (for later explanations) : ... /* #undef HAVE_LIBDL */ ... Flags of configure of apache_1.3.14 : --with-layout=Apache --prefix=/local2/apache --activate-module=src/modules/php4/libphp4.a at the link stage of apache_1.3.14 gcc -DHPUX10 -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1 -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/main -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/main -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/Zend -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/Zend -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/TSRM -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1/TSRM -I/users3/gaudet.temuco/local2/src/php-4.0.3pl1 -DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED ./apaci -o httpd buildmark.o modules.o modules/php4/libphp4.a modules/standard/libstandard.a main/libmain.a ./os/unix/libos.a ap/libap.a lib/expat-lite/libexpat.a -L/opt/mysql/lib -L/opt/mysql/lib -Lmodules/php4 -L../modules/php4 -L../../modules/php4 -lmodphp4 -lmysqlclient -lm -lcrypt collect2: ld returned 1 exit status /usr/ccs/bin/ld: Unsatisfied symbols: DL_UNLOAD (code) make[2]: *** [target_static] Error 1 make[2]: Leaving directory `/users3/gaudet.temuco/local2/src/apache_1.3.14/src' make[1]: *** [build-std] Error 2 make[1]: Leaving directory `/users3/gaudet.temuco/local2/src/apache_1.3.14' make: *** [build] Error 2 Some investigations show that the symbol is a MACRO defined in the file zend.h of Zend directory of php4 distrib. in the file zend.h the define DL_UNLOAD is protected by a if defined(HAVE_LIBDL) THEN normaly IT IS NOT DEFINED (see before). but if i pass through the preprocessor the file zend_extension.c which contain the macro DL_UNLOAD, the symbol DL_UNLOAD remain. Is it a problem with the HP config or a bug ? --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=7308

« previous php.dev (#35415) next »