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 f52e126cc7
("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>
This commit is contained in:
@@ -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) }
|
||||
|
Reference in New Issue
Block a user