Updates the description of GAS's .set directive, to note that for some targets a symbolic value can only be set once.

* doc/as.texinfo (Set): Note that a symbol cannot be set multiple
	times if the expression is not constant and the target uses linker
	relaxation.
This commit is contained in:
Nick Clifton 2015-04-29 11:10:45 +01:00
parent 9081b64dc1
commit 5d239759c0
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2015-04-29 Nick Clifton <nickc@redhat.com>
* doc/as.texinfo (Set): Note that a symbol cannot be set multiple
times if the expression is not constant and the target uses linker
relaxation.
2015-04-28 Renlin Li <renlin.li@arm.com>
* config/tc-arm.c (arm_init_frag): Always emit mapping symbols.

View File

@ -6351,7 +6351,14 @@ changes @var{symbol}'s value and type to conform to
@var{expression}. If @var{symbol} was flagged as external, it remains
flagged (@pxref{Symbol Attributes}).
You may @code{.set} a symbol many times in the same assembly.
You may @code{.set} a symbol many times in the same assembly provided that the
values given to the symbol are constants. Values that are based on expressions
involving other symbols are allowed, but some targets may restrict this to only
being done once per assembly. This is because those targets do not set the
addresses of symbols at assembly time, but rather delay the assignment until a
final link is performed. This allows the linker a chance to change the code in
the files, changing the location of, and the relative distance between, various
different symbols.
If you @code{.set} a global symbol, the value stored in the object
file is the last value stored into it.