#28077 [Opn->Csd]: libphp.so whon't load in apache2...

From: Date: Thu, 22 Apr 2004 15:17:55 +0000
Subject: #28077 [Opn->Csd]: libphp.so whon't load in apache2...
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-58581@lists.php.net to get a copy of this message
ID: 28077 User updated by: mathieu dot carbonneaux at ch2o dot info Reported By: mathieu dot carbonneaux at ch2o dot info -Status: Open +Status: Closed Bug Type: Apache2 related Operating System: HP-UX 11i PHP Version: 4.3.6 New Comment: i fact after many test and debuging... ldd -d dont resolv some symbol but this can be resolved at run time... this symbol is the symbole who apache can't resolv... have added BIND_VERBOSE in shl_load of apache to see more information on shl_load probleme.... and apache say to me they can resolve __umoddi3! i searched where this symbole are... and i found they are in libgcc.a.... on HP-UX the pre-compiled GCC(3.3.2 of HP-UX porting center) not link systematicly libgcc.... to compile php apache module you are oblige to add --enable-libgcc, without that does not work... my php compil options on hp-ux 11.11 with gcc 3.3.2 32Bits: export LDFLAGS="-lcl" export CFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T" export CPPFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T" gmake distclean ./configure --prefix=/usr/local/php4 \ --with-apxs2=/usr/local/apache2/bin/apxs \ --enable-libgcc and apache 2 option: export LDFLAGS="-lcl" export CFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T" export CPPFLAGS="-DHAVE_SOCKLEN_T -D_HPUX_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_LABEL_T" make distclean ./configure --prefix=/usr/local/apache2 \ --with-mpm=prefork \ --enable-mods-shared=all \ --enable-deflate=shared \ --enable-ext-filter=shared \ --enable-headers=shared \ --enable-info=shared \ --enable-proxy=shared \ --enable-proxy-http=shared \ --enable-rewrite=shared \ --enable-vhost-alias=shared \ --disable-auth-digest make && make install with that options, work fine! Previous Comments: ------------------------------------------------------------------------ [2004-04-20 13:25:11] mathieu dot carbonneaux at ch2o dot info Description: ------------ have compile apache2, and i tested it separatly...is ok after have compiled php without probleme... the php module has been correctly installed in dir of apache and the apache conf have been correctly modify... but... when i try to start apache with php module(they work fine with integrated apache module!), they can load php module... when i verify with ldd -d have this result: /usr/lib/libc.2 => /usr/lib/libc.2 /usr/lib/libdld.2 => /usr/lib/libdld.2 /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libintl.sl => /usr/local/lib/libintl.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libiconv.sl => /usr/local/lib/libiconv.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libxml2.sl => /usr/local/lib/libxml2.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libintl.sl => /usr/local/lib/libintl.sl /usr/lib/libm.2 => /usr/lib/libm.2 /usr/local/lib/libz.sl => /usr/local/lib/libz.sl /usr/lib/libpthread.1 => /usr/lib/libpthread.1 /usr/lib/libm.2 => /usr/lib/libm.2 /usr/local/lib/libbz2.sl => /usr/local/lib/libbz2.sl /usr/local/lib/libdb.sl => /usr/local/lib/libdb.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libxslt.sl => /usr/local/lib/libxslt.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/lib/libm.2 => /usr/lib/libm.2 /usr/local/lib/libintl.sl => /usr/local/lib/libintl.sl /usr/lib/libpthread.1 => /usr/lib/libpthread.1 /usr/local/lib/libz.sl => /usr/local/lib/libz.sl /usr/local/lib/libxml2.sl => /usr/local/lib/libxml2.sl /usr/local/lib/libxsltbreakpoint.sl => /usr/local/lib/libxsltbreakpoint.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libjpeg.sl => /usr/local/lib/libjpeg.sl /usr/local/lib/libz.sl => /usr/local/lib/libz.sl /usr/local/lib/libpng.sl => /usr/local/lib/libpng.sl /usr/local/lib/X11/libXpm.sl => /usr/local/lib/X11/libXpm.sl /usr/lib/libX11.3 => /usr/lib/libX11.3 /usr/local/lib/libt1.sl => /usr/local/lib/libt1.sl /usr/local/lib/libgd.sl => /usr/local/lib/libgd.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libiconv.sl => /usr/local/lib/libiconv.sl /usr/lib/libm.2 => /usr/lib/libm.2 /usr/local/lib/libz.sl => /usr/local/lib/libz.sl /usr/local/lib/libpng.sl => /usr/local/lib/libpng.sl /usr/local/lib/libfreetype.sl => /usr/local/lib/libfreetype.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/lib/libjpeg.sl => /usr/local/lib/libjpeg.sl /usr/lib/libX11.3 => /usr/lib/libX11.3 /usr/local/lib/X11/libXpm.sl => /usr/local/lib/libXpm.sl /usr/lib/libdld.2 => /usr/lib/libdld.2 /usr/lib/libpthread.1 => /usr/lib/libpthread.1 /usr/local/lib/libexpat.sl => /usr/local/lib/libexpat.sl /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/apache2/lib/libaprutil-0.sl.9 => /usr/local/apache2/lib/libaprutil-0.sl.9 /usr/lib/libc.2 => /usr/lib/libc.2 /usr/local/apache2/lib/libapr-0.sl.9 => /usr/local/apache2/lib/libapr-0.sl.9 /usr/lib/libc.2 => /usr/lib/libc.2 /usr/lib/libdld.2 => /usr/lib/libdld.2 /usr/lib/libpthread.1 => /usr/lib/libpthread.1 /usr/lib/libnsl.1 => /usr/lib/libnsl.1 /usr/lib/libxti.2 => /usr/lib/libxti.2 /usr/lib/libm.2 => /usr/lib/libm.2 /usr/lib/libcl.2 => /usr/lib/libcl.2 /usr/lib/libisamstub.1 => /usr/lib/libisamstub.1 /usr/lib/libdld.2 => /usr/lib/libdld.2 symbol not found: _SYSTEM_ID (/usr/lib/libc.2) symbol not found: _end (/usr/lib/libc.2) symbol not found: __dld_loc (/usr/lib/libdld.2) symbol not found: ap_loaded_modules (/usr/local/apache2/modules/libphp4.so) symbol not found: unixd_config (/usr/local/apache2/modules/libphp4.so) symbol not found: ap_server_root (/usr/local/apache2/modules/libphp4.so) symbol not found: _SYSTEM_ID (/usr/lib/libcl.2) symbol not found: __dld_loc (/usr/lib/libcl.2) some symbole can be resolve.... have searched this symbole.... and i have found this symbol in httpd binary #nm httpd | grep ap_server_root ap_hack_ap_server_root_relative|1073780904|extern|data |$DATA$ ap_server_root |1073757188|extern|data |$DATA$ ap_server_root_relative| 303164|extern|entry | ap_server_root_relative| 303216|extern|code |$CODE$ #nm ./.libs/httpd | grep ap_loaded_modules ap_loaded_modules |1073757324|extern|data |$DATA$ #nm ./.libs/httpd | grep unixd_config unixd_config |1073807808|undef |common |$BSS$ seem to be correctly exported by httpd....but unixd_config is undef...!!??? and the other symbol in hp-ux library.... but before i have a same probleme with other module(mod_auth_ldap from musquit), but only with the symbole _SYSTEM_ID, _end and __dld_loc, and have found how to correct this in using "export LD_PRELOAD=/usr/bin/libcl.sl" or in adding CFLAGS="-lcl" in hp-ux support site... but with php they dont work.... i think globale visibility probleme between httpd and loaded librairy (libphp4.so). i think that dyn lib can't acces to global export of the binary who have loaded the library. have you any idea to correct this!!!!? how to remplace the use of apache global whith apr like fonction???!!! Best Regards, Mathieu ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=28077&edit=1

« previous php.bugs (#58581) next »