Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adf8b37b authored by Catalin Marinas's avatar Catalin Marinas Committed by Russell King
Browse files

[ARM] 5386/2: unwind: Add Makefile and Kconfig entries for ARM stack unwinding



This patch also makes the frame pointer default to y only if
!ARM_UNWIND. LOCKDEP no longer selects FRAME_POINTER if ARM_UNWIND is
enabled.

Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c4c5716e
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -2,18 +2,29 @@ menu "Kernel hacking"

source "lib/Kconfig.debug"

# RMK wants arm kernels compiled with frame pointers so hardwire this to y.
# RMK wants arm kernels compiled with frame pointers or stack unwinding.
# If you know what you are doing and are willing to live without stack
# traces, you can get a slightly smaller kernel by setting this option to
# n, but then RMK will have to kill you ;).
config FRAME_POINTER
	bool
	default y
	default y if !ARM_UNWIND
	help
	  If you say N here, the resulting kernel will be slightly smaller and
	  faster. However, when a problem occurs with the kernel, the
	  information that is reported is severely limited. Most people
	  should say Y here.
	  faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
	  when a problem occurs with the kernel, the information that is
	  reported is severely limited.

config ARM_UNWIND
	bool "Enable stack unwinding support"
	depends on AEABI && EXPERIMENTAL
	default y
	help
	  This option enables stack unwinding support in the kernel
	  using the information automatically generated by the
	  compiler. The resulting kernel image is slightly bigger but
	  the performance is not affected. Currently, this feature
	  only works with EABI compilers. If unsure say Y.

config DEBUG_USER
	bool "Verbose user fault messages"
+4 −0
Original line number Diff line number Diff line
@@ -85,6 +85,10 @@ else
CFLAGS_ABI	:=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
endif

ifeq ($(CONFIG_ARM_UNWIND),y)
CFLAGS_ABI	+=-funwind-tables
endif

# Need -Uarm for gcc < 3.x
KBUILD_CFLAGS	+=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
KBUILD_AFLAGS	+=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ obj-$(CONFIG_ATAGS_PROC) += atags.o
obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o
obj-$(CONFIG_ARM_THUMBEE)	+= thumbee.o
obj-$(CONFIG_KGDB)		+= kgdb.o
obj-$(CONFIG_ARM_UNWIND)	+= unwind.o

obj-$(CONFIG_CRUNCH)		+= crunch.o crunch-bits.o
AFLAGS_crunch-bits.o		:= -Wa,-mcpu=ep9312
+1 −1
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ config LOCKDEP
	bool
	depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
	select STACKTRACE
	select FRAME_POINTER if !X86 && !MIPS && !PPC
	select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND
	select KALLSYMS
	select KALLSYMS_ALL