diff options
author | Alan Modra <amodra@gmail.com> | 2011-01-13 13:29:55 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-01-13 13:29:55 +0000 |
commit | 01554a74b59e63cc487533b71d94a7606b76a871 (patch) | |
tree | 6699b2f5408a64b91dcdb5492e4385b959f64a14 /ld/ld.texinfo | |
parent | 2e57b2afce83621b72b2ac8b54635ad199663dec (diff) | |
download | gdb-01554a74b59e63cc487533b71d94a7606b76a871.zip gdb-01554a74b59e63cc487533b71d94a7606b76a871.tar.gz gdb-01554a74b59e63cc487533b71d94a7606b76a871.tar.bz2 |
PR ld/12356
* ld.texinfo (Miscellaneous Commands): Describe LD_FEATURE.
(Expression Section): Update.
* ld.h (ld_config_type): Add sane_expr.
* ldgram.y (ifile_p1): Add LD_FEATURE.
* ldlex.l (LD_FEATYRE): New.
* ldemul.c (after_parse_default): Delete code handling ld_compatibility.
* ldexp.h (struct ldexp_control): Delete uses_defined.
* ldexp.c: Remove all uses of uses_defined.
(fold_name): Test config.sane_expr rather than ld_compatibility.
(exp_fold_tree_1): Likewise. Adjust handling of assignments
during first phase.
* ldlang.h (ld_compatibility): Delete.
(lang_ld_feature): Declare.
* ldlang.c (ld_compatibility): Delete.
(open_input_bfds): Only handle assignments for --defsym.
(lang_ld_feature): New function.
Diffstat (limited to 'ld/ld.texinfo')
-rw-r--r-- | ld/ld.texinfo | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ld/ld.texinfo b/ld/ld.texinfo index d4419aa..51569b1 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -3344,6 +3344,13 @@ of the names used by the BFD library (@pxref{BFD}). You can see the architecture of an object file by using the @code{objdump} program with the @samp{-f} option. @end ifclear + +@item LD_FEATURE(@var{string}) +@kindex LD_FEATURE(@var{string}) +This command may be used to modify @command{ld} behavior. If +@var{string} is @code{"SANE_EXPR"} then absolute symbols and numbers +in a script are simply treated as numbers everywhere. +@xref{Expression Section}. @end table @node Assignments @@ -5503,15 +5510,15 @@ section relative symbols and for builtin functions that return an address, such as @code{ADDR}, @code{LOADADDR}, @code{ORIGIN} and @code{SEGMENT_START}. Other terms are simply numbers, or are builtin functions that return a non-address value, such as @code{LENGTH}. -One complication is that unless you assign @code{__ld_compatibility} -a value of 221 or larger, numbers and absolute symbols are treated +One complication is that unless you set @code{LD_FEATURE ("SANE_EXPR")} +(@pxref{Miscellaneous Commands}), numbers and absolute symbols are treated differently depending on their location, for compatibility with older versions of @code{ld}. Expressions appearing outside an output section definition treat all numbers as absolute addresses. Expressions appearing inside an output section definition treat -absolute symbols as numbers. If @code{__ld_compatibility} is assigned -a value larger than 221, then absolute symbols and numbers are simply -treated as numbers everywhere. +absolute symbols as numbers. If @code{LD_FEATURE ("SANE_EXPR")} is +given, then absolute symbols and numbers are simply treated as numbers +everywhere. In the following simple example, |