Linker and Libraries Guide

Filtee Processing

The runtime linker's processing of a filter defers the loading of a filtee until a reference to a symbol within the filter has occurred. This implementation is analogous to the filter performing a dlopen(3X) on each of its filtees, as they are required. This implementation accounts for differences in dependency reporting that can be produced by tools such as ldd(1).

By default, ldd(1) lists the dependencies of a dynamic object, and thus reports a filter as it would any other dependency. However, use of the -d or -r options can result in relocation processing that will cause a symbol lookup in the filter. In this case filtee processing will be triggered, which can result in additional dependencies being reported by ldd(1). To ensure immediate processing of any filtee, the -l option can be used.

The link-editor's -z loadfltr option can be used when creating a filter to cause the immediate processing of its filtees at runtime. In addition, the immediate processing of any filtees within a process can be triggered by setting the LD_LOADFLTR environment variable.