Skip to contentSkip to conversation

Patch "ARC: unwind: ensure that .debug_frame is generated (vs. .eh_frame)" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Aug 2, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ARC: unwind: ensure that .debug_frame is generated (vs. .eh_frame)

to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
arc-unwind-ensure-that-.debug_frame-is-generated-vs.-.eh_frame.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From f52e126cc7476196f44f3c313b7d9f0699a881fc Mon Sep 17 00:00:00 2001

From: Vineet Gupta <[email protected]>
Date: Tue, 28 Jun 2016 09:42:25 +0530
Subject: ARC: unwind: ensure that .debug_frame is generated (vs. .eh_frame)

From: Vineet Gupta <[email protected]>

commit f52e126cc7476196f44f3c313b7d9f0699a881fc upstream.

With recent binutils update to support dwarf CFI pseudo-ops in gas, we now get .eh_frame vs. .debug_frame. Although the call frame info is exactly the same in both, the CIE differs, which the current kernel unwinder can't cope with.

This broke both the kernel unwinder as well as loadable modules (latter because of a new unhandled relo R_ARC_32_PCREL from .rela.eh_frame in the module loader)

The ideal solution would be to switch unwinder to .eh_frame. For now however we can make do by just ensureing .debug_frame is generated by removing -fasynchronous-unwind-tables

.eh_frame generated with -gdwarf-2 -fasynchronous-unwind-tables
.debug_frame generated with -gdwarf-2

Fixes STAR 9001058196

---
 arch/arc/Makefile |    2 --
 1 file changed, 2 deletions(-)
arch/arc/Makefile +0 -2
@@ -48,8 +48,6 @@ endif
 
 endif
 
-cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -fasynchronous-unwind-tables
-
 # By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
 ifeq ($(atleast_gcc48),y)
 cflags-$(CONFIG_ARC_DW2_UNWIND)		+= -gdwarf-2

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/arc-unwind-warn-only-once-if-dw2_unwind-is-disabled.patch queue-4.4/arc-unwind-ensure-that-.debug_frame-is-generated-vs.-.eh_frame.patch