Bug #13876: Not possible to build DBA as shared extension

From: Date: Tue, 30 Oct 2001 17:42:08 +0000
Subject: Bug #13876: Not possible to build DBA as shared extension
Groups: php.dev 
Request: Send a blank email to php-dev+get-69343@lists.php.net to get a copy of this message
From: jlam@jgrind.org Operating system: NetBSD PHP version: 4.0.6 PHP Bug Type: DBM/DBA related Bug description: Not possible to build DBA as shared extension If php is configured and installed on a system without any db libraries, then a db library, e.g. gdbm, is installed afterwards, it's not possible to separately build the DBA module as a shared extension. The problem occurs because when a db library is not found when php is configured, the php_config.h file written out contains the line: #define HAVE_DBA 0 Later, when the DBA module is phpize'd and configured, the HAVE_DBA definition from php_config.h overrides the value set in the local config.h file, which causes all of the code to be ifdef'd out. Even when this problem is fixed, the various dba_<db>.c files that implement the PHP functions for a particular db library will have all of their code ifdef'd out since the DBA_<DB> definitions in the local config.h file aren't used. The complete fix is simple: 1) Remove the line "AC_DEFINE(HAVE_DBA, 0, [ ])" from ext/dba/config.m4. 2) For each dba_<db>.c file, add at the top before php.h is included the following lines: #ifdef HAVE_CONFIG_H #include "config.h" #endif I have a patch relative to the php-4.0.6 source tree that makes the above changes, located at: http://jgrind.org/~jlam/patch.dba-4.0.6 -- Edit bug report at: http://bugs.php.net/?id=13876&edit=1

« previous php.dev (#69343) next »