mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-25 02:53:48 +08:00
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:
parent
0629d0af5a
commit
abf4be64df
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user