ID: 13876 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Analyzed +Status: Closed Bug Type: DBM/DBA related Operating System: NetBSD + Linux PHP Version: 4.2.0RC4 New Comment:
This bug has been fixed in CVS. thanks - this should now work with 4.2.0 and greater Previous Comments: ------------------------------------------------------------------------ [2002-04-18 01:36:31] [EMAIL PROTECTED] Full patch to fix this - attached - let me know if you want the patch as a file - I can send it. --- /usr/src/php/php-4.1.2/ext/dba/config.m4 Thu Jun 28 23:16:28 2001 +++ config.m4 Thu Apr 18 13:19:19 2002 @@ -230,6 +230,5 @@ PHP_SUBST(DBA_SHARED_LIBADD) else AC_MSG_RESULT(no) - AC_DEFINE(HAVE_DBA, 0, [ ]) fi --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_cdb.c Thu Feb 28 16:25:58 2002 +++ dba_cdb.c Thu Apr 18 13:27:47 2002 @@ -20,6 +20,10 @@ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_CDB #include "php_cdb.h" --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_db2.c Thu Feb 28 16:25:58 2002 +++ dba_db2.c Thu Apr 18 13:27:23 2002 @@ -16,10 +16,14 @@ +----------------------------------------------------------------------+ */ -/* $Id: dba_db2.c,v 1.20 2002/02/28 08:25:58 sebastian Exp $ */ +/* $Id: dba_db2.c,v 1.20.2.1 2002/04/08 06:36:39 derick Exp $ */ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_DB2 #include "php_db2.h" #include <sys/stat.h> --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_db3.c Thu Feb 28 16:25:58 2002 +++ dba_db3.c Thu Apr 18 13:27:57 2002 @@ -20,10 +20,14 @@ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_DB3 #include "php_db3.h" -#include <sys/stat.h> +#include <sys/stat.h> #include <string.h> #ifdef DB3_INCLUDE_FILE #include DB3_INCLUDE_FILE --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_dbm.c Thu Feb 28 16:25:59 2002 +++ dba_dbm.c Thu Apr 18 13:28:15 2002 @@ -20,6 +20,10 @@ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_DBM #include "php_dbm.h" --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_gdbm.c Thu Feb 28 16:25:59 2002 +++ dba_gdbm.c Thu Apr 18 13:28:30 2002 @@ -20,6 +20,10 @@ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_GDBM #include "php_gdbm.h" --- /usr/src/php/php-4.2.0RC2/ext/dba/dba_ndbm.c Thu Feb 28 16:25:59 2002 +++ dba_ndbm.c Thu Apr 18 13:28:42 2002 @@ -20,10 +20,15 @@ #include "php.h" +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #if DBA_NDBM #include "php_ndbm.h" #include <fcntl.h> + #ifdef NDBM_INCLUDE_FILE #include NDBM_INCLUDE_FILE #endif ------------------------------------------------------------------------ [2001-10-30 12:42:07] [EMAIL PROTECTED] 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 this bug report at http://bugs.php.net/?id=13876&edit=1