diff --git a/arch/s390/Makefile b/arch/s390/Makefile index b3791fb094a82e88354d59b571dd9134ca1964a4..74ef57dcfa60b5bb9527d6651440995851aa9ebd 100644 --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@ -34,6 +34,11 @@ cflags-$(CONFIG_MARCH_G5) += $(call cc-option,-march=g5) cflags-$(CONFIG_MARCH_Z900) += $(call cc-option,-march=z900) cflags-$(CONFIG_MARCH_Z990) += $(call cc-option,-march=z990) +# +# Prevent tail-call optimizations, to get clearer backtraces: +# +cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls + # old style option for packed stacks ifeq ($(call cc-option-yn,-mkernel-backchain),y) cflags-$(CONFIG_PACK_STACK) += -mkernel-backchain -D__PACK_STACK diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 04e374c6fd4664f4c029cbdc76c0c7355dfd2fa0..91e338a3d0693b19c46a2407fd29785ad2de54e4 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -208,7 +208,7 @@ config DEBUG_VM config FRAME_POINTER bool "Compile the kernel with frame pointers" - depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML) + depends on DEBUG_KERNEL && (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390) default y if DEBUG_INFO && UML help If you say Y here the resulting kernel image will be slightly larger