|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-10-30 22:56 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sun Nov 02 16:00:01 2025 UTC |
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.