From c9c0db9f75086411f203cdb3e7b99f5fbc84b164 Mon Sep 17 00:00:00 2001 From: Hui Su <3164683437@qq.com> Date: Fri, 21 Aug 2026 12:15:01 +0800 Subject: [PATCH] [bsp/qemu-vexpress-a9] support function names in backtraces Pass -mpoke-function-name to the compiler and assembler when RT_BACKTRACE_FUNCTION_NAME is enabled for the Cortex-A9 QEMU BSP. Keep the BSP configuration opt-in so users can enable symbolized backtraces through menuconfig without changing the default build. Validation: - scons --pyconfig-silent - scons -C bsp/qemu-vexpress-a9 -j2 - QEMU function-name backtrace verified with RT_BACKTRACE_FUNCTION_NAME enabled in a local configuration. Signed-off-by: Hui Su <3164683437@qq.com> --- bsp/qemu-vexpress-a9/SConstruct | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bsp/qemu-vexpress-a9/SConstruct b/bsp/qemu-vexpress-a9/SConstruct index aa95fff7dfc6..f331f9411300 100644 --- a/bsp/qemu-vexpress-a9/SConstruct +++ b/bsp/qemu-vexpress-a9/SConstruct @@ -2,6 +2,16 @@ import os import sys import rtconfig +TRACE_CONFIG = '' +try: + with open('rtconfig.h') as f: + for line in f: + if line.strip() == '#define RT_BACKTRACE_FUNCTION_NAME': + TRACE_CONFIG = ' -mpoke-function-name' + break +except OSError: + pass + if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') else: @@ -14,9 +24,9 @@ TARGET = 'rtthread.' + rtconfig.TARGET_EXT DefaultEnvironment(tools=[]) env = Environment(tools = ['mingw'], - AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, - CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS, - CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS + TRACE_CONFIG, + CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS + TRACE_CONFIG, + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS + TRACE_CONFIG, AR = rtconfig.AR, ARFLAGS = '-rc', LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) env.PrependENVPath('PATH', rtconfig.EXEC_PATH)