Re: libocci - when is it linked into Oracle.so?

[email protected] (E R)
Newsgroups perl.dbi.users
Message-ID <[email protected]>
On Mon, Nov 22, 2010 at 4:08 PM, John R Pierce <[email protected]> wrote:
> On 11/22/10 11:58 AM, E R wrote:
>>
>> Hi,
>>
>> I have two DBD/Oracle/Oracle.so shared libraries. In one case ldd
>> reports that libocci is linked in, and in another case libocci doesn't
>> show up.
>
> wild guess says one was linked statically (eg, libocci.a rather than
> libocci.so).   static linking embeds a copy of the lib in the module so its
> not externally referenced.   good in that you don't have to worry about the
> lib path, bad in that if the lib is updated your module won't see the new
> one, good in that if those updates break something, it won't effect you.

Here is the ldd from the one which includes libocci.so:

	linux-gate.so.1 =>  (0x00ae5000)
	libocci.so.10.1 =>
/usr/lib/oracle/10.2.0.4/client/lib/libocci.so.10.1 (0x00110000)
	libclntsh.so.10.1 =>
/usr/lib/oracle/10.2.0.4/client/lib/libclntsh.so.10.1 (0x00ae6000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00625000)
	libc.so.6 => /lib/libc.so.6 (0x0026f000)
	libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x003b5000)
	libm.so.6 => /lib/libm.so.6 (0x00207000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x009c7000)
	libnnz10.so => /usr/lib/oracle/10.2.0.4/client/lib/libnnz10.so (0x00672000)
	libdl.so.2 => /lib/libdl.so.2 (0x0022e000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00232000)
	/lib/ld-linux.so.2 (0x00253000)

Here is the ldd from one that doesn't:

	linux-gate.so.1 =>  (0x00740000)
	libclntsh.so.10.1 => /.../oracle/libclntsh.so.10.1 (0x00741000)
	libc.so.6 => /lib/libc.so.6 (0x0026f000)
	libnnz10.so => /.../oracle/libnnz10.so (0x003b5000)
	libdl.so.2 => /lib/libdl.so.2 (0x00110000)
	libm.so.6 => /lib/libm.so.6 (0x00114000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x0017d000)
	libnsl.so.1 => /lib/libnsl.so.1 (0x00195000)
	/lib/ld-linux.so.2 (0x00253000)

The directory /.../oracle is where a copy of the instantclient
libraries are located. The files there compare byte-for-byte with the
files in /usr/lib/oracle/10.2.0.4/client/lib.

In the first case, how did the c++ library get brought into the picture???
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.