diff options
Diffstat (limited to 'target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch')
-rw-r--r-- | target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch b/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch new file mode 100644 index 0000000000..a1e287c6be --- /dev/null +++ b/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch @@ -0,0 +1,46 @@ +From 23cd0de28cc7978130b770dd59b18ac143253351 Mon Sep 17 00:00:00 2001 +From: Vineet Gupta <vgupta@synopsys.com> +Date: Tue, 28 Jun 2016 09:42:25 +0530 +Subject: [PATCH] ARC: unwind: ensure that .debug_frame is generated (vs. + .eh_frame) + +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 + +Cc: stable@vger.kernel.org +Signed-off-by: Vineet Gupta <vgupta@synopsys.com> +--- + arch/arc/Makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/arc/Makefile b/arch/arc/Makefile +index aeb1902..209d845 100644 +--- a/arch/arc/Makefile ++++ b/arch/arc/Makefile +@@ -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 +-- +2.5.5 + |