Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5 (1477 Views)
Reply
Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 1 of 11 (1,537 Views)

/usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

Hi

 

I am getting the following error when I run a concurrent programs in Oracle R12.1.3, which calls a Pro *C executable.

 

/usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5
/usr/lib/dld.sl: No such file or directory
/d701/oracle/cfo/bin/CFORPPL
Program was terminated by signal 6

 

-----------------------------------------------------------------------------------------

more information : we have libstdc++.sl.5 available in the path /usr/lib/.

 

An ls -ltr in /usr/lib/ gives

 

ls -ltr libstdc++.sl.5


lrwx------ 1 root sys 35 Feb 28 2012 libstdc++.sl.5 -> /usr/syncsort/lib/libstdc++.sl.5_32

 

similarly an ls -ltr in /usr/syncsort/lib/ gives 

 

-rwxr-xr-x   1 root       sys        5768296 Feb  8  2006 /usr/syncsort/lib/libstdc++.sl.5

 

I am not sure what is the issue??

 

For apps mgr

 

/home/appsimd1>echo $SHLIB_PATH

/d701/oracle/apps/apps_st/appl/pay/12.0.0/vendor/quantum/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/cz/12.0.0/bin:
/d701/oracle/apps/tech_st/10.1.2/lib32:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/dt/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/sht/12.0.0/lib:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/lib:
/usr/syncsort/lib

 

but for a normal user 

<imd1> echo $SHLIB_PATH

/d701/oracle/apps/apps_st/appl/pay/12.0.0/vendor/quantum/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/cz/12.0.0/bin:
/d701/oracle/apps/tech_st/10.1.2/lib32:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/dt/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/sht/12.0.0/lib:
/usr/syncsort/lib:
/opt/microfocus/cobol/lib

 

I am not sure what is the unix user the Oracle Concurrent program is using. Is it a path issue?

 

Please help

 

