Output Listings and Error Handling
eld Manual—527255-009
6-85
Error Messages
have also given the
-dll
and -make_implicit_dll options, to tell
eld
to make one of
the implicit DLLs that constitute system library. System library is not allowed to contain
globalized symbols.
Effect.
Fatal error (
eld
immediately stops without creating an output file).
Recovery.
Assuming you do want to make an implicit DLL, you probably need to look
over your C++ source code to figure out why it has globalized symbols in it, and
change the code to avoid that. It is beyond the scope of this manual to explain the
rules that the C++ compiler uses in deciding which globalized symbols to create.
Cause.
The C++ compiler marks some symbols as “globalized” symbols, because the
fixups to such symbols need to follow special rules at runtime. Each of the two files
mentioned in the message contain symbols of the same name, as shown in the
message. One of the copies was globalized and one wasn’t, which is an error. It
doesn’t matter if the declarations of the symbols are definitions or just external
references, they still need to agree on whether the symbol is globalized.
Effect.
Fatal error (
eld
immediately stops without creating an output file).
Recovery.
Did you really intend to define symbols with the same name in each of
these two files, and have both symbols visible across separate compilations? If not,
change the name of one of them, or change the declaration of one of them so that it is
defined and only visible within its own compilation. If you are using the same symbol in
more than one place, all the places must agree on whether that symbol is globalized.
If the symbols disagree about this because the two files were created from different
versions of the source code, or by using different compiler options, repeat the
compilations doing things more consistently.
Cause.
You specified the
-alf
option, telling the name of the DLL that you want to
update, and this was one of the implicit DLLs that constitute system library. Various
other options are allowed with the
-alf
option, and some of these other options also
have filenames as parameters. But, in addition to all these filenames, you also had
another filename on the command line by itself, not as the parameter of an option. In
general, with the
-alf
option, it is possible to have one such filename, to tell the
name of the zimpimp file that represents the DLLs that constitute system library.
However, it is not possible to specify a zimpimp file when in fact you are now working
on one of the implicit DLLs themselves.
1535 Copies of symbol <symbol name>, in <filename> and
<filename>, don't agree on whether it is globalized.
1536 Filename <filename> was specified on the command line
with the -alf option, but that means that this file would be
the zimpimp file, and the existing file <filename> is an
implicit DLL, and an implicit DLL cannot use a zimpimp file,
so this is an error.
Summary of Contents for eld
Page 4: ......
Page 8: ...Contents eld Manual 527255 009 iv ...
Page 12: ...What s New in This Manual eld Manual 527255 009 viii Changes to the 527255 005 Manual ...
Page 34: ...Introduction to eld eld Manual 527255 009 1 14 Example of Use ...
Page 54: ...eld Input and Output eld Manual 527255 009 2 20 Using Archives ...
Page 98: ...Other eld Processing eld Manual 527255 009 4 20 Merging Source RTDUs ...
Page 242: ...Output Listings and Error Handling eld Manual 527255 009 6 132 Glossary of Errors ...