[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: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
committed by
Russell King
parent
c4c5716e16
commit
adf8b37baf
@@ -2,18 +2,29 @@ menu "Kernel hacking"
|
|||||||
|
|
||||||
source "lib/Kconfig.debug"
|
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
|
# 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
|
# traces, you can get a slightly smaller kernel by setting this option to
|
||||||
# n, but then RMK will have to kill you ;).
|
# n, but then RMK will have to kill you ;).
|
||||||
config FRAME_POINTER
|
config FRAME_POINTER
|
||||||
bool
|
bool
|
||||||
default y
|
default y if !ARM_UNWIND
|
||||||
help
|
help
|
||||||
If you say N here, the resulting kernel will be slightly smaller and
|
If you say N here, the resulting kernel will be slightly smaller and
|
||||||
faster. However, when a problem occurs with the kernel, the
|
faster. However, if neither FRAME_POINTER nor ARM_UNWIND are enabled,
|
||||||
information that is reported is severely limited. Most people
|
when a problem occurs with the kernel, the information that is
|
||||||
should say Y here.
|
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
|
config DEBUG_USER
|
||||||
bool "Verbose user fault messages"
|
bool "Verbose user fault messages"
|
||||||
|
@@ -85,6 +85,10 @@ else
|
|||||||
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
CFLAGS_ABI :=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ARM_UNWIND),y)
|
||||||
|
CFLAGS_ABI +=-funwind-tables
|
||||||
|
endif
|
||||||
|
|
||||||
# Need -Uarm for gcc < 3.x
|
# 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_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
|
KBUILD_AFLAGS +=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
|
||||||
|
@@ -29,6 +29,7 @@ obj-$(CONFIG_ATAGS_PROC) += atags.o
|
|||||||
obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o
|
obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o
|
||||||
obj-$(CONFIG_ARM_THUMBEE) += thumbee.o
|
obj-$(CONFIG_ARM_THUMBEE) += thumbee.o
|
||||||
obj-$(CONFIG_KGDB) += kgdb.o
|
obj-$(CONFIG_KGDB) += kgdb.o
|
||||||
|
obj-$(CONFIG_ARM_UNWIND) += unwind.o
|
||||||
|
|
||||||
obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
|
obj-$(CONFIG_CRUNCH) += crunch.o crunch-bits.o
|
||||||
AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
|
AFLAGS_crunch-bits.o := -Wa,-mcpu=ep9312
|
||||||
|
@@ -402,7 +402,7 @@ config LOCKDEP
|
|||||||
bool
|
bool
|
||||||
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
|
depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
|
||||||
select STACKTRACE
|
select STACKTRACE
|
||||||
select FRAME_POINTER if !X86 && !MIPS && !PPC
|
select FRAME_POINTER if !X86 && !MIPS && !PPC && !ARM_UNWIND
|
||||||
select KALLSYMS
|
select KALLSYMS
|
||||||
select KALLSYMS_ALL
|
select KALLSYMS_ALL
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user