Explorar el Código

编译脚本加上对RT_BACKTRACE_FUNCTION_NAME宏的判断以确定是否加-mpoke-function-name编译选项

shaojinchun hace 4 años
padre
commit
164ec56ef8

+ 1 - 1
bsp/qemu-vexpress-a9/.config

@@ -81,7 +81,7 @@ CONFIG_PV_OFFSET=0xa0000000
 # CONFIG_RT_IOREMAP_LATE is not set
 # CONFIG_RT_IOREMAP_LATE is not set
 CONFIG_ARCH_ARM_CORTEX_A=y
 CONFIG_ARCH_ARM_CORTEX_A=y
 CONFIG_ARCH_ARM_CORTEX_A9=y
 CONFIG_ARCH_ARM_CORTEX_A9=y
-CONFIG_RT_BACKTRACE_FUNCTION_NAME=y
+# CONFIG_RT_BACKTRACE_FUNCTION_NAME is not set
 
 
 #
 #
 # RT-Thread Components
 # RT-Thread Components

+ 13 - 3
bsp/qemu-vexpress-a9/SConstruct

@@ -1,6 +1,7 @@
 import os
 import os
 import sys
 import sys
 import rtconfig
 import rtconfig
+import re
 
 
 if os.getenv('RTT_ROOT'):
 if os.getenv('RTT_ROOT'):
     RTT_ROOT = os.getenv('RTT_ROOT')
     RTT_ROOT = os.getenv('RTT_ROOT')
@@ -11,12 +12,21 @@ sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
 from building import *
 from building import *
 
 
 TARGET = 'rtthread.' + rtconfig.TARGET_EXT
 TARGET = 'rtthread.' + rtconfig.TARGET_EXT
+TRACE_CONFIG = ""
+
+content = ""
+with open("rtconfig.h") as f:
+	for line in f.readlines():
+		if line.find("RT_BACKTRACE_FUNCTION_NAME") != -1:
+			for token in line.split(" "):
+				if re.match(r'RT_BACKTRACE_FUNCTION_NAME$', token, flags=0):
+					TRACE_CONFIG = " -mpoke-function-name"
 
 
 DefaultEnvironment(tools=[])
 DefaultEnvironment(tools=[])
 env = Environment(tools = ['mingw'],
 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',
     AR   = rtconfig.AR, ARFLAGS = '-rc',
     LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
     LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)

+ 0 - 1
bsp/qemu-vexpress-a9/rtconfig.h

@@ -59,7 +59,6 @@
 #define PV_OFFSET 0xa0000000
 #define PV_OFFSET 0xa0000000
 #define ARCH_ARM_CORTEX_A
 #define ARCH_ARM_CORTEX_A
 #define ARCH_ARM_CORTEX_A9
 #define ARCH_ARM_CORTEX_A9
-#define RT_BACKTRACE_FUNCTION_NAME
 
 
 /* RT-Thread Components */
 /* RT-Thread Components */
 
 

+ 1 - 1
libcpu/Kconfig

@@ -104,7 +104,7 @@ config ARCH_ARM_CORTEX_A9
     select ARCH_ARM_CORTEX_A
     select ARCH_ARM_CORTEX_A
 
 
 config RT_BACKTRACE_FUNCTION_NAME
 config RT_BACKTRACE_FUNCTION_NAME
-    bool "To show function name when backtrace"
+    bool "To show function name when backtrace. Warning: Don't selet it when use fork/clone!"
     default n
     default n
     depends on ARCH_ARM_CORTEX_A
     depends on ARCH_ARM_CORTEX_A