]> granicus.if.org Git - php/commitdiff
* Make ext/dba compile with newer versions of Oracle's Berkeley (in my case 6.1)
authorKalle Sommer Nielsen <kalle@php.net>
Tue, 19 May 2015 10:12:24 +0000 (12:12 +0200)
committerKalle Sommer Nielsen <kalle@php.net>
Tue, 19 May 2015 10:12:24 +0000 (12:12 +0200)
* Make the db3 driver work with 4.3+

ext/dba/config.w32
ext/dba/dba_db3.c

index 4f3514e62f25c3f901c9b2616b6ca7b31026b27c..4abba8dbf4bdbf9e5ed8cf5ff9de2c683b849459 100644 (file)
@@ -4,7 +4,7 @@
 ARG_WITH("dba", "DBA support", "no");
 
 if (PHP_DBA != "no") {
-       if (CHECK_LIB("libdb31s.lib", "dba", PHP_DBA) &&
+       if (CHECK_LIB("libdb31s.lib;libdb61.lib", "dba", PHP_DBA) &&
                CHECK_HEADER_ADD_INCLUDE("db.h", "CFLAGS_DBA")) {
                EXTENSION("dba", "dba.c dba_cdb.c dba_db1.c dba_db2.c dba_db3.c dba_dbm.c dba_flatfile.c dba_gdbm.c dba_ndbm.c dba_inifile.c");
                ADD_SOURCES("ext/dba/libcdb", "cdb.c cdb_make.c uint32.c", "dba");
index 1b4629510b9bb8d78c8f4f1a4f9dc7c8abda4776..3a99eb87d04c5f3e6a116a4342f5c86b0e5672d1 100644 (file)
 #include "php.h"
 
 #if DBA_DB3
+#ifdef DBA_IS_MODERN
+#undef off_t
+#undef ssize_t
+#endif
 #include "php_db3.h"
 #include <sys/stat.h>
 
 #include <db.h>
 #endif
 
-static void php_dba_db3_errcall_fcn(const char *errpfx, char *msg)
+static void php_dba_db3_errcall_fcn(
+#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3))
+       const DB_ENV *dbenv,
+#endif
+       const char *errpfx, const char *msg)
 {
 
        php_error_docref(NULL, E_NOTICE, "%s%s", errpfx?errpfx:"", msg);
@@ -90,7 +98,12 @@ DBA_OPEN_FUNC(db3)
 
        if ((err=db_create(&dbp, NULL, 0)) == 0) {
            dbp->set_errcall(dbp, php_dba_db3_errcall_fcn);
-           if ((err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
+               if(
+#if (DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1))
+                       (err=dbp->open(dbp, 0, info->path, NULL, type, gmode, filemode)) == 0) {
+#else
+                       (err=dbp->open(dbp, info->path, NULL, type, gmode, filemode)) == 0) {
+#endif
                        dba_db3_data *data;
 
                        data = pemalloc(sizeof(*data), info->flags&DBA_PERSISTENT);