summaryrefslogtreecommitdiff
path: root/gas/config/tc-msp430.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2015-02-23 14:53:02 +0000
committerNick Clifton <nickc@redhat.com>2015-02-23 14:53:02 +0000
commit0f8f0c57ea4742ad2d9b0598a18243331c1c06e3 (patch)
treef5a577adf5af444ca801d78171ea669dc05dee9b /gas/config/tc-msp430.h
parent8f3102ea1a9954ed00f84a9e3452a79e94953840 (diff)
Fixes the generation of dwarf line debug information for the msp430, even in the presence of function sections and linker garbage collection.
PR 17940 * dwarf2dbg.c (out_header): When generating dwarf sections use real symbols not temps for the start and end symbols. * config/tc-msp430.h (TC_FORCE_RELOCATION_SUB_SAME): Also prevent adjustments to relocations in debug sections. (TC_LINKRELAX_FIXUP): Likewise. * elf32-msp430.c (msp430_elf_relax_delete_bytes): Adjust debug symbols at end of sections. Adjust function sizes.
Diffstat (limited to 'gas/config/tc-msp430.h')
-rw-r--r--gas/config/tc-msp430.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/gas/config/tc-msp430.h b/gas/config/tc-msp430.h
index 657dc1a8db..08115ac518 100644
--- a/gas/config/tc-msp430.h
+++ b/gas/config/tc-msp430.h
@@ -159,7 +159,8 @@ extern bfd_boolean msp430_allow_local_subtract (expressionS *, expressionS *, se
linker, but this fix is simpler, and it pretty much only affects
object size a little bit. */
#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEC) \
- (((SEC)->flags & SEC_CODE) != 0 \
+ ( ((SEC)->flags & SEC_CODE) != 0 \
+ || ((SEC)->flags & SEC_DEBUGGING) != 0 \
|| ! SEG_NORMAL (SEC) \
|| TC_FORCE_RELOCATION (FIX))
@@ -169,4 +170,4 @@ extern bfd_boolean msp430_allow_local_subtract (expressionS *, expressionS *, se
#define DWARF2_USE_FIXED_ADVANCE_PC 1
-#define TC_LINKRELAX_FIXUP(seg) (seg->flags & SEC_CODE)
+#define TC_LINKRELAX_FIXUP(seg) ((seg->flags & SEC_CODE) || (seg->flags & SEC_DEBUGGING))