openwrt/target/linux/generic/patches-4.4/095-ARC-unwind-ensure-that-.debug_frame-is-generated-vs..patch
Alexey Brodkin 4ebb1950be kernel: Add upstream fix for module loading
Instead of disabling unwinding entirely this upstream patch
just disables generation of async unwind tables.

Once the patch in question lands in stable 4.4 tree this change
essentially must be removed (otherwise patch application will fail).

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2016-07-11 14:19:47 +02:00

47 lines
1.4 KiB
Diff

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