Kenwood HP 9000 Personal Computer User Manual


 
Chapter 3 85
Linker Tasks
Using Linker commands
Specifying a Path List with +b
The syntax of the +b option is
+b path_list
where path_list is the list of directories you want the dynamic loader to
search at run time. For example, the following linker command causes
the path .:/app/lib:: to be stored in the executable. At run time, the
dynamic loader would search for libfoo.sl, libm.sl, and libc.sl in
the current working directory (.), the directory /app/lib, and lastly in
the location in which the libraries were found at link time (::):
$ ld /opt/langtools/lib/crt0.o +b .:/app/lib:: prog.o -lfoo \
-lm -lc
If path_list is only a single colon, the linker constructs a path list
consisting of all the directories specified by -L, followed by all the
directories specified by the LPATH environment variable. For instance,
the following linker command records the path list as /app/lib:/tmp:
$ LPATH=/tmp ; export LPATH
$ ld /opt/langtools/lib/crt0.o +b : -L/app/lib prog.o -lfoo \
-lm -lc
The Path List
Whether specified as a parameter to +b or set as the value of the
SHLIB_PATH environment variable, the path list is simply one or more
path names separated by colons (:), just like the syntax of the PATH
environment variable. An optional colon can appear at the start and end
of the list.
Absolute and relative path names are allowed. Relative paths are
searched relative to the program's current working directory at run time.
Remember that a shared library's full path name is stored in the
executable. When searching for a library in an absolute or relative path
at run time, the dynamic loader uses only the basename of the library
path name stored in the executable. For instance, if a program is linked
with /usr/local/lib/libfoo.sl, and the directory path list contains
/apps/lib:xyz, the dynamic loader searches for
/apps/lib/libfoo.sl, then ./xyz/libfoo.sl.
The full library path name stored in the executable is referred to as the
default library path. To cause the dynamic loader to search for the
library in the default location, use a null directory path (). When the
loader comes to a null directory path, it uses the default shared library
path stored in the executable. For instance, if the directory path list in