ID:               35432
 User updated by:  mail at philipp-wagner dot com
 Reported By:      mail at philipp-wagner dot com
 Status:           Open
 Bug Type:         Documentation problem
 Operating System: SuSE Linux 8.0
 PHP Version:      5CVS-2005-11-27 (snap)
 Assigned To:      wez
 New Comment:

I'm really sorry that I'm adding again some small thing, but I figured
out that it is also important in which order you load the modules. You
have to load the PDO modules first, before you load the sqlite module,
otherwise you get the following error:
<b>Warning</b>:  PHP Startup: Unable to load dynamic library
'/usr/local/lib/php/extensions/no-debug-non-zts-20050922/sqlite.so' -
/usr/local/lib/php/extensions/no-debug-non-zts-20050922/sqlite.so:
undefined symbol: php_pdo_register_driver in <b>Unknown</b> on line
<b>0</b><br />

The PDO modules are loaded correctly, but the sqlite module won't until
you place the extension=sqlite.so line in the php.ini file after the pdo
extensions. 

That should be mentioned in the documentation also.


Previous Comments:
------------------------------------------------------------------------

[2005-11-30 20:15:30] mail at philipp-wagner dot com

It's really a documentation problem then. It's NOT enough to just
specify (as you wrote above)
--enable-pdo=shared
--with-pdo-mysql=shared,/usr/local/mysql
--with-sqlite=shared

I had to use
--enable-pdo=shared
--with-pdo-mysql=shared,/usr/local/mysql
--with-sqlite=shared
--with-pdo-sqlite=shared

to get it to work. This really should be be mentioned in the
documentation. The documentation only suggests to compile with
--enable-pdo=shared, but that won't work, if you don't use at least the
corresponding sqlite configure options also.

------------------------------------------------------------------------

[2005-11-30 18:47:41] [EMAIL PROTECTED]

You "simply" need to tell configure to build what you want it to build,
how you want it built.

--enable-pdo=shared
--with-pdo-mysql=shared,/usr/local/mysql
--with-sqlite=shared

I know it sucks that we can't automatically make it work that way you
want it; configure scripts have their limitations.


------------------------------------------------------------------------

[2005-11-30 17:31:25] [EMAIL PROTECTED]

Wez, so, enabling by default is good thing? 
Hint: You should always use --disable-all :)

------------------------------------------------------------------------

[2005-11-30 16:25:12] mail at philipp-wagner dot com

Well, I thought this might be the problem (mixing of shared and static
libraries)... But now the check seems to be too strict.

I first tried to build with  --enable-pdo=shared
--with-pdo-mysql=shared,/usr/local/mysql

Now I got the following error message:
You've configured extension sqlite to build statically, but it depends
on extension pdo, which you've configured to build shared.
You either need to build sqlite shared or build pdo statically for the
build to be successful.

sqlite is enabled by default (I didn't specify exlicitly specify pdo
sqlite support as a configure option).

./configure --help doesn't say anything about an option like
--with-pdo-sqlite, but I tried to use it anyways (or what else should I
do to specify shared pdo sqlite support?). So I ran ./configure with
--with-pdo-sqlite=shared

This worked out quite well at first, configure gave me an output like

checking for sqlite 3 driver for PDO... yes, shared

But then, a bit further down, I got the error message again:

checking for PDO includes... (cached)
/usr/local/src/php5.1-200511301330/ext
checking for lemon... no
configure: warning: lemon versions supported for regeneration of
libsqlite parsers: 1.0 (found: none).
configure: error:
You've configured extension sqlite to build statically, but it depends
on extension pdo, which you've configured to build shared.
You either need to build sqlite shared or build pdo statically for the
build to be successful.

I actually think, if you specify --enable-pdo=shared, all pdo
"submodules" should also be built shared, as it reduces confusion and
is the only way to get a working build anyways  (it seems it is not
possible to mix shared and static pdo libraries, so there's no need to
specify it seperately).

Also, the documentation doesn't say anything about how to build the
specific PDO modules. It just suggests building PDO with
--enable-pdo=shared, but doesn't say which configure options to use for
MySQL PDO support etc. (I just got it from the ./configure --help
output), and also doesn't mention the shared "problem".

------------------------------------------------------------------------

[2005-11-30 05:48:21] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5.1-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.1-win32-latest.zip

Please try the next PHP 5.1 snapshot.
It features an improved error message that should catch conflicting
configure options.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/35432

-- 
Edit this bug report at http://bugs.php.net/?id=35432&edit=1

Reply via email to