diff options
author | Ryan Egesdahl <ryan.egesdahl@mongodb.com> | 2020-07-17 15:00:33 -0700 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-07-24 17:35:55 +0000 |
commit | cdab099b95de7e2ea7aa9cf23ede566189a35756 (patch) | |
tree | abdea40c63e6be3e2dd89fd0687fd766c6e29356 /SConstruct | |
parent | 92d185d3d1c7593c0f7653e42d6ee04d629aaaf2 (diff) | |
download | mongo-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-- | SConstruct | 10 |
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] |