From 0f8f0c57ea4742ad2d9b0598a18243331c1c06e3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 23 Feb 2015 14:53:02 +0000 Subject: 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. --- gas/config/tc-msp430.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gas/config/tc-msp430.h') diff --git a/gas/config/tc-msp430.h b/gas/config/tc-msp430.h index 657dc1a..08115ac 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)) -- cgit v1.1