From: MB on
After installing oratcl 4.4 I got an error trying to load
lib/libclntsh.so

I noticed that oracle ships a libclntsh.a file instead of .so and tried
linking it, and got this error.
0509-103 The module has an invalid magic number.

I also looked inside genclntsh, but it doesn't appear to have any
options to keep the object file around.

looking inside the .a file I saw that it contains one .o file, shr.o

i extracted that with ar -x, and renamed it to libclntsh.so, and Oratcl
loaded fine, and my application tests ran.

I was just wondering if anyone out there knows the proper (or at least
a better) way to configure/run it on aix.


mike

From: thelfter@gmail.com on
Thanks for your report. In the past.. I've had to create a symlink
from libclient.a to libclient.so ... I'm not exactly sure why this is
the case, but apparently something in aix indicates that .so is the
shared object extension even though Oracle doesn't create one.

Anyway. There is another option you can try.

set your ORACLE_LIBRARY environment variable to
$ORACLE_HOME/lib/libclient.a before start Tcl. In Oratcl 4.4 that
should do the trick.
This is also useful for any slightly unstandard library location such
as the instant client.

-Todd



On Oct 13, 6:14 pm, "MB" <tir...(a)gmail.com> wrote:
> After installing oratcl 4.4 I got an error trying to load
> lib/libclntsh.so
>
> I noticed that oracle ships a libclntsh.a file instead of .so and tried
> linking it, and got this error.
> 0509-103 The module has an invalid magic number.
>
> I also looked inside genclntsh, but it doesn't appear to have any
> options to keep the object file around.
>
> looking inside the .a file I saw that it contains one .o file, shr.o
>
> i extracted that with ar -x, and renamed it to libclntsh.so, and Oratcl
> loaded fine, and my application tests ran.
>
> I was just wondering if anyone out there knows the proper (or at least
> a better) way to configure/run it on aix.
>
> mike

From: MB on
I tried setting the ORACLE_LIBRARY var to the .a file, and still got a
similar error.
(Oratcl_Init): Failed to load
/home/oracle/product/9.2.0.1/lib/libclntsh.a with error < 0509-026
System error: Cannot run a file that does not have a valid format.>

we've been testing for about a month with oratcl opening the shr.o file
I pulled from the archive without any problems.

It seems like every time we turn around we are running into problems
with aix shared libraries.

thelfter(a)gmail.com wrote:
> Thanks for your report. In the past.. I've had to create a symlink
> from libclient.a to libclient.so ... I'm not exactly sure why this is
> the case, but apparently something in aix indicates that .so is the
> shared object extension even though Oracle doesn't create one.
>
> Anyway. There is another option you can try.
>
> set your ORACLE_LIBRARY environment variable to
> $ORACLE_HOME/lib/libclient.a before start Tcl. In Oratcl 4.4 that
> should do the trick.
> This is also useful for any slightly unstandard library location such
> as the instant client.
>
> -Todd
>
>
>
> On Oct 13, 6:14 pm, "MB" <tir...(a)gmail.com> wrote:
> > After installing oratcl 4.4 I got an error trying to load
> > lib/libclntsh.so
> >
> > I noticed that oracle ships a libclntsh.a file instead of .so and tried
> > linking it, and got this error.
> > 0509-103 The module has an invalid magic number.
> >
> > I also looked inside genclntsh, but it doesn't appear to have any
> > options to keep the object file around.
> >
> > looking inside the .a file I saw that it contains one .o file, shr.o
> >
> > i extracted that with ar -x, and renamed it to libclntsh.so, and Oratcl
> > loaded fine, and my application tests ran.
> >
> > I was just wondering if anyone out there knows the proper (or at least
> > a better) way to configure/run it on aix.
> >
> > mike