diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2013-05-25 04:33:25 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2013-06-27 05:05:32 -0400 |
commit | 5a45da02cf040ae7eacc9da10f6e8e369a220863 (patch) | |
tree | 27e52dc1a1eda9c3508764bf0f3fcb5a085f43a5 /arch/arc/kernel/vmlinux.lds.S | |
parent | 05b016ecf5e7a8c24409d8e9effb5d2ec9107708 (diff) |
ARC: Adjustments for gcc 4.8
* DWARF unwinder related
+ Force DWARF2 compliant .debug_frame (gcc 4.8 defaults to DWARF4
which kernel unwinder can't grok).
+ Discard the additional .eh_frame generated
+ Discard the dwarf4 debug info generated by -gdwarf-2 for normal
no debug case
* 4.8 already uses arc600 multilibs for -mno-mpy
* switch to using uclibc compiler (to get -mmedium-calls and -mno-sdata)
and also since buildroot can only use 1 toolchain
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/arc/kernel/vmlinux.lds.S | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S index d3c92f52d444..2555f5886af6 100644 --- a/arch/arc/kernel/vmlinux.lds.S +++ b/arch/arc/kernel/vmlinux.lds.S | |||
@@ -125,6 +125,11 @@ SECTIONS | |||
125 | *(.debug_frame) | 125 | *(.debug_frame) |
126 | __end_unwind = .; | 126 | __end_unwind = .; |
127 | } | 127 | } |
128 | /* | ||
129 | * gcc 4.8 generates this for -fasynchonous-unwind-tables, | ||
130 | * while we still use the .debug_frame based unwinder | ||
131 | */ | ||
132 | /DISCARD/ : { *(.eh_frame) } | ||
128 | #else | 133 | #else |
129 | /DISCARD/ : { *(.debug_frame) } | 134 | /DISCARD/ : { *(.debug_frame) } |
130 | #endif | 135 | #endif |
@@ -142,15 +147,18 @@ SECTIONS | |||
142 | *(.arcextmap.*) | 147 | *(.arcextmap.*) |
143 | } | 148 | } |
144 | 149 | ||
150 | #ifndef CONFIG_DEBUG_INFO | ||
145 | /* open-coded because we need .debug_frame seperately for unwinding */ | 151 | /* open-coded because we need .debug_frame seperately for unwinding */ |
146 | .debug_aranges 0 : { *(.debug_aranges) } | 152 | /DISCARD/ : { *(.debug_aranges) } |
147 | .debug_pubnames 0 : { *(.debug_pubnames) } | 153 | /DISCARD/ : { *(.debug_pubnames) } |
148 | .debug_info 0 : { *(.debug_info) } | 154 | /DISCARD/ : { *(.debug_info) } |
149 | .debug_abbrev 0 : { *(.debug_abbrev) } | 155 | /DISCARD/ : { *(.debug_abbrev) } |
150 | .debug_line 0 : { *(.debug_line) } | 156 | /DISCARD/ : { *(.debug_line) } |
151 | .debug_str 0 : { *(.debug_str) } | 157 | /DISCARD/ : { *(.debug_str) } |
152 | .debug_loc 0 : { *(.debug_loc) } | 158 | /DISCARD/ : { *(.debug_loc) } |
153 | .debug_macinfo 0 : { *(.debug_macinfo) } | 159 | /DISCARD/ : { *(.debug_macinfo) } |
160 | /DISCARD/ : { *(.debug_ranges) } | ||
161 | #endif | ||
154 | 162 | ||
155 | #ifdef CONFIG_ARC_HAS_DCCM | 163 | #ifdef CONFIG_ARC_HAS_DCCM |
156 | . = CONFIG_ARC_DCCM_BASE; | 164 | . = CONFIG_ARC_DCCM_BASE; |