differences exist between these toolsets. The IPF linker toolset introduces different types of shared libraries. (In SVR4 Unix, shared libraries are sometimes called dlls.)
•Compatibility mode shared library:
Using the IPF linker, a compatibility mode shared library is basically a library built with ld
•Standard mode shared library:
A standard mode shared library is a library built with
NOTE: If you specify ld
The linker handles these libraries in different way with regard to internal naming and library search modes.
Internal Name Processing
For both
The linker treats shared library names as follows:
•If the dependent shared library has an internal name, it is recorded in the DT_NEEDED entry.
•If the dependent shared library is specified with the
•The path of the dependent shared library as seen on the link line is recorded in the DT_NEEDED entry.
•All DT_NEEDED entries with no "/" in the libname are subject to dynamic path lookup.
In an ld +compat
•If the dependent library's internal name is rooted (starts with "/"), it is inserted as is in the DT_HP_NEEDED entry. If it was specified with
DT_HP_NEEDED entry.
•If the dependent library's internal name contains a relative path, the internal name is inserted at the end of the path where the shared library is found at link time, replacing the library's filename in the DT_HP_NEEDED entry. If the library is specified with
•If the dependent library's internal name contains no path, it is inserted at the end of the path where the shared library is found at link time, replacing the library's filename. If the library is specified with
•If the dependent shared library does not have an internal name, the path where the library is found and the library filename is recorded in the DT_HP_NEEDED entry. If specified with
•If the shared libraries are specified with a relative or no path in this mode, the linker expands the current working directory when constructing the DT_HP_NEEDED entry. So instead of getting something like ./libdk.so, you get /home/your_dir/libdk.so.
•All DT_HP_NEEDED entries with the dynamic path bit set are subject to dynamic path lookup.
Using Shared Libraries in Default Mode 125