In traditional linking, all symbols must be defined at link time for linking into a single executable file containing all the required code and data. In platforms that support dynamic linking, symbol binding can be delayed to load-time or in some cases, run-time. Therefore, the application can be split into a number of modules, where a module is either an executable or a shared library. Any symbols that are defined in modules other than the current module are placed in the dynamic symbol table. Any functions that are suitable for dynamically linking to at load or runtime are also listed in the dynamic symbol table.
There are two ways to control the contents of the dynamic symbol table:
automatic rules that infer the contents from the ELF symbol visibility property
manual directives that are present in a steering file.
These rules are slightly different for the SysV model.
- Other information
SysV ELF specification.