Merging Symbols Found In Input Linkfiles - HP eld Manual

Table of Contents

Advertisement

Binding of References
.liblist section for such a DLL. With regard to the -optional_lib option, this option
ever causes such an entry to be removed from the .liblist. The point is that such an
entry is only significant if a different user library were to be used at runtime, and
does not try to analyze whether this .liblist entry would be "necessary" if a different
user library had been present.
The main intended use of these options is for -optional_lib to be placed before
the set of DLL names that a compiler may automatically place at the end of the
command stream that it sends to the linker, for a set of DLL's that it thinks the user
might generally need. Such DLL's would often be unnecessary, depending on which
language features the program used. Since these DLL's are at the end of the
command stream, they would come after all other DLL's in resolving references,
except for the implicit DLL's. Therefore, this use of -optional_lib would have no
runtime consequences, unless the user wanted to be able to get a different version of
one of these libraries at runtime, with additional symbols in it that hid symbols
otherwise found in the implicit libraries.
Note that this is not necessarily the most general way to define "unnecessary", nor is
there necessarily any one best way to do it. For example, suppose that DLL's A and B
both point at C, and C is used to resolve references, but neither A nor B themselves
resolve any references. You could argue that either A or B could be considered
unnecessary on its own, but you can't say that they are both unnecessary at the same
time without figuring out how you are going to get to C. The definition of "unnecessary"
given in this section can be applied separately to each DLL in the command stream,
without having to take into account such dependencies. As it actually would work in
this case, the linker could only ignore A or B if it was not the one that led to putting C
into the search list. For instance, suppose A came before B in the .liblist section of the
program, so that A caused C to be in the search list. Then, the linker would ignore B if
the user marked B optional, but there would be no way to tell the linker to ignore A (i.e.,
without changing other things in the linker's command stream, such as the ordering of
A and B ).

Merging Symbols Found in Input Linkfiles

TNS/E linkfiles contain ELF symbol tables. The linker merges the symbol information
from the input files into its output file, creating an ELF symbol table if the output file is a
linkfile, or creating the .dynsym and .dynsym.gblzd sections if the output file is a
loadfile.
In loadfiles, globalized symbols are placed into the .dynsym.gblzd section, while all
other symbols are placed into the .dynsym section.
If the -make_implicit_lib option is given then
globalized symbols. Also, if the -instance_data option is specified with a
parameter value of data2protected or data2hidden then
you have any globalized symbols.
Note. The data2protected parameter is supported on systems running J06.09 or
earlier J-series RVUs and H06.20 or earlier H-series RVUs.
eld Manual—527255-009
3-16
Merging Symbols Found in Input Linkfiles
reports an error if you have any
eld
reports an error if
eld
eld

Advertisement

Table of Contents
loading

Table of Contents