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:
parent
92d185d3d1
commit
cdab099b95
10
SConstruct
10
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]
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user