aboutsummaryrefslogtreecommitdiff
path: root/ld/ld.texinfo
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2011-01-13 13:29:55 +0000
committerAlan Modra <amodra@gmail.com>2011-01-13 13:29:55 +0000
commit01554a74b59e63cc487533b71d94a7606b76a871 (patch)
tree6699b2f5408a64b91dcdb5492e4385b959f64a14 /ld/ld.texinfo
parent2e57b2afce83621b72b2ac8b54635ad199663dec (diff)
downloadfsf-binutils-gdb-01554a74b59e63cc487533b71d94a7606b76a871.zip
fsf-binutils-gdb-01554a74b59e63cc487533b71d94a7606b76a871.tar.gz
fsf-binutils-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.texinfo17
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,