Re: Err : Invalid library

From: Date: Tue, 13 Mar 2001 20:06:41 +0000
Subject: Re: Err : Invalid library
References: 1 2  Groups: php.dev 
Request: Send a blank email to php-dev+get-48831@lists.php.net to get a copy of this message
many thanks :) barry On Tue, Mar 13, 2001 at 07:46:32PM +0200, Alexander Bokovoy wrote: > On Tue, Mar 13, 2001 at 05:24:58PM +0000, Barry Mitchelson wrote: > > hi, > > > > i've been playing around with the php-gtk extension (don't worry this is not > > OT), but am having problems after installing the latest cvs version of php4. > > > > when I try and run a script (and even when i do 'php -v') i get the following > > error : > > > > PHP Warning: Invalid library (maybe not a PHP library) 'php_gtk.so' in Unknown > > on line 0 > > > > now, I know that this library works because I had it running with my previous cvs version > > of php. I've tried reinstalling php-gtk, and also php4 from both cvs and snaps.php.net but > > still the same problem. > > > > has anyone got any ideas what could be causing this problem ? > Yes and I have partial solution. Not pretty though but it works for me at least. > So, problem caused by several things: > > 1. Build environment for self contained extensions (SCE) is generally broken > in PHP4. It wasn't work in past, it does not work now in one > particular case: when you have several PHP_ARG_WITH or PHP_ARG_ENABLE > in config.m4. In case of SCE, all of these macroses get positive > answer regardless of user input or library checks because of this code > in PHP_ARG_ANALYZE (acinclude.m4): > > if test "$php_always_shared" = "yes"; then > ext_output="yes, shared" > ext_shared=yes > test "[$]$1" = "no" && $1=yes > fi > > So, even if user states PHP_SOMETHING = no, this code will rewrite it to > PHP_SOMETHING = yes > > This particulary touches 'readline', 'mysql', 'dba', > 'interbase', > 'mcrypt', 'mhash' and other extensions. > > 2. PHP-GTK suffers from other bug. It is also a problem with build > environment: when you do > > #include "php_config.h" > > in SCE module, then main PHP4 php_config.h which is installed on the > system is included, not locally created php_config.h which contains > proper definitions of HAVE_PHP_GTK and COMPILE_DL_PHP_GTK symbols. > > In the CVS version of PHP4 header file which is generated as SCE config > file is renamed to config.h from php_config.h few days ago. But modules > themselves were not updated, so there are no modules in PHP4 than really > include config.h from the current directory, so HAVE_MODULENAME will be > undefined for all of them (if they are compiled as SCE) and all code > will be skipped due > > #if HAVE_MODULENAME > <actual code> > #endif > > in most of them. > > This particulary touches PHP-GTK, mysql, dba, and most of other modules. > > Solution for PHP-GTK is to pass -DHAVE_PHP_GTK=1 -DCOMPILE_DL_PHP_GTK=1 to configure > through CFLAGS. Or fix SCE build environment (macros in acinclude.m4, pear/pear.m4 > and #include "php_config.h" in all modules). > > -- > Sincerely yours, Alexander Bokovoy > The Midgard Project | www.midgard-project.org | Aurora R&D team > Minsk Linux Users Group | www.minsk-lug.net | www.aurora-linux.com > ALT Linux Team | www.alt-linux.org | Architecte Open Source > -- Conscience is what hurts when everything else feels so good. > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net > For additional commands, e-mail: php-dev-help@lists.php.net > To contact the list administrators, e-mail: php-list-admin@lists.php.net -- http://www.theshining.org

« previous php.dev (#48831) next »