util: Add a --debug-build option to the m5 util scons.
authorGabe Black <gabe.black@gmail.com>
Fri, 23 Oct 2020 03:00:46 +0000 (20:00 -0700)
committerGabe Black <gabe.black@gmail.com>
Fri, 4 Dec 2020 06:29:55 +0000 (06:29 +0000)
This enables debug info with -g, and disables optimization with -O0.

Change-Id: I788585c379f048d373c54dc04e7c460914d6912e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27753
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
util/m5/README.md
util/m5/SConstruct

index 0e94c28de24843bd4b807939eeed39ba41e5d71b..f1d9bece3cb79e01d4f195476ee81ebf9beedb1b 100644 (file)
@@ -143,6 +143,8 @@ build products. This includes:
 
 ## Build options
 
+### SCons variables
+
 There are some variables which set build options which need to be controlled on
 a per ABI level. Currently, these are:
 
@@ -170,6 +172,10 @@ meaning that the native/host compiler will be used. If building on a non-x86
 host, then you'll need to set an appopriate prefix and may be able to clear
 some other prefix corresponding to that host.
 
+### SCons command line flags
+
+--debug-build: Compile with the -g option, and -O0.
+
 ## External dependency detection
 
 In some cases, if an external dependency isn't detected, the build will
index e1d7e1dfdeeee23ff7197b44405fce01b7e662e9..8462cab696d04ef242662a5d28561a698c11e702 100644 (file)
@@ -42,9 +42,16 @@ build_dir = Dir('build')
 def abspath(d):
     return os.path.abspath(str(d))
 
+AddOption('--debug-build', dest='debug_build', action='store_true',
+          help='Build with debug info, and disable optimizations.')
+
 # Universal settings.
-main.Append(CXXFLAGS=[ '-O2' ])
-main.Append(CCFLAGS=[ '-O2' ])
+if GetOption('debug_build'):
+    main.Append(CXXFLAGS=[ '-O0', '-g' ])
+    main.Append(CCFLAGS=[ '-O0', '-g' ])
+else:
+    main.Append(CXXFLAGS=[ '-O2' ])
+    main.Append(CCFLAGS=[ '-O2' ])
 main.Append(CPPPATH=[ common_include ])
 
 # Propogate the environment's PATH setting.