Filtering Combinations
Individual interfaces that define standard filters,
together with individual interfaces that define auxiliary filters,
can be defined within the same shared object. This combination of
filter definitions is achieved by using the
mapfile keywords
FILTER and AUXILIARY
to assign the required filtees.
A shared object that defines all of its interfaces to be filters by
using the -F, or -f option, or the
mapfile
FILTER directive, is either a standard weak, or
auxiliary filter.
A shared object can define individual interfaces to act as filters, together with defining all the interfaces of the object to act as a filters. In this case, the individual filtering defined for an interface is processed first. When a filtee for an individual interface filter can not be established, the filtee defined for all he interfaces of the filter provides a fallback if appropriate.
For example, consider the filter filter.so.1.
This filter defines that all interfaces act as auxiliary filters
against the filtee
filtee.so.1 using the link-editor's
-f option. filter.so.1
also defines the individual interface foo to be a
standard filter against the filtee
foo.so.1 using the mapfile
FILTER symbol attribute.
filter.so.1 also defines the individual
interface bar to be an auxiliary filter against
the filtee
bar.so.1 using the mapfile
AUXILIARY symbol attribute.
An external reference to foo results in processing
the filtee
foo.so.1. If foo can not be
found from foo.so.1, then no further processing
of the filter is carried out. In this case, no fallback processing
is performed because foo is defined to be a
standard filter.
An external reference to bar results in processing
the filtee
bar.so.1. If bar can not be
found from bar.so.1, then processing falls back
to the filtee
filtee.so.1. In this case, fallback processing
is performed because bar is defined to be an
auxiliary filter. If bar can not be found from
filtee.so.1, then the definition of
bar within the filter
filter.so.1 is finally used to resolve
the external reference.