HP eld Manual page 49

Table of Contents

Advertisement

eld Input and Output
However, to simplify build processes, the user may find it convenient for these names
to be the same.
The .liblist section does not contain an entry corresponding to the user library, does not
contain an entry for the import library that represents the implicit libraries, and does not
contain entries for DLLs that the linker finds indirectly.
When the search to satisfy a -l option does not succeed, and this is not an error
(because the -allow_missing_libs option was specified and the mode is not -b
static), the .liblist section will still contain an entry for that -l option. In other words,
it is assumed that the name was intended to be a DLL as opposed to an archive.
Because the linker doesn't have a DLL name to put into the .liblist section entry, it
instead will put in the string that was the parameter to the -l option. The linker also
sets the LL_NOT_FOUND bit in the .liblist section entry to identify this as an entry for a
-l option for which the search did not succeed.
Each .liblist section entry tells if it is reexported. The -reexport and -no_reexport
options form a two-way switch, selecting one of two modes for the linker at a given
point in the command stream. These options can be specified multiple times in the
command stream, each time setting the mode for subsequent items in the command
stream until the mode is changed again. When -reexport is in effect, the .liblist
section entry for a DLL found in the command stream says that it is re-exported. When
-no_reexport is in effect it is not re-exported. At the beginning of the command
stream the mode is -no_reexport.
options when not building a DLL.
The following rules apply to situations where the same file is found several times in the
command stream:
It is not explicitly called out as an error if the same linkfile is specified more
than once in the command stream, but it may lead to the error of multiply
defined symbols, as explained later in
page 3-17.
It can be useful to specify the same archive more than once in the command
stream, as explained later in
With regard to DLLs, a requirement is that the same DLL name cannot be
present more than once in the .liblist section. The rule is that, if the linker finds
the same DLL more than once in the command stream, where "same" means
that they have the same DLL name, the linker ignores all the instances after
the first one. However, the linker also checks whether the DLL was found with
the same export digest each time. If not, a warning message is provided.
When a user library is used by the linker, it is treated like an additional DLL at
the beginning of the command stream. However, if the DLL name within the
user library matches the name of another DLL found later, that other DLL is still
used, and gets a .liblist entry 7 , although the linker puts out a warning
message about this.
reports an error if you use either of these
eld
Accepting Multiply-Defined Symbols
Using Archives
eld Manual—527255-009
2-15
Input Object Files
on page 2-16.
on

Advertisement

Table of Contents
loading

Table of Contents