General
cancel
Showing results for 
Search instead for 
Did you mean: 

shl_load shared library error (Oracle-SAS)

SOLVED
Go to solution
Shirley Barger
Occasional Advisor

shl_load shared library error (Oracle-SAS)

We are running Oracle 8.1.6 on an N4000, HPUX 11.0. We have installed SAS 8, which should connect to the Oracle database via its Access
product. Attempts at connection fail with this error from the OS:
/usr/lib/dld.sl: Can't shl_load() a library containing Thread Local Storage:
/oracle/product/8.1.6/JRE/lib/PA_RISC/native_threads/libjava.sl
/usr/lib/dld.sl: Exec format error

We haven't run into problems connecting to the database in any way other than SAS 8 Access. SAS support has not yet been helpful. I have sent them a copy of HP document AUSRCKBAN00000314 (shl_loading shared libraries with thread local storage), but that hasn't gone anywhere yet. Should I be pointing a finger at Oracle, too? Is there anything I can do on the HP side? Thanks for any enlightenment you can offer.
4 REPLIES
Rick Garland
Honored Contributor

Re: shl_load shared library error (Oracle-SAS)

Patches (from both HP and Oracle) should be investigated.
BTW, don't point the finger at one, point it at both.

They have a way of saying "It's their problem."
Mike Stroyan
Honored Contributor
Solution

Re: shl_load shared library error (Oracle-SAS)

Here is a horrible hack that might get SAS working with Oracle Access. You could spoof an existing shared library that the application is already linked with. The new shared library would be found first by using SHLIB_PATH. It would pull in both the real version of the shared library and the libjava.sl library that has TLS data. You will need a compiler just to
create a .o file for the new shared library.
Assuming the application executable is /bin/foo-
su
chatr +s enable /bin/foo

echo "int d(){}" > d.c
cc +Z -c d.c
ld -b -o libc.2 d.o /usr/lib/libc.2 /opt/java/lib/PA_RISC/native_threads/libjava.sl
export SHLIB_PATH=$PWD
/bin/foo
--------------------------------------------------------------------------------------

Re: shl_load shared library error (Oracle-SAS)

I think your problem is, that you have not the correct library, because the modul Thread Local Storage is not found by the application in the shared library. Therefore you have to call for a new libjava.sl library which contents these code.
For this reason I don't think the above hack is not your solution.

Re: shl_load shared library error (Oracle-SAS)

Sorry, a typo. I mean the hack is not a solution to your problem, you need a new libjava.sl.