summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2020-07-17 15:00:33 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-07-24 17:35:55 +0000
commitcdab099b95de7e2ea7aa9cf23ede566189a35756 (patch)
treeabdea40c63e6be3e2dd89fd0687fd766c6e29356 /SConstruct
parent92d185d3d1c7593c0f7653e42d6ee04d629aaaf2 (diff)
downloadmongo-cdab099b95de7e2ea7aa9cf23ede566189a35756.tar.gz
SERVER-48041 Package santizer blacklist files in icecream environments
Before this point, remote builds did not work because Icecream did not copy sanitizer blacklist files to the remote hosts. We had a check in place that silently turned Icecream builds with sanitizers into local builds. Now we build the sanitizer blacklist files into the environment tarball that Icecream uses for remote builds.
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct10
1 files changed, 9 insertions, 1 deletions
diff --git a/SConstruct b/SConstruct
index 901c6cb05e8..dcb3c6d507b 100644
--- a/SConstruct
+++ b/SConstruct
@@ -2893,7 +2893,15 @@ def doConfigure(myenv):
# generator to return at command line expansion time so that
# we can change the signature if the file contents change.
if blackfiles:
- blacklist_options=["-fsanitize-blacklist=%s" % blackfile for blackfile in blackfiles]
+ # Unconditionally using the full path can affect SCons cached builds, so we only do
+ # this in cases where we know it's going to matter.
+ blackfile_paths = [
+ blackfile.get_abspath() if ('ICECC' in env and env['ICECC']) else blackfile.path
+ for blackfile in blackfiles
+ ]
+ # Make these files available to remote icecream builds if requested
+ blacklist_options=[f"-fsanitize-blacklist={file_path}" for file_path in blackfile_paths]
+ env.AppendUnique(ICECC_CREATE_ENV_ADDFILES=blackfile_paths)
def SanitizerBlacklistGenerator(source, target, env, for_signature):
if for_signature:
return [f.get_csig() for f in blackfiles]