Kenwood HP 9000 Personal Computer User Manual


 
188 Chapter 5
Creating and Using Libraries
Using Shared Libraries in 64-bit mode
ld -b file1.o -o libfile1.sl +h libfile1.1
ld -b file2.o -o libfile2.sl +h libfile2.1 -L. -lfile1
ld main.o -L. -lfile2 -lc
# move dependent lib so dld can’t find it
# dld won’t find library because we didn’t set the environment
# variable LD_LIBRARY_PATH and SHLIB_PATH
# By default, dld will look at the environment variables
# LD_LIBRARY_PATH and
# SHLIB_PATH when doing dynamic path searching unless +noenvvar
# is specified
mv libfile2.sl /var/tmp
ln -s /var/tmp/libfile2.sl /var/tmp/libfile2.1
a.out
dld.sl: Unable to find library ‘libfile2.1’
export SHLIB_PATH=/var/tmp
a.out
in file1
in file2
Library Example: 64-bit Mode Compatibility Mode
Link
This example builds a compatibility mode library and does a
compatibility mode link. The +s option is not specified at link time, so
the dynamic loader does not look at any environment variables to do
dynamic path searching.
# build compatibility mode dlls
# libfile1.sl is a dependent of libfile2.sl
ld -b file1.o -o libfile1.sl +h libfile1.1
ld -b file2.o -o libfile2.sl +h libfile2.1 -L. -lfile1 +compat
ln -s libfile1.sl libfile1.1
ld main.o +compat -L. -lfile2 -lc
# move dependent lib so dld can’t find it. Even when we specify
SHLIB_PATH dld won’t be
# able to find the dependent because we didn’t link with +s
mv libfile2.sl /var/tmp
ln -s /var/tmp/libfile2.sl /var/tmp/libfile2.1
a.out
dld.sl: Unable to find library ‘1:./libfile2.1’
export SHLIB_PATH=/var/tmp
a.out
dld.sl: Unable to find library ‘1:./libfile2.1’
You can use chatr +s to enable a.out in file1 and file2:
chatr +s enable a.out