From b926b6db37f3195e83f9fd2751b7e0c6dcf8aaef Mon Sep 17 00:00:00 2001 From: Mitchell Horne Date: Wed, 11 Jan 2023 14:04:45 -0400 Subject: [PATCH] riscv: always include frame pointer Specifically it is missing in kernel modules, meaning a proper backtrace can't be constructed. Reviewed by: jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37657 --- sys/conf/Makefile.riscv | 2 +- sys/conf/kmod.mk | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/conf/Makefile.riscv b/sys/conf/Makefile.riscv index d4b1e6934ae8..35b2ca10a717 100644 --- a/sys/conf/Makefile.riscv +++ b/sys/conf/Makefile.riscv @@ -37,7 +37,7 @@ INCLUDES+= -I$S/contrib/libfdt -I$S/contrib/device-tree/include KERNEL_LMA?= 0x80200000 LDFLAGS+= --defsym='kernel_lma=${KERNEL_LMA}' -.if !empty(DDB_ENABLED) +.if !empty(DDB_ENABLED) || !empty(DTRACE_ENABLED) || !empty(HWPMC_ENABLED) CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls .endif diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 89da3d4fc82e..9c681bad3c80 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -160,7 +160,8 @@ LDFLAGS+= --build-id=sha1 .endif CFLAGS+= ${DEBUG_FLAGS} -.if ${MACHINE_CPUARCH} == aarch64 || ${MACHINE_CPUARCH} == amd64 +.if ${MACHINE_CPUARCH} == aarch64 || ${MACHINE_CPUARCH} == amd64 || \ + ${MACHINE_CPUARCH} == riscv CFLAGS+= -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer .endif