This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[Xtensa] fix difference of symbols in GAS
- From: Bob Wilson <bwilson at tensilica dot com>
- To: binutils at sources dot redhat dot com
- Date: Thu, 1 Nov 2007 17:54:33 -0700
- Subject: [Xtensa] fix difference of symbols in GAS
I've committed this patch from Sterling Augustine. When a difference
of two symbols is used in a context where an expression symbol is
generated, this patch marks the intervening frags so that they won't
be transformed by link-time relaxation. Without the patch, the
difference value emitted by GAS would likely be incorrect after
linker relaxation. The disadvantage of this change is that it
constrains the linker relaxation; currently it mostly affects C++
code with exception handling.
2007-11-01 Sterling Augustine <sterling@tensilica.com>
* config/tc-xtensa.c (xtensa_symbol_new_hook): New.
(xtensa_mark_difference_of_two_symbols): New.
(xtensa_post_relax_hook): Call
xtensa_mark_difference_of_two_symbols.
* config/tc-xtensa.h (xtensa_symfield_type): Add
next_expr_symbol.
(tc_symbol_new_hook): Define.
Attachment:
gas-symdiff.patch
Description: Binary data