PHP 4.0 Bug #7308 Updated: Error of link of apache 1.3.14 with an UNSATISFIED SYMBOLS.
| From: | jimjag@php.net | Date: | Wed, 18 Oct 2000 12:35:35 +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-35416@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:
PS: Ignore the <pre>...</pre> tags :) Just add the
#if ZEND_EXTENSIONS_SUPPORT
.
.
.
#endif
lines as indicated (thought I was on /. :) )
Previous Comments:
---------------------------------------------------------------------------
[2000-10-18 08:33:53] jimjag@php.net
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.
---------------------------------------------------------------------------
[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