0
0
mirror of https://github.com/mongodb/mongo.git synced 2024-12-01 09:32:32 +01:00

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.
This commit is contained in:
Ryan Egesdahl 2020-07-17 15:00:33 -07:00 committed by Evergreen Agent
parent 92d185d3d1
commit cdab099b95
2 changed files with 9 additions and 10 deletions

View File

@ -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]

View File

@ -138,15 +138,6 @@ def generate(env):
env.get("ICECC_CREATE_ENV", "icecc-create-env")
)
# We can't handle sanitizer blacklist files, so disable icecc then, and just flow through
# icerun to prevent slamming the local system with a huge -j value.
if any(
f.startswith("-fsanitize-blacklist=")
for fs in ["CCFLAGS", "CFLAGS", "CXXFLAGS"]
for f in env[fs]
):
env["ICECC"] = "$ICERUN"
# Make CC and CXX absolute paths too. It is better for icecc.
env["CC"] = env.WhereIs("$CC")
env["CXX"] = env.WhereIs("$CXX")