scons: Use the scons environment when marshalling.
authorGabe Black <gabe.black@gmail.com>
Thu, 26 Mar 2020 10:07:53 +0000 (03:07 -0700)
committerGabe Black <gabeblack@google.com>
Thu, 26 Mar 2020 21:44:36 +0000 (21:44 +0000)
scons maintains an environment (in the shell sense) in the ENV
construction variable for use when running external programs. When we
run the "marshal" program which gathers up python objects to embed in
the gem5 binary, it's run by subprocess instead of through scons, and it
uses its own environment inherited from the host system.

Instead, this change makes the subprocess function use the scons
environment when calling "marshal". This ensures the environment is
consistent between this command and other commands scons runs.

This is usually not very important, but some tools like asan take
options set through the environment, and they may need to be adjusted
sometimes.

Change-Id: I671b447657ed8fad45fac7393cc1c09073bf3d3a
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/27123
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
src/SConscript

index 2cdf6cb0c673c644bd83f47be15c0a6e219cf953..ed7e1ea54b8b65db308d2557b53ca45d4e0aac2a 100644 (file)
@@ -1166,7 +1166,8 @@ def embedPyFile(target, source, env):
 
     import subprocess
 
-    marshalled = subprocess.check_output([source[0].abspath, str(source[1])])
+    marshalled = subprocess.check_output(
+            [source[0].abspath, str(source[1])], env=env['ENV'])
 
     compressed = zlib.compress(marshalled)
     data = compressed