Binding of References
eld Manual—527255-009
3-14
Ignoring Optional Libraries
-temp_i
-temp_r
-unres_symbols
-update_registry
-verbose
-vslising
-warn
Ignoring Optional Libraries
This section decribes the feature whereby
eld
can be told to omit certain DLL's from
the liblist if they appear to be unnecessary. Note that
eld
always does this processing,
regardless of whether it is presetting the file.
eld
does not fix up references to
globalized symbols found in other DLL's, since the fixups would always need to be
updated by
rld
anyway, but
eld
still looks up globalized symbols in DLL's in order to
see if some DLL would resolve a reference to an undefined globalized symbol, for the
purpose of deciding which DLL's are optional.
For every indirectly found DLL in the search list, there was one other DLL that was
already in the search list and that caused this DLL to be added to the search list. If
that other DLL was also an indirect DLL, then it similarly was pointed at by something
else, etc. In this way, every indirectly found DLL can trace its presence in the search
list back to one DLL that was explicitly given in the command stream, or to the user
library. The set of all the DLL's that trace their presence back in this way to a given
DLL A is called the search list addition set of A.
If a DLL that was named explicitly in the command stream was not actually used to
resolve any references, and furthermore none of the DLL's in its search list addition set
were used to resolve any references, then that DLL is called unnecessary, because the
presence of that DLL in the command stream did not affect how the linker preset the
file. For example, if that DLL had not been specified in the command stream, then it or
the other DLL's in its search list addition set might instead have been found some other
way, but in all cases they would have to come later in the search list then they actually
did, or be absent entirely. That means that they wouldn't have had any consequences
that they didn't have in the actual link: they wouldn't have resolved any references, and
they wouldn't have caused other DLL's to be added to the search list. The resulting
search list would still have been the same, at least with regard to the presence of the
DLL's that were used to resolve references, and to the ordering of those DLL's among
themselves.
The options named
-optional_lib
and
-no_optional_lib
are command stream
toggles that determine whether the linker considers a DLL that is specified in the
command stream to be optional. These options can be specified multiple times in the
command stream, each time setting the mode for subsequent DLL's in the command
stream until the mode is changed again. At the beginning of the command stream the
mode is
-no_optional_lib
. If an optional DLL turns out to be unnecessary, then
the linker will assume it is okay to ignore that DLL, and it will not be listed in the .liblist
section. If
eld
is presetting, and therefore creating a LIC, then the LIC is created as if
Содержание eld
Страница 4: ......
Страница 8: ...Contents eld Manual 527255 009 iv ...
Страница 12: ...What s New in This Manual eld Manual 527255 009 viii Changes to the 527255 005 Manual ...
Страница 34: ...Introduction to eld eld Manual 527255 009 1 14 Example of Use ...
Страница 54: ...eld Input and Output eld Manual 527255 009 2 20 Using Archives ...
Страница 98: ...Other eld Processing eld Manual 527255 009 4 20 Merging Source RTDUs ...
Страница 242: ...Output Listings and Error Handling eld Manual 527255 009 6 132 Glossary of Errors ...