ID: 14870 Updated by: [EMAIL PROTECTED] Reported By: msopacua at idg dot nl Status: Feedback Bug Type: Dynamic loading Operating System: BSDi 4.x PHP Version: 4.0CVS-2002-10-16 New Comment:
Melvyn, your comment got lost due to that db corruption we had..can you please re-add it? Previous Comments: ------------------------------------------------------------------------ [2003-08-13 23:23:38] [EMAIL PROTECTED] I tried searching for similar issues in other projects and found this document: http://www.pix.net/software/bsdos/elf_faq.html#How%20do%20I%20build%20a%20program%20that%20dynamically%20loads%20a%20shared%20object%20(with%20dlopen(3) Basically what I read about BSDi's support for dlopen() was not really promising. Could you try compiling PHP as static module in Apache to see if the problem really is the "double" dlopen: Apache-dlopen(PHP-dlopen(curl.so)) (when PHP is build as static module, the first dlopen() is nuked of course :) ------------------------------------------------------------------------ [2003-07-21 12:23:27] msopacua at idg dot nl Thanx Jani, but it's not the cause. I've tried it regardless and it doesn't help. It's defenitely a linker issue, although a ktrace doesn't reveal much info. ------------------------------------------------------------------------ [2003-07-10 18:33:38] [EMAIL PROTECTED] Not sure whether this has nothing to do with this bug, but take a look in Apache 1.3.27 sources, src/main/http_main.c file and look for WORKAROUND_SOLARIS_BUG. You could try defining that and recompile apache (make clean && make) to see if it has any effect? ------------------------------------------------------------------------ [2002-10-20 10:33:46] [EMAIL PROTECTED] I've created a php script, to test this :-). Output is as follows: ============================================================ RESULTS SIGTEST ------------------------------------------------------------ Mysql bundled: OK Mysql external: NOT OK Aspell external: NOT OK GD bundled: OK XML Bundled: OK XML external: OK XSLT external: NOT OK Iconv external: OK GNU gettext, external: OK OpenSSL external: NOT OK Curl external, without SSL: NOT OK Curl external, with SSL: NOT OK ============================================================ The commonalities seem to be, that the modules which fail, load more than 1 external shared library. MySQL loads zlib, Aspell loads several aspell libs, OpenSSL has -lssl and -lcrypt and curl loads -lssl ("Curl external, without SSL", simply means --with-openssl was not given. -lssl and -lcrypt are still linked in). The only exceptions to this, are the Bundled GD, which is compiled with libjpeg, libpng, libz and libfreetype and the Bundled MySQL. The common factors with these is, that libphp4.so doesn't call libgd/libmysqlclient, but has this code built in. Concluding this goes wrong when there are 2 levels of dynamic loading: apache -> libphp4 -> libfoo -> libbar It reminded me of bug in BSD/OS 4.x series, on how symbols are resolved: http://www.geocrawler.com/archives/3/127/1999/5/0/1795873/ Can somebody experience in this, take a look if it makes any sense in comparison to what PHP is doing? ------------------------------------------------------------------------ [2002-10-17 04:06:49] [EMAIL PROTECTED] Ok, just a quick status update: The 'old' gd still exposes the problem. The bundled gd does not, in contradiction to my previous report. This was actually caused because, the bundled MySQL lib, is OK, BUT an external mysql lib (3.23.53) also exposes the problem. Since I tried both, with the same zlib option, and both MySQL libs have been linked with the same zlib, it cannot be a zlib problem. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/14870 -- Edit this bug report at http://bugs.php.net/?id=14870&edit=1