[PHP-DEV] PHP 4.0 Bug #8592: couldn't make shared extension module using phpize. From: louis <email protected>
Date: 01/08/01

From: louis <email protected>
Operating system: Linux Redhat6.2
PHP version: 4.0.4
PHP Bug Type: Dynamic loading
Bug description: couldn't make shared extension module using phpize.

Since PHP-4.0.4,
The shared PHP extension module didn't work in Linux-box.
Typical steps to build shared module are,

1. cd php-4.0.4/ext/pgsql
2. phpize
3. ./configure --with-pgsql
   php_config.h is build on php-4.0.4/ext/pgsql,
   it includes some important definition like
    #define HAVE_PGSQL 1.
4. make
   and pgsql.so is build on .libs/pgsql.so
   But, the command 'nm .libs/pgsql.so | grep zend' returned nothing.

   pgsql.so can't work as shared extension module.

I think it is caused by the lack of HAVE_PGSQL definition.
HAVE_PGSQL is defined in the local php_config.h
(in php-4.0.4/ext/pgsql/).
There is another php_config.h in
/usr/include/php/main/.

pgsql.c includes php.h (located in /usr/include/php/main), and
php.h includes php_compat.h, and
php_compat.h includes php_config.h (in Linux).
For earlier version of php4,
php_config.h is not located in /usr/include/php/main, but in /usr/include/php,
so php_config.h included from php_compat.h is
local one.
But, php_compat.h includes /usr/include/php/main/php_config.h in php-4.0.4,
because both files are in the same directory
(/usr/include/php/main),
so HAVE_PGSQL defined in local php_config.h was
not defined when pgsql.c was compiled.

I think main/php_config.h should move to another place or change include option to
make shared extension module with phpize.

 

-- 
Edit Bug report at: http://bugs.php.net/?id=8592&edit=1

-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: php-dev-unsubscribe <email protected> For additional commands, e-mail: php-dev-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>