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.