From afdf7519d12d96ecc5335012213f5bc3bb5af86e Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 2 Aug 2017 16:09:36 +0200 Subject: [PATCH] fix build with old system libsqlite (sqlite3_close_v2 may be missing) --- ext/pdo_sqlite/config.m4 | 4 ++++ ext/pdo_sqlite/sqlite_driver.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/ext/pdo_sqlite/config.m4 b/ext/pdo_sqlite/config.m4 index 44b22b6320..b050eea4f1 100644 --- a/ext/pdo_sqlite/config.m4 +++ b/ext/pdo_sqlite/config.m4 @@ -68,6 +68,9 @@ if test "$PHP_PDO_SQLITE" != "no"; then PHP_CHECK_LIBRARY(sqlite3,sqlite3_key,[ AC_DEFINE(HAVE_SQLITE3_KEY,1, [have commercial sqlite3 with crypto support]) ]) + PHP_CHECK_LIBRARY(sqlite3,sqlite3_close_v2,[ + AC_DEFINE(HAVE_SQLITE3_CLOSE_V2, 1, [have sqlite3_close_v2]) + ]) PHP_SUBST(PDO_SQLITE_SHARED_LIBADD) PHP_NEW_EXTENSION(pdo_sqlite, $php_pdo_sqlite_sources_core, $ext_shared,,-I$pdo_cv_inc_path) @@ -79,6 +82,7 @@ if test "$PHP_PDO_SQLITE" != "no"; then threadsafe_flags="-DSQLITE_THREADSAFE=0" fi + AC_DEFINE(HAVE_SQLITE3_CLOSE_V2, 1, [have sqlite3_close_v2]) other_flags="-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_CORE=1 -DSQLITE_ENABLE_COLUMN_METADATA=1" dnl As long as intl is not shared we can have ICU support diff --git a/ext/pdo_sqlite/sqlite_driver.c b/ext/pdo_sqlite/sqlite_driver.c index 3d32f232e8..e234406be9 100644 --- a/ext/pdo_sqlite/sqlite_driver.c +++ b/ext/pdo_sqlite/sqlite_driver.c @@ -161,7 +161,11 @@ static int sqlite_handle_closer(pdo_dbh_t *dbh) /* {{{ */ pdo_sqlite_cleanup_callbacks(H); if (H->db) { +#ifdef HAVE_SQLITE3_CLOSE_V2 sqlite3_close_v2(H->db); +#else + sqlite3_close(H->db); +#endif H->db = NULL; } if (einfo->errmsg) { -- 2.50.1