Operating System - HP-UX
1832343 Members
2612 Online
110041 Solutions
New Discussion

Bad magic number for shared library

 
Vibhavari
Occasional Advisor

Bad magic number for shared library

I have compiled my C++ code on one HP-UX B11.11 server. When I copy the executable on other HP-UX B11.11 server and do ldd on it, it gives error as
/usr/lib/dld.sl: Bad magic number for shared library: /home/abhay/RangerRoot/lib/libaiframework.sl.0

Actually instead of above path it should pick the file from /disk2/rekhagc/RangerRoot/lib/.


The SHLIB_PATH and LD_LIBRARY_PATh are set properly.
echo $SHLIB_PATH
/disk2/rekhagc/RangerRoot/lib/:/disk2/rekhagc/RangerRoot/lib:/home/ranger1/Ora_DB_9i/lib32:/disk2/rekhagc/RangerRoot/lib:/disk2/rekhagc/RangerRoot/lib/:/home/ranger1/RangerRoot/lib/:/home/ranger1/tools/ncurses/usr/local/lib/:/home/ranger1/RangerRoot/lib:/home/ranger1/tools/gcc/usr/local/lib:/home/ranger1/tools/gcc/usr/local/lib:/usr/local/bin/iconv:/opt/java1.4/lib:/disk2/rekhagc/webserver/lib:/disk2/rekhagc/webserver/sbin/:/usr/lib:/home/ranger1/tools/ncurses/lib:/home/ranger1/Ora_DB_9i/lib:/usr/lib/:/disk2/rekhagc/RangerRoot/lib:/home/ranger1/ncurses/usr/local/lib/

echo $LD_LIBRARY_PATH
/disk2/rekhagc/RangerRoot/lib/:/disk2/rekhagc/RangerRoot/lib:/home/ranger1/Ora_DB_9i/lib32:/disk2/rekhagc/RangerRoot/lib:/disk2/rekhagc/RangerRoot/lib/:/home/ranger1/RangerRoot/lib/:/home/ranger1/tools/ncurses/usr/local/lib/:/home/ranger1/RangerRoot/lib:/home/ranger1/tools/gcc/usr/local/lib:/home/ranger1/tools/gcc/usr/local/lib:/usr/local/bin/iconv:/opt/java1.4/lib:/disk2/rekhagc/webserver/lib:/disk2/rekhagc/webserver/sbin/:/usr/lib:/home/ranger1/tools/ncurses/lib:/home/ranger1/Ora_DB_9i/lib:/usr/lib/:/disk2/rekhagc/RangerRoot/lib:/home/ranger1/ncurses/usr/local/lib/

=============
ldd output
==========
/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/local/lib/libgcc_s.sl => /home/ranger1/tools/gcc/usr/local/lib/libgcc_s.sl
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib//libm.2 => /usr/lib/libm.2
/usr/local/lib/libstdc++.sl.6 => /home/ranger1/tools/gcc/usr/local/lib/libstdc++.sl.6
/usr/lib/libc.2 => /usr/lib/libc.2
/scratch/njs/pkgbuild/3.3.1/hpux-11/gcc-3.4.2-b/gcc/libgcc_s.sl => /home/ranger1/tools/gcc/usr/local/lib/libgcc_s.sl
/usr/lib/libm.2 => /usr/lib/libm.2
/usr/local/lib/libncurses.sl => /home/ranger1/tools/ncurses/usr/local/lib//libncurses.sl
/usr/lib//libpthread.1 => /usr/lib/libpthread.1
/usr/lib//librt.2 => /usr/lib/librt.2
/usr/lib//libdld.2 => /usr/lib/libdld.2
/home/ranger/RangerRoot/lib/libaiframework.sl.0 => /disk2/rekhagc/RangerRoot/lib//libaiframework.sl.0
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libpthread.1 => /usr/lib/libpthread.1
/usr/lib/librt.2 => /usr/lib/librt.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/home/ranger/RangerRoot/lib/libsingleprofilefde.sl.0 => /disk2/rekhagc/RangerRoot/lib//libsingleprofilefde.sl.0
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libpthread.1 => /usr/lib/libpthread.1
/usr/lib/librt.2 => /usr/lib/librt.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/dld.sl: Can't open shared library: /home/abhay/RangerRoot/lib/libaiframework.sl.0
/usr/lib/dld.sl: No such file or directory

========================
I also tried running chatr on it.
Ouput is,
chatr +b disable rangerce
rangerce:
current values:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled second
embedded path disabled first /home/ranger/RangerRoot/lib
shared library list:
dynamic /home/ranger/RangerRoot/lib/librangeroracle.sl.0
dynamic /disk1/ora9i64/lib32/libclntsh.sl.9.0
dynamic /home/ranger/RangerRoot/lib/libgprscdrcontentvolumefde.sl.0
dynamic /usr/lib//libcl.2
dynamic /home/ranger/RangerRoot/lib/libsingleprofilefde.sl.0
dynamic /home/ranger/RangerRoot/lib/libaiframework.sl.0
dynamic /usr/lib//libdld.2
dynamic /usr/lib//librt.2
dynamic /usr/lib//libpthread.1
dynamic /usr/local/lib/libncurses.sl
dynamic /usr/local/lib/libstdc++.sl.6
dynamic /usr/lib//libm.2
dynamic /usr/local/lib/libgcc_s.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
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
shared library text merging disabled
new values:
shared executable
shared library dynamic path search:
SHLIB_PATH enabled second
embedded path disabled first /home/ranger/RangerRoot/lib
shared library list:
dynamic /home/ranger/RangerRoot/lib/librangeroracle.sl.0
dynamic /disk1/ora9i64/lib32/libclntsh.sl.9.0
dynamic /home/ranger/RangerRoot/lib/libgprscdrcontentvolumefde.sl.0
dynamic /usr/lib//libcl.2
dynamic /home/ranger/RangerRoot/lib/libsingleprofilefde.sl.0
dynamic /home/ranger/RangerRoot/lib/libaiframework.sl.0
dynamic /usr/lib//libdld.2
dynamic /usr/lib//librt.2
dynamic /usr/lib//libpthread.1
dynamic /usr/local/lib/libncurses.sl
dynamic /usr/local/lib/libstdc++.sl.6
dynamic /usr/lib//libm.2
dynamic /usr/local/lib/libgcc_s.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
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
shared library text merging disabled
3 REPLIES 3
Steven E. Protter
Exalted Contributor

Re: Bad magic number for shared library

Shalom,

This is an unusula place for required libraries:

/disk2/rekhagc/RangerRoot/lib/

Does it exist on the target system and was the application hard coded to look on a particular path or use SHLIB_PATH ?

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Vibhavari
Occasional Advisor

Re: Bad magic number for shared library

The application is not hardcoded. The library is created and installed in RHOME/lib directory. The same library executable is supposed to use.

Dennis Handly
Acclaimed Contributor

Re: Bad magic number for shared library

/usr/lib/dld.sl: Bad magic number for shared library: /home/abhay/RangerRoot/lib/libaiframework.sl.0

What does file(1) say about this file?

>Actually instead of above path it should pick the file from /disk2/rekhagc/RangerRoot/lib/.

ldd seems to indicate it once before the "not found" at the end.

>LD_LIBRARY_PATH are set properly.

This is not valid for PA32 executables.