@@ -69,6 +69,23 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
6969 # Debug prefix mapping if supported by compiler
7070 DEBUG_PREFIX_CFLAGS=
7171
72+ UTIL_ARG_WITH(NAME: debug-info-level, TYPE: string,
73+ DEFAULT: "",
74+ RESULT: DEBUG_INFO_LEVEL,
75+ DESC: [ Sets the debug info level, when debug info generation is enabled (GCC and Clang only)] ,
76+ DEFAULT_DESC: [ default] )
77+ AC_SUBST ( DEBUG_INFO_LEVEL )
78+
79+ if test "x${TOOLCHAIN_TYPE}" = xgcc || \
80+ test "x${TOOLCHAIN_TYPE}" = xclang; then
81+ DEBUG_INFO_LEVEL_FLAGS="-g"
82+ if test "x${DEBUG_INFO_LEVEL}" != "x"; then
83+ DEBUG_INFO_LEVEL_FLAGS="-g${DEBUG_INFO_LEVEL}"
84+ FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ ${DEBUG_INFO_LEVEL_FLAGS}] ,
85+ IF_FALSE: AC_MSG_ERROR ( "Debug info level ${DEBUG_INFO_LEVEL} is not supported" ) )
86+ fi
87+ fi
88+
7289 # Debug symbols
7390 if test "x$TOOLCHAIN_TYPE" = xgcc; then
7491 if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
@@ -93,8 +110,9 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
93110 )
94111 fi
95112
96- CFLAGS_DEBUG_SYMBOLS="-g -gdwarf-4"
97- ASFLAGS_DEBUG_SYMBOLS="-g"
113+ # Debug info level should follow the debug format to be effective.
114+ CFLAGS_DEBUG_SYMBOLS="-gdwarf-4 ${DEBUG_INFO_LEVEL_FLAGS}"
115+ ASFLAGS_DEBUG_SYMBOLS="${DEBUG_INFO_LEVEL_FLAGS}"
98116 elif test "x$TOOLCHAIN_TYPE" = xclang; then
99117 if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
100118 # Check if compiler supports -fdebug-prefix-map. If so, use that to make
@@ -113,8 +131,9 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
113131 FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ ${GDWARF_FLAGS}] ,
114132 IF_FALSE: [ GDWARF_FLAGS=""] )
115133
116- CFLAGS_DEBUG_SYMBOLS="-g ${GDWARF_FLAGS}"
117- ASFLAGS_DEBUG_SYMBOLS="-g"
134+ # Debug info level should follow the debug format to be effective.
135+ CFLAGS_DEBUG_SYMBOLS="${GDWARF_FLAGS} ${DEBUG_INFO_LEVEL_FLAGS}"
136+ ASFLAGS_DEBUG_SYMBOLS="${DEBUG_INFO_LEVEL_FLAGS}"
118137 elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
119138 CFLAGS_DEBUG_SYMBOLS="-Z7"
120139 fi
0 commit comments