summaryrefslogtreecommitdiff
path: root/arch/arc/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2013-06-24 19:52:06 +0400
committerVineet Gupta <vgupta@synopsys.com>2016-10-01 00:48:20 +0300
commit6716dbbdefa9867ba98dea91d89b14168043a48c (patch)
treed134bd3853996ec3ebae718a786ec9bfe365c8b1 /arch/arc/kernel/vmlinux.lds.S
parentd040876b4aad0c157c5c95779128b71a121ff27d (diff)
downloadlinux-6716dbbdefa9867ba98dea91d89b14168043a48c.tar.xz
ARC: dw2 unwind: switch to .eh_frame based unwinding
So finally after almost 8 years of dealing with .debug_frame, we are finally switching to .eh_frame. The reason being stripped kernel binaries had non-functional unwinder as .debug_frame was gone. Also, in general .eh_frame seems more common way of doing unwinding. This also folds a revert of f52e126cc747 ("ARC: unwind: ensure that .debug_frame is generated (vs. .eh_frame)") to ensure that we start getting .eh_frame Reported-by: Daniel Mentz <danielmentz@google.com> 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.S15
1 files changed, 5 insertions, 10 deletions
diff --git a/arch/arc/kernel/vmlinux.lds.S b/arch/arc/kernel/vmlinux.lds.S
index 894e696bddaa..bb6d8c5ff2e9 100644
--- a/arch/arc/kernel/vmlinux.lds.S
+++ b/arch/arc/kernel/vmlinux.lds.S
@@ -84,7 +84,7 @@ SECTIONS
/*
* .exit.text is discard at runtime, not link time, to deal with
- * references from .debug_frame
+ * references from unwinding sections
* It will be init freed, being inside [__init_start : __init_end]
*/
.exit.text : { EXIT_TEXT }
@@ -120,18 +120,13 @@ SECTIONS
#ifdef CONFIG_ARC_DW2_UNWIND
. = ALIGN(PAGE_SIZE);
- .debug_frame : {
+ .eh_frame : {
__start_unwind = .;
- *(.debug_frame)
+ *(.eh_frame)
__end_unwind = .;
}
- /*
- * gcc 4.8 generates this for -fasynchonous-unwind-tables,
- * while we still use the .debug_frame based unwinder
- */
- /DISCARD/ : { *(.eh_frame) }
#else
- /DISCARD/ : { *(.debug_frame) }
+ /DISCARD/ : { *(.eh_frame) }
#endif
NOTES
@@ -148,7 +143,7 @@ SECTIONS
}
#ifndef CONFIG_DEBUG_INFO
- /* open-coded because we need .debug_frame seperately for unwinding */
+ /DISCARD/ : { *(.debug_frame) }
/DISCARD/ : { *(.debug_aranges) }
/DISCARD/ : { *(.debug_pubnames) }
/DISCARD/ : { *(.debug_info) }