Re: clntsh.o

Even if you extract the object file from the archive it might still
be a shared object. The only way to tell is to do a

dump -ov objectfilename

If the header says SHROBJ and DYNLOAD then you would need the
source for the module to relink it so that your calling code can
be then linked static. Linking with the module outside of the
archive is still going to generate references to the shared object.

If it's a runtime resolution issue with the shared object do a

dump -HTv yourexecutable

and you will see the library path that the executable is going to use
at load time. The path can be stripped by passing a -bnoipath
option to the linker for your main program. You can then use
the LIBPATH environment variable to resolve the dependancies at
run-time....otherwise the program will not load and you'll get
a message about not being able to find the shared object.

We have to do this in our environment because there is no compiler
on the prod machine and the directory paths for the libraries can
be different. This might be why your developers want to statically
link.

BTW...the 'god' of AIX linking and loading (Gary R. Hook) says
that 'static linking is evil'

HTH

Jeff Herrick

On Thu, 14 Oct 2004, Carel-Jan Engel wrote:

> Michael,
> an .a file is a library, storing the object modules.
>
> I've no AIX at hand here, but something like 'ar xv libclntsh.a
> libclntsh.o' should do the job. It simply extracts the module from the
> library.
>
> ar tv libclntsh.a should show you the contents of the library.
>
> Hope this helpls,
>
>
> Best regards,
>
> Carel-Jan Engel
>
> ===
> If you think education is expensive, try ignorance. (Derek Bok)
> ===
>
>
> On Thu, 2004-10-14 at 12:50, Kline.Michael wrote:
>
> > My Team Leader is looking for information on clntsh.o changes in Oracle
> > 9.2 on AIX. His note follows.
> >
>
>
>
>
> --
> http://www.freelists.org/webpage/oracle-l
>
--
http://www.freelists.org/webpage/oracle-l

Other related posts: