PR ld/12066

* ldexp.c (fold_name): Treat absolute symbols as plain numbers.
	* ld.texinfo (Expression Section): Don't say absolute symbols
	are addresses.
This commit is contained in:
Alan Modra 2010-10-01 08:15:42 +00:00
parent 0629d0af5a
commit abf4be64df
3 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,10 @@
2010-10-01 Alan Modra <amodra@gmail.com>
PR ld/12066
* ldexp.c (fold_name): Treat absolute symbols as plain numbers.
* ld.texinfo (Expression Section): Don't say absolute symbols
are addresses.
2010-09-29 Alan Modra <amodra@gmail.com>
* ldlang.c (lang_place_orphans): Zero vma when relocatable or non-load

View File

@ -5453,11 +5453,11 @@ value of a section relative symbol. On the other hand, an absolute
symbol will retain the same value throughout any further link
operations.
Some terms in linker expressions are addresses. This is true of all
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}.
Some terms in linker expressions are addresses. This is true of
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}.
When the linker evaluates an expression, the result depends on where
the expression is located in a linker script. Expressions appearing

View File

@ -553,6 +553,8 @@ fold_name (etree_type *tree)
" referenced in expression\n"),
tree->name.name);
}
else if (output_section == bfd_abs_section_ptr)
new_number (h->u.def.value + h->u.def.section->output_offset);
else
new_rel (h->u.def.value + h->u.def.section->output_offset,
output_section);