eld Manual

Table Of Contents
Other eld Processing
eld Manual527255-009
4-11
The -set and -change Options
why eld also allows a single double-quote character (") to be given with -change
libname, and interprets it as an empty string. Note that this is only allowed with
-change libname, not with -set libname.
Except for the items listed above, there are no restrictions on which attributes can be
specified. Note that some attributes can be specified for DLLs even though they are
meaningless for DLLs.
Note that it is permissible to change any of the attributes of an import library, even
though only a few of these attributes are significant in an import library. (The ones that
are “significant” are the ones that the linker might look at when building a client of that
import library in order to check for consistency, namely, the highpin bit, the floating
point type, and the C++ dialect, as well as the bit that tells whether the import library is
complete.)
The -change option performs the same version number checking on a loadfile or
import library as is described in Input Object Files on page 2-12.
In all cases, the -change option only changes the specific information specified, and
has no other consequences. For example, when -change libname is specified for a
program, it only changes the user library name that is shown in the program. If the
program was previously preset, using a different user library, that fact is unchanged.
The newly specified user library would be used in the future when this program is run.
At that time, if the user library found with that name was not equivalent to (i.e.,
contained the same export digest as) the user library that had been used when the
program was preset, then the program would not have been preset correctly for its
runtime environment and would need to be updated accordingly. That is the same as
what would happen if the same user library filename were still being used, but the
contents of that user library file had changed (i.e., so that its export digest was
different).
The -change option overwrites the existing file without recreating it. eld reports an
error if the file cannot be opened for update. If an error occurs the specified change
may or may not have taken place, but the file will not have been modified in any other
way.
It is possible for the command stream to have multiple -change options. Each one is
executed independently, if the previous one succeeds, even if they refer to the same
filename. For example, two -change options may both specify the same attribute,
such as -change highpin, and they don’t have to agree on the value to which this
attribute is being set, whereas such a consistency check would occur if -set
highpin were specified more than once. The only other options allowed with the -
change option are - no_verbose, -obey, -stdin, -verbose, and -warn.
Note: There are no -set or -change options that affect the procedure attributes that
are found in the .procinfo section of a linkfile or the stack unwinding information of a
loadfile. However, the -e option can be used to turn on the MAIN attribute in the
.procinfo section of a linkfile that is being created by the linker.