Bug #79672 [Opn->Wfx]: Loading "pdo_sqlite.so" fails: undefined symbol: sqlite3_libversion

From: Date: Tue, 22 Dec 2020 16:54:40 +0000
Subject: Bug #79672 [Opn->Wfx]: Loading "pdo_sqlite.so" fails: undefined symbol: sqlite3_libversion
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-231223@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79672&edit=1 ID: 79672 Updated by: nikic@php.net Reported by: npelov at croler dot net Summary: Loading "pdo_sqlite.so" fails: undefined symbol: sqlite3_libversion -Status: Open +Status: Wont fix Type: Bug Package: PDO SQLite Operating System: Centos 7.8 PHP Version: 7.3.18 Block user comment: N Private report: N New Comment: sqlite has been unbundled in PHP 7.4, so this issue is no longer applicable (earlier versions are not actively supported anymore.) Previous Comments: ------------------------------------------------------------------------ [2020-06-04 10:11:03] npelov at croler dot net Description: ------------ If pdo_sqlite is compiled as shared with bundled sqlite, the module fails to load with following error: : symbol lookup error: /usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731/pdo_sqlite.so: undefined symbol: sqlite3_libversion ./configure --with-sqlite3=shared --with-pdo-sqlite=shared make && make install add to php.ini extension=sqlite3.so extension=pdo_sqlite.so php -i|grep sqlite -A 5 phpPDO drivers => sqlite : symbol lookup error : /usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731/pdo_sqlite.so: pdo_sqlite undefined symbol: sqlite3_libversion PDO Driver for SQLite 3.x => enabled The solution suggested by jd at cpanel in bug 48614 works - patching configure script with this: else # use bundled libs + + # This change is anchored here to avoid patch being misapplied. This really only needs to be added + # when pdo_sqlite is compiled shared and using the bundled sqlite3. It shouldn't hurt so long as the + # bundled sqlite3 is used though. + shared_objects_pdo_sqlite="$shared_objects_pdo_sqlite ext/sqlite3/libsqlite/sqlite3.lo" + if test "$enable_maintainer_zts" = "yes"; then threadsafe_flags="-DSQLITE_THREADSAFE=1" else However all of these are workarounds and they are not perfect. I want to use bundled sqlite, because php is tested with it and I don't want to patch configure script every time because updating gets more complicated. I didn't write in bug 48614 because I assume it's for (unsupported) php 5 and that's why it's not fixed. I'm not sure if php 7 bugs have to be repored separately. Test script: --------------- <?php // make sure to load pdo_sqlite.so extension in php.ini $memory_db = new PDO("sqlite::memory:"); Expected result: ---------------- no error message Actual result: -------------- php: symbol lookup error: /usr/local/php73/lib/php/extensions/no-debug-non-zts-20180731/pdo_sqlite.so: undefined symbol: sqlite3_open_v2 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=79672&edit=1

« previous php.bugs (#231223) next »