Martin,
Thanks for your response.
the reason why postgresql library was not found by ldd on your system is, that the loader path is not set to it. You need to fix the loader path either using solaris' "crle" utility or setting LD_LIBRARY_PATH env. variable.
We are well aware of the crle tool. It does offer some powerful utility for environment-wide runtime linking; but this is definitely not what we want to do. The preferred approach is to link the correct libraries - often different versions for different purposes - against specific binaries. We could fiddle with the runtime environment of each binary in any number of ways, but this is just 'bad practice'; to create one-off solutions to the runtime environment for each executable. This is a management nightmare!
Regarding mysql version - the error is reported because mysql.h file contains invalid version.
(I don't think it does, if your test is >= 4.1):
# grep MYSQL_VERSION_ID /usr/local/mysql/include/mysql/mysql.h
#if defined(EMBEDDED_LIBRARY) || defined(EMBEDDED_LIBRARY_COMPATIBLE) || MYSQL_VERSION_ID >= 50100
1.) attach config.log so we can check it
2.) provide output of "grep MYSQL_VERSION_ID /path/to/your/mysql.h"
I just ran the whole process against against a freshly-downloaded source tree to provide you an empirical test.
(FWIW, an # configure distclean left our previous source tree in an unconfigure-able state). I even added the LD_LIBRARY_PATH variable, in case you're testing for it in config. (Didn't see any evidence you were).
./configure \
CPPFLAGS='-I/usr/local/postgres/9b4/include/' \
LDFLAGS='-L/usr/local/postgres/9b4/lib/' \
LD_LIBRARY_PATH='/usr/local/postgres/9b4/lib/' \
PGCONFIG='/usr/local/postgres/9b4/bin/pg_config' \
--enable-optimized \
--enable-protected \
--enable-openssl=/usr/local/ssl \
--enable-sqliteunlock \
--with-mysql=/usr/local/mysql/bin/mysql_config \
--with-postgresql=/usr/local/postgres/9b4/bin/pg_config \
--with-sqlite=/usr/local
Here's the result of configure:
+------------------------------------------------------------+
| The Zild Database Library is configured as follows: |
| |
| Optimized: ENABLED |
| Protected: ENABLED |
| Profiling: DISABLED |
| Zild: DISABLED |
| Sqlite3 unlock notification API: ENABLED |
| Unit Tests Build: DISABLED |
| Openssl: ENABLED |
|------------------------------------------------------------|
| SQLite3: ENABLED |
| MySQL: DISABLED |
| PostgreSQL: ENABLED |
+------------------------------------------------------------+
Here is the output of ldd:
# ldd /usr/local/lib/libzdb.so
libpq.so.5 => (file not found)
libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0
(...etc)
(this build does not link at all to any mysql client... As I've mentioned, I've been able to get a mysqlclient linked in by modifying the configure script)
And the config.log is attached.
Thanks for your ideas. Lou
----- Original Message -----
From: "Martin Pala" <
martinp@tildeslash.com>
To: "This is the libzdb general mailing list" <
libzdb-general@tildeslash.com>
Sent: Wednesday, August 11, 2010 3:28:44 PM
Subject: Re: Configure/compile issues on Solaris SPARC
Lou,
the reason why postgresql library was not found by ldd on your system is, that the loader path is not set to it. You need to fix the loader path either using solaris' "crle" utility or setting LD_LIBRARY_PATH env. variable.
Regarding mysql version - the error is reported because mysql.h file contains invalid version. Please:
1.) attach config.log so we can check it
2.) provide output of "grep MYSQL_VERSION_ID /path/to/your/mysql.h"
On Aug 11, 2010, at 9:18 PM, Lou Picciano wrote:
> let me guess. There is an older mysql.h somewhere other than /usr/local/mysql/include/
Indeed there is. In fact, there may be a few, as would be normal on these systems; different versions of not only MySQL, but of any number of tools, used in different ways for different objectives, or to test different variables. This is very common in our testing of multiple versions of OpenSSL, for example, and works flawlessly...
But what's relevant in this case, I should think, is that the specific version of MySQL to which we point, using configure,
--with-mysql=/usr/local/mysql/bin/mysql_config \
...is indeed >= 4.1, as indicated by this note:
# /usr/local/mysql/bin/mysql_config --version
5.0.51
In further testing, we were able to achieve the MySQL integration by 'manhandling' the configure script - shouldn't have to do this! - but cannot get the correct version of PostgreSQL recognized:
# ldd /usr/local/lib/libzdb.so
libpq.so.4 => /usr/lib/libpq.so.4 -- OR, Depending on configuration: ----
libpq.so.5 => (file not found)
libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0
libmysqlclient.so.15 => /usr/local/mysql/lib/mysql/libmysqlclient.so.15
even though we're pointing to an instance of PostgreSQL in an entirely different location.
--with-postgresql=/usr/local/postgres/9b4/bin/pg_config
Are you maintaining the libzdb package, too? What do you think the answer is?
Lou
----- Original Message -----
From: "Paul J Stevens" <
paul@nfg.nl>
To: "This is the libzdb general mailing list" <
libzdb-general@tildeslash.com>
Sent: Wednesday, August 11, 2010 2:26:39 PM
Subject: Re: Configure/compile issues on Solaris SPARC
Me again :-)
Lou, let me guess. There is an older mysql.h somewhere other than
/usr/local/mysql/include/
On 08/11/2010 06:57 PM, Lou Picciano wrote:
>
> # nm /usr/local/mysql/lib/mysql/libmysqlclient.so | grep mysql_init
> 000300f0 T mysql_init
>
> )
>
> Some pertinent output from configure:
>
> ...
--
________________________________________________________________
Paul Stevens paul at
nfg.nl NET FACILITIES GROUP GPG/PGP: 1024D/11F8CD31
The Netherlands________________________________http://www.nfg.nl
--
To unsubscribe:
http://www.tildeslash.com/mailman/listinfo/libzdb-general--
To unsubscribe:
http://www.tildeslash.com/mailman/listinfo/libzdb-general
--
To unsubscribe:
http://www.tildeslash.com/mailman/listinfo/libzdb-general