Acclaimed Contributor
Dennis Handly
Posts: 25,089
Registered: ‎03-06-2006
Message 2 of 11 (1,536 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

[ Edited ]

>we have libstdc++.sl.5 available in the path /usr/lib/.

 

While this is the default, I assume you can get dld to not look there.

 

What do these show:

ldd /d701/oracle/cfo/bin/CFORPPL

chatr /d701/oracle/cfo/bin/CFORPPL

file /usr/lib/libstdc++.sl.5

 

>I am not sure what is the unix user the Oracle Concurrent program is using.   Is it a path issue?

 

That's possible.  Can your run CFORPPL from any user?  Or what changes to SHLIB_PATH make it work?

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 3 of 11 (1,527 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

Thanks for the quick response. Here are the answers for your first question.

 

<imd1> ldd /d701/oracle/cfo/bin/CFORPPL
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/syncsort/lib/libsyncsort32.sl => /usr/syncsort/lib/libsyncsort32.sl
/usr/lib/dld.sl: Bad magic number for shared library: /usr/syncsort/lib/libstdc++.sl.5
/usr/lib/dld.sl: Exec format error

 


<imd1> chatr /d701/oracle/cfo/bin/CFORPPL
/d701/oracle/cfo/bin/CFORPPL:
shared executable
shared library dynamic path search:
SHLIB_PATH disabled second
embedded path disabled first Not Defined
shared library list:
dynamic /usr/lib/libcl.2
dynamic /usr/lib/librt.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libnss_dns.1
dynamic /usr/lib/libdld.2
dynamic /usr/lib/libm.2
static /usr/syncsort/lib/libsyncsort32.sl
dynamic /usr/lib/libc.2
shared library binding:
deferred
global hash table disabled
plabel caching disabled
global hash array size:1103
global hash array nbuckets:3
shared vtable support disabled
explicit unloading enabled
runtime checks disabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: D (default)
instruction page size: D (default)
nulptr references disabled
shared library private mapping disabled
shared library text merging disabled

 


<imd1> file /usr/lib/libstdc++.sl.5
/usr/lib/libstdc++.sl.5: PA-RISC1.1 shared library -not stripped
<imd1>

 

 

For your second question. I am not sure if the Concurrent Program uses a specific user account for its program execution.I am in the process of finding it out. Meanwhile,  I have logged into the unix box user my user account and it doesnot bring me /usr/lib/ in the echo SHLIB_PATH, where as the DBA when he logged in as his user account, I believe he must be using his application manager user account, it shows /usr/lib/ in the echo SHLIB_PATH!!

 

see the outputs below:- 

usr: ssingh21

<imd1> echo $SHLIB_PATH

/d701/oracle/apps/apps_st/appl/pay/12.0.0/vendor/quantum/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/cz/12.0.0/bin:
/d701/oracle/apps/tech_st/10.1.2/lib32:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/dt/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/sht/12.0.0/lib:
/usr/syncsort/lib:
/opt/microfocus/cobol/lib


For apps mgr

/home/appsimd1>echo $SHLIB_PATH

/d701/oracle/apps/apps_st/appl/pay/12.0.0/vendor/quantum/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/cz/12.0.0/bin:
/d701/oracle/apps/tech_st/10.1.2/lib32:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/dt/lib:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0:
/d701/oracle/apps/tech_st/10.1.2/jdk/jre/lib/PA_RISC2.0/server:
/d701/oracle/apps/apps_st/appl/sht/12.0.0/lib:
/d701/oracle/apps/tech_st/10.1.2/lib:
/usr/lib:
/usr/syncsort/lib

 

Please advice.

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 4 of 11 (1,526 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

Also I tried this from my user

 

<imd1> cd $CFO_TOP
<imd1> cd bin
<imd1> ls -ltr
total 288308
-rwxrwxrwx 1 appsimd1 dba 7044544 Jul 25 02:55 CFOFVH_bkp
-rwxrwxrwx 1 appsimd1 dba 213 Jul 25 02:55 setofd2
-rwxrwxrwx 1 appsimd1 dba 90 Jul 25 02:55 chatr.scr
-rwxrwxrwx 1 appsimd1 dba 7098368 Jul 25 02:55 CFORPPL.backup
-rwxrwxrwx 1 appsimd1 dba 7098368 Jul 25 02:55 CFORPPL.062006
-rwxrwxrwx 1 appsimd1 dba 607 Jul 25 02:55 readme.txt
drwxrwxrwx 2 appsimd1 dba 96 Jul 25 02:55 stage
drwxrwxrwx 2 appsimd1 dba 1024 Jul 25 02:55 back
-rwxrwxrwx 1 appsimd1 dba 23362976 Sep 25 05:26 CFOCPT
-rwxrwxrwx 1 appsimd1 dba 65536 Sep 25 05:26 CFOFVHA
-rwxrwxrwx 1 appsimd1 dba 237568 Sep 25 05:26 CFOEXP
-rwxrwxrwx 1 appsimd1 dba 249856 Sep 25 05:26 CFOIMP
-rwxrwxrwx 1 appsimd1 dba 139264 Sep 25 05:26 CFOCPTA
-rwxrwxrwx 1 appsimd1 dba 217088 Sep 25 05:26 CFORDLA
-rwxrwxrwx 1 appsimd1 dba 23436704 Sep 25 05:26 CFORDL
-rwxrwxrwx 1 appsimd1 dba 23707040 Sep 25 05:26 CFORPP
-rwxrwxrwx 1 appsimd1 dba 602904 Sep 25 05:26 CFORPPA
-rwxrwxrwx 1 appsimd1 dba 23707040 Sep 25 05:26 CFORPPL
-rwxrwxrwx 1 appsimd1 dba 23408032 Sep 25 05:26 CFOXRP
-rwxrwxrwx 1 appsimd1 dba 184320 Sep 25 05:26 CFOXRPA
-rwxrwxrwx 1 appsimd1 dba 7044544 Sep 28 06:17 CFOFVH
-rwxrwxrwx 1 appsimd1 dba 213 Sep 28 06:24 setimd1
<imd1> CFORPPL
/usr/lib/dld.sl: Bad magic number for shared library: /usr/syncsort/lib/libstdc++.sl.5
/usr/lib/dld.sl: Exec format error
Abort(coredump)
<imd1>

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 5 of 11 (1,524 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

I have added the path /usr/lib/ to my unix user using export and then executed 

 

<imd1> CFORPPL
/usr/lib/dld.sl: Bad magic number for shared library: /usr/syncsort/lib/libstdc++.sl.5
/usr/lib/dld.sl: Exec format error

 

 

I get the same error.

Acclaimed Contributor
Dennis Handly
Posts: 25,089
Registered: ‎03-06-2006
Message 6 of 11 (1,516 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

[ Edited ]

>dld.sl: Bad magic number for shared library: /usr/syncsort/lib/libstdc++.sl.5

 

What do these show?

file /usr/syncsort/lib/libstdc++.sl.5

chatr /usr/syncsort/lib/libsyncsort32.sl

 

It seems you have a confusing set up.  You have libstdc++.sl.5 AND libstdc++.sl.5_32!

 

You should NOT have 32 and 64 bit shlibs in the same directory.  And also, they should have the same basenames.

 

>SHLIB_PATH disabled second

>static /usr/syncsort/lib/libsyncsort32.sl

 

These say it will ignore SHLIB_PATH and if you enable it, will ignore it for that shlib.

 

>/usr/lib/libstdc++.sl.5: PA-RISC1.1 shared library -not stripped

 

So you have a shlib that will work.

 

>does not bring me /usr/lib/ in the echo SHLIB_PATH

>I have added the path /usr/lib/ to my unix user using export and then executed ...

>I get the same error.

 

Of course, this is a moot point since it will ignore it, for two reasons.

 

You need to move /usr/syncsort/lib/libstdc++.sl.5 to /usr/syncsort/lib/libstdc++.sl.5_64 (if not already there) and then move or link /usr/syncsort/lib/libstdc++.sl.5_32 to /usr/syncsort/lib/libstdc++.sl.5.

 

Of course there may be 64 bit applications that no longer work.  :-(

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 7 of 11 (1,509 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

<imd1> file /usr/syncsort/lib/libstdc++.sl.5
/usr/syncsort/lib/libstdc++.sl.5: ELF-64 shared object file - PA-RISC 2.0 (LP64)
<imd1> chatr /usr/syncsort/lib/libsyncsort32.sl
/usr/syncsort/lib/libsyncsort32.sl:
shared library
shared library dynamic path search:
SHLIB_PATH enabled first
embedded path disabled second Not Defined
shared library list:
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libcl.2
dynamic /usr/lib/libm.2
dynamic /gcc_location32/bin/../lib/gcc-lib/hppa1.1-hp-hpux11.00/3.2.2/../../../libstdc++.sl.5
shared vtable support disabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: D (default)
instruction page size: D (default)
nulptr references enabled
shared library private mapping disabled
<imd1>

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 8 of 11 (1,508 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

Also

 

<imd1> file /usr/syncsort/lib/libstdc++.sl.5
/usr/syncsort/lib/libstdc++.sl.5: ELF-64 shared object file - PA-RISC 2.0 (LP64)

 


<imd1> file /usr/syncsort/lib/libstdc++.sl.5_32
/usr/syncsort/lib/libstdc++.sl.5_32: PA-RISC1.1 shared library -not stripped
<imd1>

Acclaimed Contributor
Dennis Handly
Posts: 25,089
Registered: ‎03-06-2006
Message 9 of 11 (1,506 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

>/usr/syncsort/lib/libstdc++.sl.5: ELF-64 shared object file - PA-RISC 2.0 (LP64)

 

This is a 64 bit shlib.  Did you try moving it out of the way?


>chatr /usr/syncsort/lib/libsyncsort32.sl
>SHLIB_PATH enabled first
>dynamic /gcc_location32/bin/../lib/gcc-lib/hppa1.1-hp-hpux11.00/3.2.2/../../../libstdc++.sl.5

 

It looks like this doesn't work if not enabled on the executable.

So try:

chatr +s enable /d701/oracle/cfo/bin/CFORPPL

 

(You may have to make it writable first.)

Occasional Advisor
anilkris
Posts: 8
Registered: ‎10-03-2012
Message 10 of 11 (1,493 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

I haved tred this..

 

 

<imd1> chatr +s enable /d701/oracle/cfo/bin/CFORPPL
/d701/oracle/cfo/bin/CFORPPL:
current values:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled second
embedded path disabled first Not Defined
shared library list:
dynamic /usr/lib/libcl.2
dynamic /usr/lib/librt.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libnss_dns.1
dynamic /usr/lib/libdld.2
dynamic /usr/lib/libm.2
static /usr/syncsort/lib/libsyncsort32.sl
dynamic /usr/lib/libc.2
shared library binding:
deferred
global hash table disabled
plabel caching disabled
global hash array size:1103
global hash array nbuckets:3
shared vtable support disabled
explicit unloading enabled
runtime checks disabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: D (default)
instruction page size: D (default)
nulptr references disabled
shared library private mapping disabled
shared library text merging disabled
new values:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled second
embedded path disabled first Not Defined
shared library list:
dynamic /usr/lib/libcl.2
dynamic /usr/lib/librt.2
dynamic /usr/lib/libpthread.1
dynamic /usr/lib/libnss_dns.1
dynamic /usr/lib/libdld.2
dynamic /usr/lib/libm.2
static /usr/syncsort/lib/libsyncsort32.sl
dynamic /usr/lib/libc.2
shared library binding:
deferred
global hash table disabled
plabel caching disabled
global hash array size:1103
global hash array nbuckets:3
shared vtable support disabled
explicit unloading enabled
runtime checks disabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: D (default)
instruction page size: D (default)
nulptr references disabled
shared library private mapping disabled
shared library text merging disabled
<imd1> ls -ltr

Acclaimed Contributor
Dennis Handly
Posts: 25,089
Registered: ‎03-06-2006
Message 11 of 11 (1,477 Views)

Re: /usr/lib/dld.sl: Can't find path for shared library: libstdc++.sl.5

>I have tried this: chatr +s enable /d701/oracle/cfo/bin/CFORPPL

 

Does it work now?

 

It seems if you have this:

>For apps mgr

 >echo $SHLIB_PATH

...
>/usr/lib:
>/usr/syncsort/lib

 

It should work.

Or did you trying moving /usr/syncsort/lib/libstdc++.sl.5 out of the way?

The opinions expressed above are the personal opinions of the authors, not of HP. By using this site, you accept the Terms of Use and Rules of Participation.